[
  {
    "path": ".github/workflows/main.yml",
    "content": "# Run the jobs below on every push to master branch and pull request.\non:\n  push:\n    branches:\n      - master\n      - 'ci/**'  # Allow automatic CI testing on ci/* branches\n  pull_request:\n    branches:\n      - master\n  workflow_dispatch:  # Allow manual triggering on any branch\n\n# Runs basic configure, make and make check.\njobs:\n  # ubuntu:\n  #   name: Ubuntu\n  #   runs-on: ubuntu-${{ matrix.release }}\n  #   continue-on-error: true\n  #   strategy:\n  #     fail-fast: false\n  #     matrix:\n  #       release:\n  #         - 24.04\n\n  #   steps:\n  #     - name: Identify the system\n  #       run: |\n  #         cat /etc/os-release\n\n  #     - name: Enable source repositories\n  #       run: |\n  #         sudo sed -i 's/Types: deb$/Types: deb deb-src/g' \\\n  #                  /etc/apt/sources.list.d/ubuntu.sources\n\n  #     - name: Install build dependencies\n  #       run: |\n  #         sudo apt-get update\n  #         sudo apt-get -y build-dep virt-v2v\n\n  #     - name: Install extra dependencies\n  #       run: |\n  #         # Git is needed to run git submodule command.\n  #         sudo apt-get -y install git\n\n  #     - name: Fix broken Ubuntu kernel permissions\n  #       run: |\n  #         # https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725\n  #         sudo chmod 0644 /boot/vmlinuz*\n\n  #     - name: Enable KVM\n  #       run: |\n  #         sudo chmod 0666 /dev/kvm\n\n  #     - name: Checkout sources\n  #       uses: actions/checkout@v5\n\n  #     - name: Checkout submodule\n  #       run: |\n  #         git submodule update --init\n\n  #     - name: Compile the code\n  #       run: |\n  #         autoreconf -fiv\n  #         ./configure --enable-werror\n  #         make -j\n\n  #     - name: Run the full tests\n  #       run: |\n  #         if ! make check; then\n  #             find -name test-suite.log -exec cat {} \\;\n  #             exit 1\n  #         fi\n\n  fedora:\n    name: Fedora\n    runs-on: ubuntu-latest  # VM where the container runs\n    strategy:\n      fail-fast: false\n      matrix:\n        release:\n         - 43\n\n    container:\n      image: quay.io/fedora/fedora:${{ matrix.release }}\n      options: --privileged\n\n    steps:\n      - name: Identify the system\n        run: |\n          cat /etc/os-release\n\n      - name: Install build dependencies\n        run: |\n          dnf builddep -y virt-v2v libguestfs\n          # Install a bunch of bits to enable more tests\n          dnf install -y \\\n            git kernel sqlite perl-hivex \\\n            mingw-srvany-redistributable nbdkit-\\* virt-v2v \\\n            guestfs-tools\\*\n\n          # Hides 'multiple definition' warnings\n          dnf remove -y ocaml-libguestfs\\*\n\n      - name: Checkout sources\n        uses: actions/checkout@v5\n\n      - name: Checkout and build libguestfs\n        run: |\n            git clone --depth=1 https://github.com/libguestfs/libguestfs\n            cd libguestfs\n            git submodule update --init\n            autoreconf -fiv\n            ./configure CFLAGS=\"-fPIC -g -O2\" --enable-werror\n            make -j\n            cd ..\n\n      - name: Compile the code\n        run: |\n            git config --global --add safe.directory $PWD\n            git submodule update --init\n            autoreconf -fiv\n            ./libguestfs/run ./configure CFLAGS=\"-fPIC -g -O2\" --enable-werror\n            ./libguestfs/run make -j\n\n      # feb2026: tests mostly run but random bits fail with\n      #   part_to_partnum_stub: /dev/sda2: No such file or directory\n      # Possibly this is systemd udev issue which is fixed in v260.\n      # Let's try enabling again when fedora-44 is out\n      # Some discussion: https://github.com/libguestfs/virt-v2v/pull/135\n      #\n      # - name: Run the full tests\n      #   run: |\n      #       ./libguestfs/run libguestfs-test-tool\n      #\n      #       # Busted on root:\n      #       # virt-v2v: changeuid: test-o-ovirt.d/12345678-1234-1234-1234-123456789abc/x8gdeog2: Sys_error(\"test-o-ovirt.d/12345678-1234-1234-1234-123456789abc/x8gdeog2: Permission denied\")\n      #       export SKIP_TEST_O_OVIRT_SH=1\n      #\n      #       if ! ./libguestfs/run make check; then\n      #           find -name test-suite.log -exec cat {} \\;\n      #           exit 1\n      #       fi\n"
  },
  {
    "path": ".gitignore",
    "content": "*~\n*.a\n*.annot\n*.bak\n*.class\n*.cma\n*.cmi\n*.cmo\n*.cmx\n*.cmxa\n*.diff\n*.eml\n*.hi\n*.jar\n*.la\n*.lo\n*.log\n*.o\n*.orig\n*.pyc\n*.rej\n*.swp\n*.trs\n\n.deps\n.dirstamp\ndll*.so\n.gdb_history\n.libs\nMakefile\nMakefile.in\n\n/aclocal.m4\n/autom4te.cache/\n/build-aux/\n/compile\n/config.cache\n/config.guess\n/config.h\n/config.h.in\n/config.log\n/config.sh\n/config.status\n/config.sub\n/configure\n/convert/.depend\n/depcomp\n/docs/stamp-virt-v2v*.pod\n/docs/virt-v2v.1\n/docs/virt-v2v-hacking.1\n/docs/virt-v2v-input-vmware.1\n/docs/virt-v2v-input-xen.1\n/docs/virt-v2v-output-local.1\n/docs/virt-v2v-output-openstack.1\n/docs/virt-v2v-output-ovirt.1\n/docs/virt-v2v-release-notes-1.42.1\n/docs/virt-v2v-release-notes-2.*.1\n/docs/virt-v2v-support.1\n/.gitattributes\n/.git-module-status\n/in-place/.depend\n/in-place/stamp-virt-v2v-in-place.pod\n/in-place/virt-v2v-in-place\n/in-place/virt-v2v-in-place.1\n/input/.depend\n/inspector/.depend\n/inspector/stamp-virt-v2v-inspector.pod\n/inspector/virt-v2v-inspector\n/inspector/virt-v2v-inspector.1\n/installcheck.sh\n/install-sh\n/libtool\n/lib/.depend\n/lib/config.ml\n/local*\n/ltmain.sh\n/m4/libtool.m4\n/m4/lt~obsolete.m4\n/m4/ltoptions.m4\n/m4/ltsugar.m4\n/m4/ltversion.m4\n/maint.mk\n/missing\n/ocaml-dep.sh\n/ocaml-link.sh\n/open/.depend\n/open/stamp-virt-v2v-open.pod\n/open/virt-v2v-open\n/open/virt-v2v-open.1\n/output/.depend\n/output/output_ovirt_upload_*_source.ml\n/output/var_expander_tests\n/po-docs/*/*.1\n/po-docs/*/*.3\n/po-docs/*/*.5\n/po-docs/*/*.8\n/po-docs/*/*.pod\n/podwrapper.1\n/podwrapper.pl\n/po/*.gmo\n/run\n/stamp-h1\n/test-data/fake-virtio-win/cd\n/test-data/fake-virtio-win/drivers\n/test-data/fake-virtio-win/fake-virtio-win.iso\n/test-data/phony-guests/archlinux.img\n/test-data/phony-guests/blank-*.img\n/test-data/phony-guests/coreos.img\n/test-data/phony-guests/debian.img\n/test-data/phony-guests/fedora.img\n/test-data/phony-guests/fedora-btrfs.img\n/test-data/phony-guests/fedora-luks-on-lvm.img\n/test-data/phony-guests/fedora-lvm-on-luks.img\n/test-data/phony-guests/fedora-md1.img\n/test-data/phony-guests/fedora-md2.img\n/test-data/phony-guests/fedora-static-bin\n/test-data/phony-guests/fedora.db\n/test-data/phony-guests/guests.xml\n/test-data/phony-guests/guests-all-good.xml\n/test-data/phony-guests/stamp-fedora-md.img\n/test-data/phony-guests/ubuntu.img\n/test-data/phony-guests/win*.img\n/test-data/phony-guests/*.reg.bin\n/tests/functions.sh\n/tests/libvirt-is-version\n/tests/test-cdrom.xml\n/tests/test-conversion-of-*.sh\n/tests/test-floppy.xml\n/tests/test-mac.xml\n/tests/test-networks-and-bridges.xml\n/tests/test-phony-win*.sh\n/tests/test-print-source.xml\n/tests/test-rhbz1232192.xml\n/tests/test-sound.xml\n/tests/windows.vmdk\n/v2v/.depend\n/v2v/real-*.d/\n/v2v/real-*.img\n/v2v/real-*.xml\n/v2v/v2v_unit_tests\n/v2v/virt-v2v\n/virt-v2v-*.tar.gz\n/virt-v2v-*.tar.gz.sig\n/website/*.html\n/website/README.txt\n/website/TODO.txt\n"
  },
  {
    "path": ".gitmodules",
    "content": "[submodule \"common\"]\n\tpath = common\n\turl = https://github.com/libguestfs/libguestfs-common\n"
  },
  {
    "path": "COPYING",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, Inc.,\n 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The licenses for most software are designed to take away your\nfreedom to share and change it.  By contrast, the GNU General Public\nLicense is intended to guarantee your freedom to share and change free\nsoftware--to make sure the software is free for all its users.  This\nGeneral Public License applies to most of the Free Software\nFoundation's software and to any other program whose authors commit to\nusing it.  (Some other Free Software Foundation software is covered by\nthe GNU Lesser General Public License instead.)  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthis service if you wish), that you receive source code or can get it\nif you want it, that you can change the software or use pieces of it\nin new free programs; and that you know you can do these things.\n\n  To protect your rights, we need to make restrictions that forbid\nanyone to deny you these rights or to ask you to surrender the rights.\nThese restrictions translate to certain responsibilities for you if you\ndistribute copies of the software, or if you modify it.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must give the recipients all the rights that\nyou have.  You must make sure that they, too, receive or can get the\nsource code.  And you must show them these terms so they know their\nrights.\n\n  We protect your rights with two steps: (1) copyright the software, and\n(2) offer you this license which gives you legal permission to copy,\ndistribute and/or modify the software.\n\n  Also, for each author's protection and ours, we want to make certain\nthat everyone understands that there is no warranty for this free\nsoftware.  If the software is modified by someone else and passed on, we\nwant its recipients to know that what they have is not the original, so\nthat any problems introduced by others will not reflect on the original\nauthors' reputations.\n\n  Finally, any free program is threatened constantly by software\npatents.  We wish to avoid the danger that redistributors of a free\nprogram will individually obtain patent licenses, in effect making the\nprogram proprietary.  To prevent this, we have made it clear that any\npatent must be licensed for everyone's free use or not licensed at all.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                    GNU GENERAL PUBLIC LICENSE\n   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n  0. This License applies to any program or other work which contains\na notice placed by the copyright holder saying it may be distributed\nunder the terms of this General Public License.  The \"Program\", below,\nrefers to any such program or work, and a \"work based on the Program\"\nmeans either the Program or any derivative work under copyright law:\nthat is to say, a work containing the Program or a portion of it,\neither verbatim or with modifications and/or translated into another\nlanguage.  (Hereinafter, translation is included without limitation in\nthe term \"modification\".)  Each licensee is addressed as \"you\".\n\nActivities other than copying, distribution and modification are not\ncovered by this License; they are outside its scope.  The act of\nrunning the Program is not restricted, and the output from the Program\nis covered only if its contents constitute a work based on the\nProgram (independent of having been made by running the Program).\nWhether that is true depends on what the Program does.\n\n  1. You may copy and distribute verbatim copies of the Program's\nsource code as you receive it, in any medium, provided that you\nconspicuously and appropriately publish on each copy an appropriate\ncopyright notice and disclaimer of warranty; keep intact all the\nnotices that refer to this License and to the absence of any warranty;\nand give any other recipients of the Program a copy of this License\nalong with the Program.\n\nYou may charge a fee for the physical act of transferring a copy, and\nyou may at your option offer warranty protection in exchange for a fee.\n\n  2. You may modify your copy or copies of the Program or any portion\nof it, thus forming a work based on the Program, and copy and\ndistribute such modifications or work under the terms of Section 1\nabove, provided that you also meet all of these conditions:\n\n    a) You must cause the modified files to carry prominent notices\n    stating that you changed the files and the date of any change.\n\n    b) You must cause any work that you distribute or publish, that in\n    whole or in part contains or is derived from the Program or any\n    part thereof, to be licensed as a whole at no charge to all third\n    parties under the terms of this License.\n\n    c) If the modified program normally reads commands interactively\n    when run, you must cause it, when started running for such\n    interactive use in the most ordinary way, to print or display an\n    announcement including an appropriate copyright notice and a\n    notice that there is no warranty (or else, saying that you provide\n    a warranty) and that users may redistribute the program under\n    these conditions, and telling the user how to view a copy of this\n    License.  (Exception: if the Program itself is interactive but\n    does not normally print such an announcement, your work based on\n    the Program is not required to print an announcement.)\n\nThese requirements apply to the modified work as a whole.  If\nidentifiable sections of that work are not derived from the Program,\nand can be reasonably considered independent and separate works in\nthemselves, then this License, and its terms, do not apply to those\nsections when you distribute them as separate works.  But when you\ndistribute the same sections as part of a whole which is a work based\non the Program, the distribution of the whole must be on the terms of\nthis License, whose permissions for other licensees extend to the\nentire whole, and thus to each and every part regardless of who wrote it.\n\nThus, it is not the intent of this section to claim rights or contest\nyour rights to work written entirely by you; rather, the intent is to\nexercise the right to control the distribution of derivative or\ncollective works based on the Program.\n\nIn addition, mere aggregation of another work not based on the Program\nwith the Program (or with a work based on the Program) on a volume of\na storage or distribution medium does not bring the other work under\nthe scope of this License.\n\n  3. You may copy and distribute the Program (or a work based on it,\nunder Section 2) in object code or executable form under the terms of\nSections 1 and 2 above provided that you also do one of the following:\n\n    a) Accompany it with the complete corresponding machine-readable\n    source code, which must be distributed under the terms of Sections\n    1 and 2 above on a medium customarily used for software interchange; or,\n\n    b) Accompany it with a written offer, valid for at least three\n    years, to give any third party, for a charge no more than your\n    cost of physically performing source distribution, a complete\n    machine-readable copy of the corresponding source code, to be\n    distributed under the terms of Sections 1 and 2 above on a medium\n    customarily used for software interchange; or,\n\n    c) Accompany it with the information you received as to the offer\n    to distribute corresponding source code.  (This alternative is\n    allowed only for noncommercial distribution and only if you\n    received the program in object code or executable form with such\n    an offer, in accord with Subsection b above.)\n\nThe source code for a work means the preferred form of the work for\nmaking modifications to it.  For an executable work, complete source\ncode means all the source code for all modules it contains, plus any\nassociated interface definition files, plus the scripts used to\ncontrol compilation and installation of the executable.  However, as a\nspecial exception, the source code distributed need not include\nanything that is normally distributed (in either source or binary\nform) with the major components (compiler, kernel, and so on) of the\noperating system on which the executable runs, unless that component\nitself accompanies the executable.\n\nIf distribution of executable or object code is made by offering\naccess to copy from a designated place, then offering equivalent\naccess to copy the source code from the same place counts as\ndistribution of the source code, even though third parties are not\ncompelled to copy the source along with the object code.\n\n  4. You may not copy, modify, sublicense, or distribute the Program\nexcept as expressly provided under this License.  Any attempt\notherwise to copy, modify, sublicense or distribute the Program is\nvoid, and will automatically terminate your rights under this License.\nHowever, parties who have received copies, or rights, from you under\nthis License will not have their licenses terminated so long as such\nparties remain in full compliance.\n\n  5. You are not required to accept this License, since you have not\nsigned it.  However, nothing else grants you permission to modify or\ndistribute the Program or its derivative works.  These actions are\nprohibited by law if you do not accept this License.  Therefore, by\nmodifying or distributing the Program (or any work based on the\nProgram), you indicate your acceptance of this License to do so, and\nall its terms and conditions for copying, distributing or modifying\nthe Program or works based on it.\n\n  6. Each time you redistribute the Program (or any work based on the\nProgram), the recipient automatically receives a license from the\noriginal licensor to copy, distribute or modify the Program subject to\nthese terms and conditions.  You may not impose any further\nrestrictions on the recipients' exercise of the rights granted herein.\nYou are not responsible for enforcing compliance by third parties to\nthis License.\n\n  7. If, as a consequence of a court judgment or allegation of patent\ninfringement or for any other reason (not limited to patent issues),\nconditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot\ndistribute so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you\nmay not distribute the Program at all.  For example, if a patent\nlicense would not permit royalty-free redistribution of the Program by\nall those who receive copies directly or indirectly through you, then\nthe only way you could satisfy both it and this License would be to\nrefrain entirely from distribution of the Program.\n\nIf any portion of this section is held invalid or unenforceable under\nany particular circumstance, the balance of the section is intended to\napply and the section as a whole is intended to apply in other\ncircumstances.\n\nIt is not the purpose of this section to induce you to infringe any\npatents or other property right claims or to contest validity of any\nsuch claims; this section has the sole purpose of protecting the\nintegrity of the free software distribution system, which is\nimplemented by public license practices.  Many people have made\ngenerous contributions to the wide range of software distributed\nthrough that system in reliance on consistent application of that\nsystem; it is up to the author/donor to decide if he or she is willing\nto distribute software through any other system and a licensee cannot\nimpose that choice.\n\nThis section is intended to make thoroughly clear what is believed to\nbe a consequence of the rest of this License.\n\n  8. If the distribution and/or use of the Program is restricted in\ncertain countries either by patents or by copyrighted interfaces, the\noriginal copyright holder who places the Program under this License\nmay add an explicit geographical distribution limitation excluding\nthose countries, so that distribution is permitted only in or among\ncountries not thus excluded.  In such case, this License incorporates\nthe limitation as if written in the body of this License.\n\n  9. The Free Software Foundation may publish revised and/or new versions\nof the General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\nEach version is given a distinguishing version number.  If the Program\nspecifies a version number of this License which applies to it and \"any\nlater version\", you have the option of following the terms and conditions\neither of that version or of any later version published by the Free\nSoftware Foundation.  If the Program does not specify a version number of\nthis License, you may choose any version ever published by the Free Software\nFoundation.\n\n  10. If you wish to incorporate parts of the Program into other free\nprograms whose distribution conditions are different, write to the author\nto ask for permission.  For software which is copyrighted by the Free\nSoftware Foundation, write to the Free Software Foundation; we sometimes\nmake exceptions for this.  Our decision will be guided by the two goals\nof preserving the free status of all derivatives of our free software and\nof promoting the sharing and reuse of software generally.\n\n                            NO WARRANTY\n\n  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\nFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN\nOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\nPROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\nOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS\nTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\nPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\nREPAIR OR CORRECTION.\n\n  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\nREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\nINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\nOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\nTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\nYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\nPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGES.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nconvey the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software; you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation; either version 2 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License along\n    with this program; if not, write to the Free Software Foundation, Inc.,\n    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nAlso add information on how to contact you by electronic and paper mail.\n\nIf the program is interactive, make it output a short notice like this\nwhen it starts in an interactive mode:\n\n    Gnomovision version 69, Copyright (C) year name of author\n    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, the commands you use may\nbe called something other than `show w' and `show c'; they could even be\nmouse-clicks or menu items--whatever suits your program.\n\nYou should also get your employer (if you work as a programmer) or your\nschool, if any, to sign a \"copyright disclaimer\" for the program, if\nnecessary.  Here is a sample; alter the names:\n\n  Yoyodyne, Inc., hereby disclaims all copyright interest in the program\n  `Gnomovision' (which makes passes at compilers) written by James Hacker.\n\n  <signature of Ty Coon>, 1 April 1989\n  Ty Coon, President of Vice\n\nThis General Public License does not permit incorporating your program into\nproprietary programs.  If your program is a subroutine library, you may\nconsider it more useful to permit linking proprietary applications with the\nlibrary.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.\n"
  },
  {
    "path": "Makefile.am",
    "content": "# libguestfs\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/common-rules.mk\n\nACLOCAL_AMFLAGS = -I m4\n\nSUBDIRS = common/mlstdutils\n\n# Files and other test data used by the tests.  Must be before any\n# tests run, except tests/qemu.\nSUBDIRS += test-data\n\nSUBDIRS += gnulib/lib\n\nSUBDIRS += common/qemuopts\nSUBDIRS += common/utils\nSUBDIRS += common/mlutils\nSUBDIRS += common/mlpcre\nSUBDIRS += common/options\nSUBDIRS += common/mlgettext\nSUBDIRS += common/mlxml\nSUBDIRS += common/mltools\nSUBDIRS += common/mlcustomize\nSUBDIRS += common/mldrivers\nSUBDIRS += lib\nSUBDIRS += input\nSUBDIRS += output\nSUBDIRS += convert\nSUBDIRS += v2v\nSUBDIRS += inspector\nSUBDIRS += in-place\nSUBDIRS += open\n\nSUBDIRS += tests\n\n# bash-completion\nSUBDIRS += bash\n\n# Documentation\nSUBDIRS += docs\n\n# After all source files were used we can generate the translation strings\nSUBDIRS += po\n\n# po-docs must come after tools, inspector.\nif HAVE_PO4A\nSUBDIRS += po-docs\nendif\n\nEXTRA_DIST = \\\n\t.github/workflows/main.yml \\\n\t.gitignore \\\n\tbugs-in-changelog.sh \\\n\tcheck-mli.sh \\\n\tcommon/.gitignore \\\n\tcommon/README \\\n\tcommon/update-submodule.sh \\\n\tcontrib/remove-guestor.reg \\\n\tCOPYING \\\n\tocaml-link.sh \\\n\tpodcheck.pl \\\n\tscripts/git.orderfile \\\n\ttmp/.gitignore \\\n\tvalgrind-suppressions \\\n\twebsite/bugs.png \\\n\twebsite/communicate.png \\\n\twebsite/documentation.png \\\n\twebsite/download.png \\\n\twebsite/draft.png \\\n\twebsite/draft.svg \\\n\twebsite/easytoread.css \\\n\twebsite/feed.css \\\n\twebsite/fish-5yrs.svg \\\n\twebsite/fish.png \\\n\twebsite/git.png \\\n\twebsite/index.css \\\n\twebsite/index.html.in \\\n\twebsite/pod.css \\\n\twebsite/standard.css \\\n\t$(NULL)\n\n# When doing 'make dist' update a few files automatically.\n#\n#  po/POTFILES    - files with ordinary extensions, but not OCaml files\n#  po/POTFILES-ml - OCaml files, which need a special tool to translate\n#  po-docs/virt-v2v-docs.pot\n#                 - combined list of strings from documentation\n\ndist-hook: po/POTFILES po/POTFILES-ml\n\trm -f po-docs/virt-v2v-docs.pot\n\t$(MAKE) -C po-docs virt-v2v-docs.pot\n\n# For more information about translations, see po/Makefile.am.\npo/POTFILES: configure.ac\n\trm -f $@ $@-t\n\tcd $(srcdir); \\\n\tfind $(DIST_SUBDIRS) -name '*.c' | \\\n\tgrep -v -E '^(po-docs|tests|test-data)/' | \\\n\tgrep -v -E '/(dummy\\.c)$$' | \\\n\tgrep -v -E '.*-(tests)\\.c$$' | \\\n\tLC_ALL=C sort -u > $@-t\n\tmv $@-t $@\n\npo/POTFILES-ml: configure.ac\n\trm -f $@ $@-t\n\tcd $(srcdir); \\\n\tfind common/ml* lib in-place input inspector open output v2v \\\n\t    -name '*.ml' | \\\n\tgrep -v '^common/mlprogress/' | \\\n\tgrep -v '^common/mlvisit/' | \\\n\tgrep -v '^lib/config.ml$$' | \\\n\tgrep -v -E '.*_tests\\.ml$$' | \\\n\tLC_ALL=C sort > $@-t\n\tmv $@-t $@\n\n# NB. podwrapper is an internal tool, so the man page mustn't be installed.\n# It should be noinst_MANS but that doesn't work.\nnoinst_DATA = podwrapper.1\npodwrapper.1: podwrapper.pl\n\t$(AM_V_GEN) $(PODWRAPPER) \\\n\t  --section 1 \\\n\t  --man $@-t \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at) mv $@-t $@\n\n# Make clean.\n\nCLEANFILES += \\\n\tpod2htm?.tmp \\\n\ttmp/disk* \\\n\ttmp/run-* \\\n\ttmp/valgrind-*.log \\\n\t$(NULL)\n\nclean-local:\n\t-rm -rf tmp/libguestfs??????\n\t-rm -rf tmp/guestfs.*\n\t-rm -rf tmp/.guestfs-*\n\t-rm -rf tmp/null.*\n\t-find tmp -type s -delete\n\t-find . -name '*~' -delete\n\ncheck-valgrind: build-test-guests\n\t@errors=0; \\\n\tfor f in `grep -l '^$@:' $(SUBDIRS:%=%/Makefile.am)`; do \\\n\t  echo $(MAKE) -C `dirname $$f` $@; \\\n\t  $(MAKE) -C `dirname $$f` $@ || (( errors++ )); \\\n\tdone; \\\n\texit $$(( $$errors ? 1 : 0 ))\n\ncheck-slow: build-test-guests\n\t@errors=0; \\\n\tfor f in `grep -l '^$@:' $(SUBDIRS:%=%/Makefile.am)`; do \\\n\t  echo $(MAKE) -C `dirname $$f` $@; \\\n\t  $(MAKE) -C `dirname $$f` $@ || (( errors++ )); \\\n\tdone; \\\n\texit $$(( $$errors ? 1 : 0 ))\n\nbuild-test-guests:\n\t$(MAKE) -C test-data/phony-guests check\n\n# Some tests which run at the top level.\n\nTESTS = check-mli.sh\n\n# Commit everything in current directory to HEAD, and set commit\n# message to current version (only for maintainer).\n\nmaintainer-commit:\n\tgit commit -a -m \"Version $(VERSION).\"\n\n# Tag HEAD with current version (only for maintainer).\n\nmaintainer-tag:\n\tgit tag -a \"v$(VERSION)\" -m \"Version $(VERSION) ($(BRANCH_TYPE))\" -f\n\n# Maintainer only: check no files are missing from EXTRA_DIST rules,\n# and that all generated files have been included in the tarball.\n# (Note you must have done 'make dist')\n\nmaintainer-check-extra-dist:\n\tzcat $(PACKAGE_NAME)-$(VERSION).tar.gz | tar tf - | sort | \\\n\t  sed 's,^$(PACKAGE_NAME)-$(VERSION)/,,' > tmp/tarfiles\n\t( git ls-files ; \\\n\t  cd common; git ls-files | sed 's,^,common/,' ) | \\\n\t  grep -v '^common$$' | \\\n\t  grep -v '^common/edit/' | \\\n\t  grep -v '^common/errnostring/' | \\\n\t  grep -v '^common/mlprogress/' | \\\n\t  grep -v '^common/mlvisit/' | \\\n\t  grep -v '^common/parallel/' | \\\n\t  grep -v '^common/progress/' | \\\n\t  grep -v '^common/protocol/' | \\\n\t  grep -v '^common/structs/' | \\\n\t  grep -v '^common/visit/' | \\\n\t  grep -v '^common/windows/' | \\\n\t  grep -v '^intltool-.*\\.in' | \\\n\t  grep -v '^\\.gitmodules' | \\\n\t  sort > tmp/gitfiles\n\tcomm -13 tmp/tarfiles tmp/gitfiles > tmp/comm-out\n\t@echo Checking for differences between EXTRA_DIST and git ...\n\tcat tmp/comm-out\n\t[ ! -s tmp/comm-out ]\n\trm tmp/tarfiles tmp/gitfiles tmp/comm-out\n\t@echo PASS: EXTRA_DIST tests\n"
  },
  {
    "path": "README",
    "content": "Virt-v2v is a program that converts a single guest from a foreign\nhypervisor to run on KVM.  It can read Linux and Windows guests\nrunning on VMware, Xen, Hyper-V and some other hypervisors, and\nconvert them to KVM managed by libvirt, OpenStack, oVirt or several\nother targets.  It can modify the guest to make it bootable on KVM and\ninstall virtio drivers so it will run quickly.\n\nThere is also a companion front-end called virt-p2v\n(https://github.com/libguestfs/virt-p2v) which comes as an ISO, CD or\nPXE image that can be booted on physical machines to virtualize those\nmachines (physical to virtual, or p2v).\n\nVirt-v2v and virt-p2v have been in continuous development since 2007.\n\nFor more information about virt-v2v and virt-p2v please read the\nrespective manual pages.  For virt-v2v, see the docs/ subdirectory in\nthe source tree.\n\n\nBUILDING FROM SOURCE\n======================================================================\n\nTo build from git:\n\n  git submodule update --init\n  autoreconf -i\n  ./configure\n  make\n\nTo build from tarball:\n\n  ./configure\n  make\n\nYou can run virt-v2v without installing it:\n\n  ./run virt-v2v ...\n\nTo run the tests:\n\n  make check\n\n\nREQUIREMENTS\n======================================================================\n\n* libguestfs (https://libguestfs.org)\n\n* OCaml bindings for libguestfs\n\n* OCaml bindings for libvirt (https://gitlab.com/libvirt/libvirt-ocaml)\n\n* libnbd >= 1.14 (https://gitlab.com/nbdkit/libnbd)\n\n* The 'nbdinfo' and 'nbdcopy' programs from libnbd.\n\n* OCaml bindings for libnbd\n\n* nbdkit >= 1.45.11 (https://gitlab.com/nbdkit/nbdkit)\n\n* These nbdkit plugins and filters:\n\n  + nbdkit-curl-plugin\n  + nbdkit-file-plugin\n  + nbdkit-nbd-plugin\n  + nbdkit-null-plugin\n  + nbdkit-python-plugin\n  + nbdkit-ssh-plugin\n  + nbdkit-vddk-plugin\n\n  + nbdkit-blocksize-filter\n  + nbdkit-count-filter\n  + nbdkit-cow-filter\n  + nbdkit-multi-conn-filter\n  + nbdkit-rate-filter\n  + nbdkit-retry-filter\n\n* qemu-nbd\n\n* qemu-img\n\nOptional, for enhancements to the basic program:\n\n* OCaml gettext\n\n* virtio-win (Windows virtio device drivers)\n\nOptional, used by the test suite:\n\n* guestfish\n"
  },
  {
    "path": "TODO",
    "content": "To-do list for virt-v2v\n======================================================================\n\nWe open the input NBD endpoint up to 5 times per disk during a\nconversion (especially if --verbose mode is used):\n\n * Once for conversion\n\n * nbdinfo opens the connection twice (because we're using --content)\n\n * The output side opens the input connection just to get the virtual\n   size of the disk, so it knows how large to create the output disk.\n   (Could be avoided if conversion kept this information, but that's a\n   layering violation.)\n\n * once for nbdcopy\n\nThis has quite a lot of overhead for some inputs.  For VDDK, opening a\nconnection is very slow.  In one conversion of a guest with 5 disks I\nmeasured 10% of the total run time of virt-v2v being spent simply\nopening VDDK connections (5 x 5 = 25 times in all).\n\n--\n\nIn virt-v2v -o openstack Use the metadata service to find the -oo\nserver-id setting.  It would no longer need to be specified on the\ncommand line.  Note there are two variations of metadata service in\nOpenStack, either the config disk or link-local network address.  We\nwould need to support both, or the possibility that there is no\nmetadata service.\n"
  },
  {
    "path": "bash/Makefile.am",
    "content": "# libguestfs\n# Copyright (C) 2013-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nscripts = \\\n\tvirt-v2v\n\nEXTRA_DIST = \\\n\tREADME \\\n\t$(scripts) \\\n\t$(TESTS) \\\n\t$(NULL)\n\nif HAVE_BASH_COMPLETION\n\n# Bash completion script.\n\nbashcompletiondir = $(BASH_COMPLETIONS_DIR)\n#bashcompletion_DATA = $(scripts)\n\nall-local: $(scripts)\n\t$(AM_V_at)test $(srcdir) = $(builddir) || { cd $(srcdir) && cp $(scripts) $(abs_builddir)/; }\n\ninstall-data-local:\n\t$(mkdir_p) $(DESTDIR)$(bashcompletiondir)\n\tcp -P $(scripts) $(DESTDIR)$(bashcompletiondir)\n\nclean-local:\n\t-test $(srcdir) != $(builddir) && rm -f $(scripts)\n\nendif\n\n# Tests.\nTESTS_ENVIRONMENT = \\\n\tscripts=\"$(scripts)\" \\\n\tcommands=\"$(scripts)\" \\\n\t$(top_builddir)/run --test\n\nTESTS = \\\n\ttest-complete-in-script.sh\n"
  },
  {
    "path": "bash/README",
    "content": "This directory contains the scripts for tab-completing commands in\nbash.  Note these new-style demand-loaded scripts require\n'bash-completion' >= 1.99.\n\nTip: To test the bash completions without having to install them,\nsimply start a new shell and 'source ./virt-foo'.\n"
  },
  {
    "path": "bash/test-complete-in-script.sh",
    "content": "#!/bin/bash -\n# libguestfs bash completion test script\n# Copyright (C) 2016 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test that the correct 'complete' command is included in the script.\n# Mainly prevents symlinking errors and some omissions.\n\nsource ../tests/functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\nif [ -z \"$commands\" ]; then\n    echo \"$0: \\$commands is not defined.  Use 'make check' to run this test.\"\n    exit 1\nfi\n\nfor cmd in $commands; do\n    if [ ! -f $cmd ]; then\n        echo \"$0: script '$cmd' is missing\"\n        exit 1\n    fi\n    if ! grep \"^complete.*$cmd\\$\" $cmd; then\n        echo \"$0: script '$cmd' does not have\"\n        echo \"a 'complete' rule for '$cmd'\"\n        exit 1\n    fi\ndone\n"
  },
  {
    "path": "bash/virt-v2v",
    "content": "# virt-v2v bash completion script -*- shell-script -*-\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n_virt_v2v ()\n{\n    local cur prev words cword split\n    local shortopts longopts items\n\n    _init_completion -s || return\n\n    case \"$prev\" in\n        -i)\n            items=\"$(virt-v2v --machine-readable | awk -F':' '/input:/ {print $2;}')\"\n            COMPREPLY=( $( compgen -W \"$items\" -- \"$cur\") )\n            return ;;\n        -o)\n            items=\"$(virt-v2v --machine-readable | awk -F':' '/output:/ {print $2;}')\"\n            COMPREPLY=( $( compgen -W \"$items\" -- \"$cur\") )\n            return ;;\n        -oa)\n            COMPREPLY=( $( compgen -W \"sparse preallocated\" -- \"$cur\") )\n            return ;;\n    esac\n\n    case \"$cur\" in\n        --*)\n            # --options\n            longopts=\"$(virt-v2v --long-options)\"\n            COMPREPLY=( $(compgen -W \"$longopts\" -- \"$cur\") )\n            return ;;\n        -*)\n            # -o and --options\n            shortopts=\"$(virt-v2v --short-options)\"\n            longopts=\"$(virt-v2v --long-options)\"\n            COMPREPLY=( $(compgen -W \"$shortopts $longopts\" -- \"$cur\") )\n            return ;;\n        *)\n            COMPREPLY=( $(compgen \"$cur\") )\n            return ;;\n    esac\n} &&\ncomplete -o default -F _virt_v2v virt-v2v\n"
  },
  {
    "path": "bugs-in-changelog.sh",
    "content": "#!/bin/bash -\n# bugs-in-changelog.sh\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Used when preparing the release notes.  This script looks at the\n# bugs noted in the git changelog since the last stable release (or\n# any release).  To use it, the only parameter should be the git\n# commit range, eg:\n#\n#   ./bugs-in-changelog.sh \"1.0.89..\"\n\nif [ -z \"$1\" ]; then\n    echo \"$0 git-commit-range\"\n    exit 1\nfi\n\n# Comma-separated list of Bugzilla IDs.\nbugids=$(\n    git log \"$1\" |\n    grep -Eio 'RHBZ#[0-9]+|https?://bugzilla.redhat.com/[a-z\\.\\?/_=]*[0-9]+' |\n    sed 's/^[^0-9]*//' |\n    sort -u |\n    tr '\\n' ',' |\n    sed 's/,$//'\n)\n\n#echo bugids \"$bugids\"\n\n# Filter out any bugs which may still be in NEW or ASSIGNED.\n#\n# Ensure user is logged in, otherwise bugzilla will silently truncate\n# the number of responses.  To log in, see \"API KEYS\" in bugzilla(1).\nbugzilla \\\n    --ensure-logged-in \\\n    query \\\n    -b \"$bugids\" \\\n    -s MODIFIED,POST,ON_QA,PASSES_QA,VERIFIED,RELEASE_PENDING,CLOSED \\\n    --component virt-v2v \\\n    --outputformat='%{bug_id} %{short_desc}' |\n    sort -n -r |\n    perl -pe '\n        s{([0-9]+)\\s+(.*)}{\n        sprintf (\"=item L<https://bugzilla.redhat.com/%s>\\n\\n%s\\n\",\n                 $1, $2)\n        }xe'\n\n# We can't fetch Jira subjects or github issues, but we can at least\n# list them.\njiraids=$(\n    git log \"$1\" |\n    grep -Eio '(RHEL|MTV)-[0-9]{3,}' |\n    sort -u\n)\n\nfor id in $jiraids ; do\n    echo \"=item L<https://issues.redhat.com/browse/$id>\"\n    echo\n    echo \"XXX\"\n    echo\ndone\n\nissues=$(\n    git log \"$1\" |\n    grep -Eio 'https?://github\\.com/libguestfs/virt-v2v/issues/[0-9]+' |\n    sort -u\n)\n\nfor issue in $issues ; do\n    echo \"=item L<$issue>\"\n    echo\n    echo \"XXX\"\n    echo\ndone\n"
  },
  {
    "path": "check-mli.sh",
    "content": "#!/bin/bash -\n# Check every .ml file has a corresponding .mli file.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\n# OCaml itself doesn't require it, but getting Makefile dependencies\n# correct is impossible when some .ml files don't have a corresponding\n# .mli file.\n\nexitcode=0\n\nfor f in $(\n    find -name '*.ml' |\n    grep -v builder/templates |\n    grep -v contrib/ |\n    grep -v ocaml/examples/ |\n    grep -v ocaml/t/ |\n    grep -v 'tests/automake2junit.ml$' |\n    grep -v 'bindtests.ml$' |\n    grep -v '_tests.ml$' |\n    sort\n); do\n    if [ ! -f \"${f}i\" ]; then\n        echo $f: missing ${f}i\n        exitcode=1\n    fi\ndone\n\nexit $exitcode\n"
  },
  {
    "path": "common-rules.mk",
    "content": "# libguestfs\n# Copyright (C) 2013 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# 'common-rules.mk' should be included in every Makefile.am.\n# cf. 'subdir-rules.mk'\n\n-include $(top_builddir)/localenv\n\n# Convenient way to terminate lists in Makefiles, so that we avoid\n# problems with dangling backslashes.\nNULL =\n\n# Files that should universally be removed by 'make clean'.  Note if\n# there is any case in any subdirectory where a file should not be\n# removed by 'make clean', it should not be listed here!\n\n# Editor backup files\nCLEANFILES = *~ *.bak\n\n# Patch original and reject files.\nCLEANFILES += *.orig *.rej\n\n# OCaml intermediate and generated files.\nCLEANFILES += *.cmi *.cmo *.cma *.cmx *.cmxa dll*.so *.a\n\n# OCaml -annot files (used for displaying types in some IDEs).\nCLEANFILES += *.annot\n\n# Manual pages - these are all generated from *.pod, so the\n# pages themselves should all be removed by 'make clean'.\nCLEANFILES += *.1 *.3 *.5 *.8\n\n# Stamp files used when generating man pages.\nCLEANFILES += stamp-*.pod\n\n# Bindtests temporary files used in many language bindings.\nCLEANFILES += bindtests.tmp\n\n# Files that should be universally removed by 'make distclean'.\nDISTCLEANFILES = .depend stamp-*\n\n# Special suffixes used by OCaml.\nSUFFIXES = .cmo .cmi .cmx .ml .mli .mll .mly\n\n# Special suffixes used by PO files.\nSUFFIXES += .po .gmo\n"
  },
  {
    "path": "config.sh.in",
    "content": "#!/bin/bash -\n# (C) Copyright 2019 Red Hat Inc.\n# @configure_input@\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\n# This shell script contains the results of some configure checks,\n# mostly used in other shell scripts.\n\nexport PYCODESTYLE=\"@PYCODESTYLE@\"\n"
  },
  {
    "path": "configure.ac",
    "content": "# virt-v2v\n# Copyright (C) 2009-2026 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# The major, minor, and release fields MUST be numbers.  Packagers can\n# add extra information using --with-extra=\"...\" which may be any\n# freeform string.\nm4_define([v2v_major],   [2])\nm4_define([v2v_minor],   [11])\nm4_define([v2v_release], [8])\n\nAC_INIT([virt-v2v],v2v_major.v2v_minor.v2v_release)\n\n# Headings within the configure script output.\nterm_bold=\"\"\nterm_red=\"\"\nterm_green=\"\"\nterm_restore=\"\"\nAS_IF([test -t 1], [\n    AS_CASE([\"$TERM\"],\n            [xterm*|vt220*], [\n              term_bold=\"$(printf \"\\e@<:@1m\")\"\n              term_red=\"$(printf \"\\e@<:@22;31m\")\"\n              term_green=\"$(printf \"\\e@<:@22;32m\")\"\n              term_restore=\"$(printf \"\\e@<:@0m\")\"\n    ])\n])\nm4_define([HEADING],\n          [AS_ECHO\n           AS_ECHO([\"${term_bold}$1${term_restore}\"])])\n\nHEADING([Checking for C compiler and basic build environment])\nm4_include([m4/guestfs-c.m4])\n\nAC_CONFIG_AUX_DIR([build-aux])\n\nAC_USE_SYSTEM_EXTENSIONS\n\ndnl Initialize automake.\nAM_INIT_AUTOMAKE(foreign subdir-objects tar-pax) dnl NB: Do not [quote] this parameter.\n\nm4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])])\nAM_SILENT_RULES([yes]) # make --enable-silent-rules the default.\n\nAC_CONFIG_MACRO_DIR([m4])\n\ndnl Initialize libtool.\nLT_INIT\n\nHEADING([Checking for version and optional features])\n\ndnl Stable or development version?\nBRANCH_NUMBER=v2v_major.v2v_minor\nAC_SUBST([BRANCH_NUMBER])\nAC_MSG_CHECKING([if $BRANCH_NUMBER is a stable or development branch of virt-v2v])\nAS_IF([test \"$((v2v_minor % 2))\" -eq 0 ],[\n    BRANCH_TYPE=stable\n    AC_MSG_RESULT([$BRANCH_TYPE])\n],[\n    BRANCH_TYPE=development\n    AC_MSG_RESULT([$BRANCH_TYPE])\n])\nAC_SUBST([BRANCH_TYPE])\n\ndnl Extra string, a freeform string defined by packagers.\nAC_ARG_WITH([extra],\n    [AS_HELP_STRING([--with-extra],\n                    [extra version string (for use by packagers)])],\n    [v2v_extra=\"$withval\"],\n    [v2v_extra=]\n)\n\nAC_MSG_NOTICE([virt-v2v version v2v_major.v2v_minor.v2v_release$v2v_extra])\n\ndnl Split up the version string.\nAC_DEFINE([PACKAGE_VERSION_MAJOR],[v2v_major],[Major version number.])\nAC_DEFINE([PACKAGE_VERSION_MINOR],[v2v_minor],[Minor version number.])\nAC_DEFINE([PACKAGE_VERSION_RELEASE],[v2v_release],[Release number.])\nAC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],[\"$v2v_extra\"],[Extra version string.])\nPACKAGE_VERSION_FULL=\"v2v_major.v2v_minor.v2v_release${v2v_extra}\"\nAC_DEFINE_UNQUOTED([PACKAGE_VERSION_FULL],[\"$PACKAGE_VERSION_FULL\"],[Full version string.])\nAC_SUBST([PACKAGE_VERSION_FULL])\n\nAC_ARG_ENABLE([block-driver],\n    [AS_HELP_STRING([--disable-block-driver],\n                    [disable --block-driver feature])],\n    [case $enableval in\n    yes|no) ;;\n    *) AC_MSG_ERROR([bad value $enableval for --enable-block-driver option]) ;;\n    esac\n    ENABLE_BLOCK_DRIVER=$enableval],\n    [ENABLE_BLOCK_DRIVER=yes]\n)\nAC_SUBST([ENABLE_BLOCK_DRIVER])\nAM_CONDITIONAL([ENABLE_BLOCK_DRIVER], [test \"x$ENABLE_BLOCK_DRIVER\" = \"xyes\"])\n\ndnl Allow some input modes to be disabled.\nAC_ARG_ENABLE([xen],\n    [AS_HELP_STRING([--disable-xen],\n                    [disable Xen input mode])],\n    [case $enableval in\n    yes|no) ;;\n    *) AC_MSG_ERROR([bad value $enableval for --enable-xen option]) ;;\n    esac\n    ENABLE_XEN=$enableval],\n    [ENABLE_XEN=yes]\n)\nAC_SUBST([ENABLE_XEN])\nAM_CONDITIONAL([ENABLE_XEN], [test \"x$ENABLE_XEN\" = \"xyes\"])\n\ndnl Allow some output modes to be disabled.\nAC_ARG_ENABLE([glance],\n    [AS_HELP_STRING([--disable-glance],\n                    [disable -o glance output mode])],\n    [case $enableval in\n    yes|no) ;;\n    *) AC_MSG_ERROR([bad value $enableval for --enable-glance option]) ;;\n    esac\n    ENABLE_GLANCE=$enableval],\n    [ENABLE_GLANCE=yes]\n)\nAC_SUBST([ENABLE_GLANCE])\nAM_CONDITIONAL([ENABLE_GLANCE], [test \"x$ENABLE_GLANCE\" = \"xyes\"])\n\nAC_ARG_ENABLE([ovirt],\n    [AS_HELP_STRING([--disable-ovirt],\n                    [disable all oVirt output modes])],\n    [case $enableval in\n    yes|no) ;;\n    *) AC_MSG_ERROR([bad value $enableval for --enable-ovirt option]) ;;\n    esac\n    ENABLE_OVIRT=$enableval],\n    [ENABLE_OVIRT=yes]\n)\nAC_SUBST([ENABLE_OVIRT])\nAM_CONDITIONAL([ENABLE_OVIRT], [test \"x$ENABLE_OVIRT\" = \"xyes\"])\n\ndnl Check for external programs required to either build or run\ndnl virt-v2v.\nHEADING([Checking for external programs])\nm4_include([m4/guestfs-progs.m4])\n\ndnl Any C libraries required by virt-v2v.\nHEADING([Checking for libraries used by virt-v2v])\nm4_include([m4/guestfs-libraries.m4])\n\ndnl OCaml.\nHEADING([Checking for OCaml])\nm4_include([m4/guestfs-ocaml.m4])\n\ndnl Perl, used for running mllibvirt generator, and man pages.\nHEADING([Checking for Perl])\nm4_include([m4/guestfs-perl.m4])\n\ndnl Bash completion.\nHEADING([Checking for bash completion])\nm4_include([m4/guestfs-bash-completion.m4])\n\ndnl This are required to get common/*/Makefile.am files to work.  We\ndnl should further decouple these in future XXX\nAM_CONDITIONAL([HAVE_PYTHON],[false])  dnl Disables a test\n\ndnl Produce output files.\nHEADING([Generating output files])\n\nAC_CONFIG_HEADERS([config.h])\n\nAC_CONFIG_FILES([installcheck.sh],\n                [chmod +x,-w installcheck.sh])\nAC_CONFIG_FILES([ocaml-dep.sh],\n                [chmod +x,-w ocaml-dep.sh])\nAC_CONFIG_FILES([ocaml-link.sh],\n                [chmod +x,-w ocaml-link.sh])\nAC_CONFIG_FILES([podwrapper.pl],\n                [chmod +x,-w podwrapper.pl])\nAC_CONFIG_FILES([run],\n                [chmod +x,-w run])\n\ndnl NB: Remove common/mlstdutils/guestfs_config.ml in future XXX\nAC_CONFIG_FILES([Makefile\n                 bash/Makefile\n                 common/options/Makefile\n                 common/mlcustomize/Makefile\n                 common/mldrivers/Makefile\n                 common/mlgettext/Makefile\n                 common/mlpcre/Makefile\n                 common/mlstdutils/Makefile\n                 common/mlstdutils/guestfs_config.ml\n                 common/mltools/Makefile\n                 common/mlutils/Makefile\n                 common/mlxml/Makefile\n                 common/qemuopts/Makefile\n                 common/utils/Makefile\n                 config.sh\n                 convert/Makefile\n                 docs/Makefile\n                 gnulib/lib/Makefile\n                 in-place/Makefile\n                 input/Makefile\n                 inspector/Makefile\n                 lib/Makefile\n                 lib/config.ml\n                 open/Makefile\n                 output/Makefile\n                 po-docs/Makefile\n                 po-docs/ja/Makefile\n                 po-docs/uk/Makefile\n                 po/Makefile\n                 test-data/Makefile\n                 test-data/binaries/Makefile\n                 test-data/fake-virtio-win/Makefile\n                 test-data/fake-virt-tools/Makefile\n                 test-data/phony-guests/Makefile\n                 test-data/phony-guests/guests.xml\n                 tests/functions.sh\n                 tests/Makefile\n                 tests/test-cdrom.xml\n                 tests/test-floppy.xml\n                 tests/test-mac.xml\n                 tests/test-networks-and-bridges.xml\n                 tests/test-print-source.xml\n                 tests/test-rhbz1232192.xml\n                 tests/test-sound.xml\n                 v2v/Makefile])\n\nAC_OUTPUT\n\ndnl Produce summary.\necho\necho\necho \"------------------------------------------------------------\"\nHEADING([Thank you for downloading $PACKAGE_STRING])\necho\necho \"This is how we have configured the optional components for you today:\"\necho\n\nprint ()\n{\n    printf '    %.40s %s\\n' \\\n        \"$1 ........................................\" \"$2\"\n}\n\nfeature ()\n{\n    feat=\"$1\"\n    shift\n    if \"$@\"; then\n        printf \"$term_green\"\n        print \"$feat\" \"yes\"\n    else\n        printf \"$term_red\"\n        print \"$feat\" \"no\"\n    fi\n    printf \"$term_restore\"\n}\n\nfeature \"OCaml gettext (for translations)\" \\\n        test \"x$HAVE_OCAML_PKG_GETTEXT_TRUE\" = \"x\"\n\nfeature \"--block-driver feature\"  test \"x$ENABLE_BLOCK_DRIVER\" = \"xyes\"\nfeature \"Xen input mode\"          test \"x$ENABLE_XEN\" = \"xyes\"\nfeature \"-o glance output mode\"   test \"x$ENABLE_GLANCE\" = \"xyes\"\nfeature \"oVirt output modes\"      test \"x$ENABLE_OVIRT\" = \"xyes\"\n\necho\necho \"Please report bugs back to the mailing list:\"\necho \"https://lists.libguestfs.org\"\necho\necho \"Next you should type 'make' to build the package,\"\necho \"then 'make check' to run the tests.\"\necho \"------------------------------------------------------------\"\n"
  },
  {
    "path": "contrib/remove-guestor.reg",
    "content": "; Remove guestor registry entries\n; See virt-v2v(1) and https://issues.redhat.com/browse/MTV-2256\n\n[-HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds\\PCI\\VEN_1AF4&DEV_1001&REV_00]\n\n[-HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds\\PCI\\VEN_1AF4&DEV_1042&REV_01]\n\n[-HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DriverInfFiles\\guestor.inf]\n\n[-HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DriverPackages\\guestor.inf_tmp]\n"
  },
  {
    "path": "convert/Makefile.am",
    "content": "# helper-v2v-convert tool\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nEXTRA_DIST = \\\n\t$(SOURCES_MLI) \\\n\t$(SOURCES_ML) \\\n\t$(SOURCES_C) \\\n\t$(NULL)\n\nSOURCES_MLI = \\\n\tchoose_root.mli \\\n\tconvert.mli \\\n\tconvert_linux.mli \\\n\tconvert_types.mli \\\n\tconvert_windows.mli \\\n\tmount_filesystems.mli \\\n\ttarget_bus_assignment.mli \\\n\t$(NULL)\n\nSOURCES_ML = \\\n\tconvert_types.ml \\\n\tconvert_linux.ml \\\n\tconvert_windows.ml \\\n\tchoose_root.ml \\\n\tmount_filesystems.ml \\\n\ttarget_bus_assignment.ml \\\n\tconvert.ml \\\n\t$(NULL)\n\nSOURCES_C = dummy.c\n\n# We pretend that we're building a C library.  automake handles the\n# compilation of the C sources for us.  At the end we take the C\n# objects and OCaml objects and link them into the OCaml library.\n# This C library is never used.\n\nnoinst_LIBRARIES = libmlconvert.a\n\nif !HAVE_OCAMLOPT\nMLCONVERT_CMA = mlconvert.cma\nelse\nMLCONVERT_CMA = mlconvert.cmxa\nendif\n\nnoinst_DATA = $(MLCONVERT_CMA)\n\nlibmlconvert_a_SOURCES = $(SOURCES_C)\nlibmlconvert_a_CPPFLAGS = \\\n\t-DCAML_NAME_SPACE \\\n\t-I. \\\n\t-I$(top_builddir) \\\n\t-I$(shell $(OCAMLC) -where) \\\n\t-I$(top_srcdir)/lib \\\n\t$(NULL)\nlibmlconvert_a_CFLAGS = \\\n\t-pthread \\\n\t-fPIC \\\n\t$(WARN_CFLAGS) $(WERROR_CFLAGS) \\\n\t$(LIBGUESTFS_CFLAGS) \\\n\t$(NULL)\n\nBOBJECTS = $(SOURCES_ML:.ml=.cmo)\nXOBJECTS = $(BOBJECTS:.cmo=.cmx)\n\nOCAMLPACKAGES = \\\n\t-package str,unix,guestfs,nbd \\\n\t-I $(top_builddir)/common/utils/.libs \\\n\t-I $(top_builddir)/gnulib/lib/.libs \\\n\t-I $(top_builddir)/lib \\\n\t-I $(top_builddir)/common/mlcustomize \\\n\t-I $(top_builddir)/common/mlstdutils \\\n\t-I $(top_builddir)/common/mlutils \\\n\t-I $(top_builddir)/common/mlgettext \\\n\t-I $(top_builddir)/common/mlpcre \\\n\t-I $(top_builddir)/common/mltools \\\n\t-I $(top_builddir)/common/mldrivers \\\n\t-I $(top_builddir)/common/mlxml \\\n\t$(NULL)\nif HAVE_OCAML_PKG_GETTEXT\nOCAMLPACKAGES += -package gettext-stub\nendif\n\nOCAMLCLIBS = \\\n\t-pthread \\\n\t$(LIBGUESTFS_LIBS) \\\n\t$(LIBXML2_LIBS) \\\n\t$(LIBNBD_LIBS) \\\n\t-lgnu \\\n\t$(NULL)\n\nOCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)'\n\nif !HAVE_OCAMLOPT\nOBJECTS = $(BOBJECTS)\nelse\nOBJECTS = $(XOBJECTS)\nendif\n\nOCAMLLINKFLAGS = \\\n\tmlstdutils.$(MLARCHIVE) \\\n\tmlcutils.$(MLARCHIVE) \\\n\tmlgettext.$(MLARCHIVE) \\\n\tmlpcre.$(MLARCHIVE) \\\n\tmlxml.$(MLARCHIVE) \\\n\tmltools.$(MLARCHIVE) \\\n\tmlcustomize.$(MLARCHIVE) \\\n\tmldrivers.$(MLARCHIVE) \\\n\tmlv2vlib.$(MLARCHIVE) \\\n\t$(LINK_CUSTOM_OCAMLC_ONLY) \\\n\t$(NULL)\n\nlibmlconvert_a_DEPENDENCIES = \\\n\t$(OBJECTS)\n\n$(MLCONVERT_CMA): $(OBJECTS) libmlconvert.a\n\t$(AM_V_GEN) $(OCAMLFIND) mklib $(OCAMLPACKAGES) \\\n\t    $(OBJECTS) $(libmlconvert_a_OBJECTS) -o mlconvert\n\n# Dependencies.\n.depend: \\\n\t$(srcdir)/*.mli \\\n\t$(srcdir)/*.ml\n\t$(top_builddir)/ocaml-dep.sh $^\n-include .depend\n"
  },
  {
    "path": "convert/choose_root.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nmodule G = Guestfs\n\nopen Types\n\nlet choose_root root_choice g =\n  let roots = g#inspect_os () in\n  let roots = Array.to_list roots in\n\n  match roots with\n  | [] ->\n     error (f_\"inspection could not detect the source guest \\\n               (or physical machine) operating system.\\n\\n\\\n               Assuming that you are running virt-v2v/virt-p2v \\\n               on a source which is supported (and not, for example, \\\n               a blank disk), then this should not happen.\\n\\n\\\n               No root device found in this operating system image.\");\n  | [root] -> root (* only one root, so return it *)\n  | roots ->\n     (* If there are multiple roots, use the [--root] option supplied\n      * by the user to help us choose what we should do next.\n      *)\n     match root_choice with\n     | AskRoot ->\n        (* List out the roots and ask the user to choose. *)\n        printf \"\\n***\\n\";\n        printf (f_\"Dual- or multi-boot operating system detected.  \\\n                   Choose the root filesystem\\nthat contains the main \\\n                   operating system from the list below:\\n\");\n        printf \"\\n\";\n        List.iteri (\n          fun i root ->\n            let prod = g#inspect_get_product_name root in\n            match prod with\n            | \"unknown\" -> printf \" [%d] %s\\n\" (i+1) root\n            | prod -> printf \" [%d] %s (%s)\\n\" (i+1) root prod\n        ) roots;\n        printf \"\\n\";\n        let i = ref 0 in\n        let n = List.length roots in\n        while !i < 1 || !i > n do\n          printf (f_\"Enter a number between 1 and %d, or ‘exit’: \") n;\n          let input = read_line () in\n          if input = \"exit\" || input = \"q\" || input = \"quit\" then\n            exit 1\n          else (\n            try i := int_of_string input\n            with\n            | End_of_file -> error (f_\"connection closed\")\n            | Failure _ -> ()\n          )\n        done;\n        List.nth roots (!i - 1)\n\n      | SingleRoot ->\n        error (f_\"multi-boot operating systems are not supported by \\\n                  virt-v2v. Use the --root option to change how virt-v2v \\\n                  handles this.\")\n\n      | FirstRoot ->\n        let root = List.hd roots in\n        info (f_\"Picked %s because '--root first' was used.\") root;\n        root\n\n      | RootDev dev ->\n        let root =\n          if List.mem dev roots then dev\n          else\n            error (f_\"root device %s not found.  Roots found were: %s\")\n              dev (String.concat \" \" roots) in\n        info (f_\"Picked %s because '--root %s' was used.\") root dev;\n        root\n"
  },
  {
    "path": "convert/choose_root.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Choose which root device to convert.\n\n    This handles the [--root] command line option. *)\n\nval choose_root : Types.root_choice -> Guestfs.guestfs -> string\n(** Do libguestfs inspection on the guest.\n\n    Before calling this, the disks must be added to the handle\n    and the handle must be launched.\n\n    Depending on the contents of [root_choice] (the [--root] command\n    line option) choose which root device to convert.  A single\n    root device is returned.\n\n    Note that this function may be interactive ([--root ask]). *)\n"
  },
  {
    "path": "convert/convert.ml",
    "content": "(* helper-v2v-convert\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\nopen Common_gettext.Gettext\nopen Getopt.OptionName\n\nopen Types\nopen Utils\n\nmodule G = Guestfs\n\ntype options = {\n  block_driver : guestcaps_block_type;\n  keep_serial_console : bool;\n  ks : key_store;\n  memsize : int option;\n  network_map : Networks.t;\n  root_choice : root_choice;\n  smp : int option;\n  static_ips : static_ip list;\n  customize_ops : Customize_cmdline.ops;\n  no_fstrim : bool;\n}\n\n(* Mountpoint stats, used for free space estimation. *)\ntype mpstat = {\n  mp_dev : string;                      (* Filesystem device (eg. /dev/sda1) *)\n  mp_path : string;                     (* Guest mountpoint (eg. /boot) *)\n  mp_statvfs : Guestfs.statvfs;         (* Free space stats. *)\n  mp_vfs : string;                      (* VFS type (eg. \"ext4\") *)\n}\n\nlet rec convert input_disks options source =\n  let target_nics = List.map (Networks.map options.network_map) source.s_nics in\n\n  message (f_\"Opening the source\");\n  let g = open_guestfs ~identifier:\"v2v\" () in\n  let memsize =\n    match options.memsize with\n    | None ->\n       (* Default (if [--memsize] option is not used) is to calculate\n        * some multiple of the libguestfs default memory size.\n        *)\n       g#get_memsize () * 2\n    | Some memsize -> memsize in\n  g#set_memsize memsize;\n  let smp =\n    match options.smp with\n    | None ->\n       (* Default (if [--smp] option is not used) is to set the number\n        * according to the number of physical CPUs available (on the\n        * host or in the current cgroup).  But limit it because each\n        * vCPU consumes guest RAM.  This is necessary to allow parallel\n        * mkinitrd which greatly improves performance.\n        *)\n       min 8 (Cgroup.nr_cpus_available ())\n    | Some smp -> smp in\n  g#set_smp smp;\n\n  (* The network is used by the unconfigure_vmware () function, and the \"--key\n   * ID:clevis\" command line options (if any). *)\n  g#set_network true;\n  List.iter (\n    fun uri ->\n      (* NB: Old virt-v2v used copyonread here, when it was using a\n       * qcow2 file as overlay.  We MUST NOT use copyonread!  It\n       * doesn't do anything if there is no backing chain, but worse\n       * than that I observed a huge (33x!) slow down.\n       *)\n      let socket, export =\n        match uri with NBD_URI.Unix (socket, export) ->\n          sprintf \"unix:%s\" socket, Option.value export ~default:\"\" in\n      g#add_drive_opts export\n        ~format:\"raw\" ~protocol:\"nbd\" ~server:[| socket |]\n        ~cachemode:\"unsafe\" ~discard:\"besteffort\"\n  ) input_disks;\n\n  g#launch ();\n\n  (* Decrypt the disks. *)\n  inspect_decrypt g options.ks;\n\n  (* Check (fsck) the filesystems before conversion. *)\n  message (f_\"Checking filesystem integrity before conversion\");\n  do_fsck ~before:true g;\n\n  (* Detect firmware. *)\n  message (f_\"Detecting if this guest uses BIOS or UEFI to boot\");\n  let i_firmware = Firmware.detect_firmware g in\n\n  (* Inspect the source, choose root and mount up the filesystems. *)\n  message (f_\"Inspecting the source\");\n  let root = Choose_root.choose_root options.root_choice g in\n  let inspect = Mount_filesystems.mount_filesystems g root in\n\n  (* Detect boot device. *)\n  message (f_\"Detecting the boot device\");\n  let target_boot_device = get_target_boot_device g inspect in\n\n  let mpstats = get_mpstats g in\n  check_guest_free_space inspect mpstats;\n\n  (* Choose which conversion module we will use. *)\n  let (module Conversion_module) =\n    match inspect with\n    | { i_type = \"linux\";\n        i_distro = (\"fedora\"\n                    | \"rhel\" | \"centos\" | \"circle\" | \"scientificlinux\"\n                    | \"redhat-based\" | \"oraclelinux\" | \"rocky\"\n                    | \"sles\" | \"suse-based\" | \"opensuse\"\n                    | \"altlinux\"\n                    | \"debian\" | \"ubuntu\" | \"linuxmint\" | \"kalilinux\"\n                    | \"kylin\" | \"neokylin\" | \"anolis\" ) } ->\n       (module Convert_linux.Convert_linux : Convert_types.CONVERT)\n    | { i_type = \"windows\" } ->\n       (module Convert_windows.Convert_windows : Convert_types.CONVERT)\n    | _ ->\n       error (f_\"virt-v2v is unable to convert this guest type (%s/%s)\")\n         inspect.i_type inspect.i_distro in\n  debug \"picked conversion module %s\" Conversion_module.name;\n\n  (* Conversion. *)\n  let guestcaps =\n    do_convert g source inspect i_firmware\n      options.block_driver options.keep_serial_console options.static_ips\n      Conversion_module.convert in\n\n  (* Run virt-customize options. *)\n  Customize_run.run g inspect.i_root options.customize_ops;\n\n  g#umount_all ();\n\n  (* Post-conversion steps that run with filesystems unmounted. *)\n  Conversion_module.post_convert g inspect;\n\n  (* Doing fstrim on all the filesystems reduces the transfer size\n   * because unused blocks are marked in the overlay and thus do\n   * not have to be copied.\n   *)\n  if not options.no_fstrim then (\n    message\n      (f_\"Mapping filesystem data to avoid copying unused and blank areas\");\n    do_fstrim g inspect\n  ) else (\n    message (f_\"Skipping fstrim (--no-fstrim specified)\")\n  );\n\n  (* Check (fsck) the filesystems after conversion. *)\n  g#umount_all ();\n  message (f_\"Checking filesystem integrity after conversion\");\n  do_fsck g;\n\n  message (f_\"Closing the overlay\");\n  g#umount_all ();\n  g#shutdown ();\n  g#close ();\n\n  (* Prepare the target metadata. *)\n  message (f_\"Assigning disks to buses\");\n  let target_buses =\n    Target_bus_assignment.target_bus_assignment\n      source.s_disks source.s_removables guestcaps in\n  debug \"%s\" (string_of_target_buses target_buses);\n\n  let target_firmware =\n    get_target_firmware i_firmware guestcaps source output in\n\n  (* Create target metadata file. *)\n  let target_meta = { guestcaps; target_buses; target_nics;\n                      target_firmware; target_boot_device } in\n\n  (* This is a good place to dump everything we know about the guest. *)\n  if verbose () then debug_info source inspect target_meta mpstats;\n\n  (* Return inspection data and target metadata. *)\n  inspect, target_meta\n\n(* Collect statvfs information from the guest mountpoints. *)\nand get_mpstats g =\n  let mpstats = List.map (\n    fun (dev, path) ->\n      let statvfs = g#statvfs path in\n      let vfs = g#vfs_type dev in\n      { mp_dev = dev; mp_path = path; mp_statvfs = statvfs; mp_vfs = vfs }\n  ) (g#mountpoints ()) in\n\n  mpstats\n\n(* Conversion can fail if there is no space on the guest filesystems\n * (RHBZ#1139543).  To avoid this situation, check there is some\n * headroom.  Mainly we care about the root filesystem.\n *\n * Also make sure filesystems have available inodes. (RHBZ#1764569)\n *)\nand check_guest_free_space inspect mpstats =\n  message (f_\"Checking for sufficient free disk space in the guest\");\n\n  (* Check whether /boot has its own mount point. *)\n  let has_boot = List.exists (fun { mp_path } -> mp_path = \"/boot\") mpstats in\n  let is_windows = inspect.i_distro = \"windows\" in\n\n  let needed_megabytes_for_mp = function\n    (* We usually regenerate the initramfs, which has a\n     * typical size of 20-30MB.  Hence:\n     *)\n    | \"/boot\" | \"/\" when not has_boot && not is_windows -> 50\n    (* Both Linux and Windows require installation of files,\n     * device drivers and guest agents.\n     * https://bugzilla.redhat.com/1949147\n     * https://bugzilla.redhat.com/1764569#c16\n     *)\n    | \"/\" -> 100\n    (* For everything else, just make sure there is some free space. *)\n    | _ -> 10\n  in\n\n  (* Reasonable headroom for conversion operations. *)\n  let needed_inodes = 100L in\n\n  List.iter (\n    fun { mp_path; mp_statvfs = { G.bfree; bsize; files; ffree } } ->\n      (* bfree = free blocks for root user *)\n      let free_bytes = bfree *^ bsize in\n      let needed_megabytes = needed_megabytes_for_mp mp_path in\n      let needed_bytes = Int64.of_int needed_megabytes *^ 1024L *^ 1024L in\n      if free_bytes < needed_bytes then (\n        let mb i = Int64.to_float i /. 1024. /. 1024. in\n        error (f_\"not enough free space for conversion on filesystem ‘%s’.  \\\n                  %.1f MB free < %d MB needed\")\n          mp_path (mb free_bytes) needed_megabytes\n      );\n      (* Not all the filesystems have inode counts. *)\n      if files > 0L && ffree < needed_inodes then\n        error (f_\"not enough available inodes for conversion on \\\n                  filesystem ‘%s’.  %Ld inodes available < %Ld inodes needed\")\n          mp_path ffree needed_inodes\n  ) mpstats\n\n(* Perform the fstrim. *)\nand do_fstrim g inspect =\n  (* Get all filesystems. *)\n  let fses = g#list_filesystems () in\n\n  let fses = List.filter_map (\n    function (_, (\"unknown\"|\"swap\")) -> None | (dev, _) -> Some dev\n  ) fses in\n\n  (* Trim the filesystems. *)\n  List.iter (\n    fun dev ->\n      g#umount_all ();\n      let mounted =\n        try g#mount_options \"discard\" dev \"/\"; true\n        with G.Error _ -> false in\n\n      if mounted then (\n        debug \"info: trimming %s\" dev;\n        try g#fstrim \"/\"\n        with G.Error msg ->\n          warning (f_\"fstrim on guest filesystem %s failed.  Usually you \\\n                      can ignore this message.  To find out more read \\\n                      \\\"Trimming\\\" in virt-v2v(1).\\n\\n\\\n                      Original message: %s\") dev msg\n      )\n  ) fses\n\n(* Perform fsck before and after conversion.\n *\n * If fsck returns an error then the conversion will fail.  We do not\n * attempt to do any repairs.\n *)\nand do_fsck ?(before=false) g =\n  let fses = g#list_filesystems () in\n  List.iter (function\n      | dev, _ when String.starts_with \"btrfsvol:\" dev ->\n         (* Ignore btrfs volumes, since we should see the btrfs device\n          * somewhere else in the list and checking that is sufficient.\n          *)\n         ()\n\n      | dev, \"btrfs\" ->\n         (* btrfs-check would be the obvious thing, but the general\n          * opinion seems to be that it's broken, and you should use\n          * btrfs scrub instead.\n          *)\n         Fun.protect ~finally:g#umount_all (\n           fun () ->\n             g#mount_ro dev \"/\";\n             g#btrfs_scrub_full \"/\" ~readonly:true;\n         );\n\n      | dev, \"ext4\" ->\n         if before then (\n           (* Replay and hence repair a dirty log (RHEL-97600) *)\n           Fun.protect ~finally:g#umount_all (fun () -> g#mount_ro dev \"/\");\n         );\n\n         g#e2fsck ~forceno:true dev\n\n      | dev, \"xfs\" ->\n         if before then (\n           (* xfs_repair cannot replay the dirty log, only the kernel can,\n            * so we must first mount then unmount the filesystem, and then\n            * we can run xfs_repair.  Unlike what is documented, xfs_repair\n            * doesn't return 2 in this case.  Mount r/o is fine as that\n            * will still replay the log (RHEL-95365)\n            *)\n           Fun.protect ~finally:g#umount_all (fun () -> g#mount_ro dev \"/\");\n         );\n\n         (* Must specify the -n flag because we are not attempting to\n          * fix the filesystem here.\n          *)\n         let nomodify = true\n         (* xfs_repair runs out of memory in the low memory environment\n          * of the appliance unless we disable prefetch.\n          *)\n         and noprefetch = true in\n\n         if g#xfs_repair ~noprefetch ~nomodify dev <> 0 then\n           error (f_\"detected errors on the XFS filesystem on %s\") dev\n\n      | _, _ ->\n         (* Ignore other filesystem types. *)\n         ()\n  ) fses\n\n(* Conversion. *)\nand do_convert g source inspect i_firmware\n               block_driver keep_serial_console interfaces\n               convert =\n  (* Create the \"Converting...\" message.  Complicated! *)\n  let () =\n    let what_guest =\n      match inspect.i_product_name, inspect.i_osinfo with\n      | \"unknown\", \"unknown\" -> s_\"the guest\"\n      | \"unknown\", osinfo -> sprintf (f_\"%s guest\") osinfo\n      | prod, \"unknown\" -> prod\n      | prod, osinfo -> sprintf \"%s (%s)\" prod osinfo in\n\n    message (f_\"Converting %s to run on KVM\") what_guest in\n\n  let guestcaps =\n    convert g source inspect i_firmware\n            block_driver keep_serial_console interfaces in\n  debug \"%s\" (string_of_guestcaps guestcaps);\n\n  (* Did we manage to install virtio drivers? *)\n  if not (quiet ()) then (\n    match guestcaps.gcaps_block_bus with\n    | Virtio_blk | Virtio_SCSI ->\n        info (f_\"This guest has virtio drivers installed.\")\n    | IDE ->\n        info (f_\"This guest does not have virtio drivers installed.\")\n  );\n\n  guestcaps\n\n(* Does the guest require UEFI on the target? *)\nand get_target_firmware i_firmware guestcaps source output =\n  message (f_\"Checking if the guest needs BIOS or UEFI to boot\");\n  let target_firmware =\n    match source.s_firmware with\n    | BIOS -> TargetBIOS\n    | UEFI -> TargetUEFI\n    | UnknownFirmware ->\n       match i_firmware with\n       | I_BIOS -> TargetBIOS\n       | I_UEFI _ -> TargetUEFI\n  in\n\n  (match target_firmware with\n   | TargetBIOS -> ()\n   | TargetUEFI -> info (f_\"This guest requires UEFI on the target to boot.\"));\n\n  target_firmware\n\nand get_target_boot_device g inspect =\n  with_return (fun {return} ->\n    (* We only do it for Linux, as most likely Windows never(?) boots\n     * from any drive other than C:.  We can revisit this decision\n     * if someone reports a bug.\n     *)\n    if inspect.i_type <> \"linux\" then return None;\n\n    (* Look for \"GRUB\" signature in the boot sector of each disk.\n     * If we find it, choose that disk.\n     *)\n    let devices = g#list_devices () |> Array.to_list in\n    let boot_device = List.find_opt (has_grub_signature g) devices in\n    let boot_device = Option.map g#device_index boot_device in\n    if boot_device <> None then return boot_device;\n\n    (* If that fails, in sane cases, the Grub stage1/boot.img (ie. the boot\n     * sector) is always on the same drive as /boot.  So we can just find\n     * out where /boot is mounted and use that.\n     *)\n    get_device_of_boot_filesystem g inspect\n  )\n\nand has_grub_signature g dev =\n  let boot_sector = g#pread_device dev 512 0_L in\n  let r = String.find boot_sector \"GRUB\" >= 0 in\n  debug \"has_grub_signature: \\\"GRUB\\\" signature on %s? %b\" dev r;\n  r\n\nand get_device_of_boot_filesystem g inspect =\n  try\n    let boot_mountpoint = List.assoc \"/boot\" inspect.i_mountpoints in\n    let boot_device = g#part_to_dev boot_mountpoint in\n    debug \"get_device_of_boot_filesystem: found /boot filesystem on device %s\"\n      boot_device;\n    let boot_device = g#device_index boot_device in\n    Some boot_device\n  with\n  | Not_found -> None\n    (* Returned by part_to_dev if the /boot mountpoint is not\n     * a partition name.\n     *)\n  | G.Error msg\n       when String.find msg \"device name is not a partition\" >= 0 -> None\n    (* Returned by device_index if the /boot device is not\n     * a normal drive name (eg. /dev/mdX).\n     *)\n  | G.Error msg\n       when String.find msg \"device not found\" >= 0 -> None\n\n(* After conversion we dump as much information about the guest\n * as we can in one place.  Note this is only called when verbose\n * is enabled.\n *)\nand debug_info source inspect\n               { guestcaps; target_buses; target_nics;\n                 target_firmware; target_boot_device }\n               mpstats =\n  eprintf \"info:\\n\";\n  eprintf \"%s\\n\" (string_of_source source);\n  eprintf \"%s\\n\" (string_of_inspect inspect);\n  eprintf \"%s\\n\" (string_of_guestcaps guestcaps);\n  eprintf \"%s\\n\" (string_of_target_buses target_buses);\n  eprintf \"target firmware: %s\\n\" (string_of_target_firmware target_firmware);\n  eprintf \"target boot device: %s\\n\"\n    (match target_boot_device with None -> \"\" | Some i -> string_of_int i);\n  eprintf \"target NICs:\\n\";\n  List.iter (fun nic -> eprintf \"%s\\n\" (string_of_source_nic nic))\n    target_nics;\n  eprintf \"mountpoint stats:\\n\";\n  eprintf \"%20s %-16s %-16s %-16s %s\\n\" \"\" \"Size\" \"Used\" \"Available\" \"Use%\";\n  List.iter debug_mpstat mpstats;\n  flush Stdlib.stderr\n\n(* The calculations here are similar to virt-df df/output.c *)\nand debug_mpstat { mp_dev = dev; mp_path = path;\n                   mp_statvfs = { G.bsize; G.blocks; G.bfree; G.bavail };\n                   mp_vfs = vfs } =\n  let label = sprintf \"%s %s (%s):\" dev path vfs\n  and size = blocks *^ bsize\n  and used = (blocks -^ bfree) *^ bsize\n  and avail = bavail *^ bsize\n  and percent =\n    if blocks <> 0_L then\n      100. -. 100. *. (Int64.to_float bfree /. Int64.to_float blocks)\n    else\n      0. in\n  if String.length label > 20 then\n    eprintf \"%s\\n%20s \" label \"\"\n  else\n    eprintf \"%-20s \" label;\n  eprintf \"%-16Ld %-16Ld %-16Ld\\n\" size used avail;\n  eprintf \"%20s %-16s %-16s %-16s %.1f%%\\n\"\n    \"\" (human_size size) (human_size used) (human_size avail) percent\n"
  },
  {
    "path": "convert/convert.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\ntype options = {\n  block_driver : Types.guestcaps_block_type; (** [--block-driver] option *)\n  keep_serial_console : bool;\n  ks : Tools_utils.key_store;      (** [--key] option *)\n  memsize : int option;            (** [--memsize] option *)\n  network_map : Networks.t;        (** [-b] and [-n] options *)\n  root_choice : Types.root_choice; (** [--root] option *)\n  smp : int option;                (** [--smp] option *)\n  static_ips : Types.static_ip list; (** [--mac :ip:] option *)\n  customize_ops : Customize_cmdline.ops; (** virt-customize options *)\n  no_fstrim : bool;                (** [--no-fstrim] option *)\n}\n(** Command line options that get passed through to the conversion code. *)\n\nval convert : NBD_URI.t list -> options -> Types.source ->\n              Types.inspect * Types.target_meta\n(** The function that is called from virt-v2v to perform the actual\n    conversion of a guest to run on KVM.\n\n    The first parameter is the list of disks (as NBD URIs).\n\n    As a side-effect of conversion we inspect the guest, so this\n    function returns the inspection data, as well as the target\n    metadata determined by the conversion process. *)\n"
  },
  {
    "path": "convert/convert_linux.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(* Convert a Linux guest to run on KVM. *)\n\n(* < mdbooth> It's all in there for a reason :/ *)\n\nopen Printf\n\nopen C_utils\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Utils\nopen Types\nopen Linux_kernels\n\nmodule G = Guestfs\n\n(* The conversion function. *)\nlet convert (g : G.guestfs) source inspect i_firmware _ keep_serial_console _ =\n  (*----------------------------------------------------------------------*)\n  (* Inspect the guest first.  We already did some basic inspection in\n   * the common v2v.ml code, but that has to deal with generic guests\n   * (anything common to Linux and Windows).  Here we do more detailed\n   * inspection which can make the assumption that we are dealing with\n   * a Linux guest using RPM or Debian packages.\n   *)\n\n  (* Basic inspection data available as local variables. *)\n  assert (inspect.i_type = \"linux\");\n\n  let family =\n    match inspect.i_distro with\n    | \"fedora\"\n    | \"rhel\" | \"centos\" | \"circle\" | \"scientificlinux\" | \"redhat-based\"\n    | \"oraclelinux\" | \"rocky\" | \"kylin\" | \"neokylin\" | \"anolis\" -> `RHEL_family\n    | \"altlinux\" -> `ALT_family\n    | \"sles\" | \"suse-based\" | \"opensuse\" -> `SUSE_family\n    | \"debian\" | \"ubuntu\" | \"linuxmint\" | \"kalilinux\" -> `Debian_family\n    | _ -> assert false in\n\n  (* map the OS family name to the qemu-guest-agent package name *)\n  let qga_pkg_of_family =\n    function\n    | `RHEL_family\n    | `ALT_family\n    | `SUSE_family\n    | `Debian_family -> Some \"qemu-guest-agent\"\n    | _ -> None\n  in\n\n  let qga_svc_start_cmd family distro major =\n    match family, distro, major with\n    | `RHEL_family, ( \"rhel\" | \"centos\" | \"circle\" | \"scientificlinux\" |\n                      \"redhat-based\" | \"oraclelinux\" | \"rocky\" ), 6 ->\n      (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c52 *)\n      Some \"service qemu-ga start\"\n\n    | `RHEL_family, _, _ ->\n      (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c52 *)\n      Some \"systemctl start qemu-guest-agent\"\n\n    | `ALT_family, _, _ ->\n      (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c45 *)\n      Some \"systemctl start qemu-guest-agent\"\n\n    | `SUSE_family, _, _ ->\n      (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c51 *)\n      None\n\n    | `Debian_family, _, _ ->\n      (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c42 *)\n      Some \"service qemu-guest-agent start\"\n\n    | _ ->\n      (* should never be called when \"qga_pkg_of_family\" returns None *)\n      assert false\n  in\n\n  assert (inspect.i_package_format = \"rpm\" || inspect.i_package_format = \"deb\");\n\n  (* Fail early if i_apps is empty.  Certain steps such as kernel\n   * detection won't work without this.  If the list is empty it\n   * likely indicates that libguestfs inspection is broken for\n   * this guest.  See for example RHBZ#1965147.\n   *)\n  if inspect.i_apps = [] then\n    error (f_\"inspection of the package database failed for this Linux \\\n              guest.  Rerun virt-v2v with -v -x and see earlier errors.  \\\n              This is an internal error which probably means that this guest \\\n              is not supported by libguestfs inspection.  If the guest should \\\n              work with virt-v2v (see virt-v2v docs) then a fix will be \\\n              required in libguestfs.\");\n\n  (* We use Augeas for inspection and conversion, so initialize it early.\n   *)\n  let () =\n    let aug_save_backup = 1\n    and aug_no_load = 32 in\n    g#aug_init \"/\" (aug_save_backup + aug_no_load);\n\n    (* Exclude some lense includes which are problematic on a case-by-case\n     * basis.  Note the double quotes are part of the incl, and the incl\n     * must exactly match the definition in the Augeas lens file.\n     * - \"/etc/lvm/archive/*.vg\" because of RHEL-113820\n     *)\n    let removed_incls = [ {|\"/etc/lvm/archive/*.vg\"|} ] in\n    List.iter (\n      fun incl ->\n        let augpath = sprintf \"/augeas/load//incl[%s]\" incl in\n        let n = g#aug_rm augpath in\n        debug \"convert_linux: removed %d incl(s) matching %s\" n incl;\n    ) removed_incls;\n\n    g#aug_load ();\n\n    (* Calling debug_augeas_errors will display any //error nodes in\n     * debugging output if verbose (but otherwise it does nothing).\n     *)\n    debug_augeas_errors g in\n\n  (* Clean RPM database.  This must be done early to avoid RHBZ#1143866. *)\n  Array.iter g#rm_f (g#glob_expand \"/var/lib/rpm/__db.00?\");\n\n  (* Detect the installed bootloader. *)\n  let bootloader =\n    Linux_bootloaders.detect_bootloader g inspect.i_root i_firmware in\n  Linux.augeas_reload g;\n\n  (* Detect which kernels are installed and offered by the bootloader. *)\n  let bootloader_kernels =\n    Linux_kernels.detect_kernels g inspect.i_root bootloader inspect.i_apps in\n\n  (*----------------------------------------------------------------------*)\n  (* Conversion step. *)\n\n  let rec do_convert () =\n    augeas_grub_configuration ();\n\n    unconfigure_xen ();\n    unconfigure_vbox ();\n    unconfigure_vmware ();\n    unconfigure_citrix ();\n    unconfigure_kudzu ();\n    unconfigure_prltools ();\n\n    install_linux_tools ();\n\n    let kernel = configure_kernel () in\n\n    if keep_serial_console then (\n      configure_console ();\n      bootloader#configure_console ();\n    ) else (\n      remove_console ();\n      bootloader#remove_console ();\n    );\n\n    let block_type =\n      if kernel.ki_supports_virtio_blk then Virtio_blk else IDE in\n    let net_type =\n      if kernel.ki_supports_virtio_net then Virtio_net else E1000 in\n\n    configure_display_driver ();\n    remap_block_devices block_type;\n    configure_kernel_modules block_type net_type;\n    rebuild_initrd kernel;\n\n    let machine, virtio_1_0 =\n      match inspect.i_arch with\n      | (\"i386\"|\"x86_64\") ->\n        (match Libosinfo_utils.get_os_by_short_id inspect.i_osinfo with\n         | Some os ->\n            let devices = os#get_devices () in\n            debug \"libosinfo devices for OS \\\"%s\\\":\\n%s\" inspect.i_osinfo\n              (Libosinfo_utils.string_of_osinfo_device_list devices);\n            ((if Libosinfo_utils.os_devices_supports_q35 devices\n              then Q35 else I440FX),\n             Libosinfo_utils.os_devices_supports_vio10 devices)\n         | None ->\n            (* Pivot on the year 2007.  Any Linux distro from earlier than 2007\n             * should use i440fx, anything 2007 or newer should use q35.\n             *)\n            (match inspect.i_distro, inspect.i_major_version with\n             | \"fedora\", _ -> Q35\n             | (\"rhel\"|\"centos\"|\"circle\"|\"scientificlinux\"|\"redhat-based\"|\n                \"oraclelinux\"|\"rocky\"), major ->\n                if major <= 4 then I440FX else Q35\n             | (\"sles\"|\"suse-based\"|\"opensuse\"), major ->\n                if major < 10 then I440FX else Q35\n             | (\"debian\"|\"ubuntu\"|\"linuxmint\"|\"kalilinux\"), major ->\n                if major < 4 then I440FX else Q35\n\n             (* reasonable default for all modern Linux kernels *)\n             | _, _ -> Q35\n            ), true\n        )\n\n      | _ -> Virt, true\n    in\n\n    (* RHEL >= 9.0 on x86_64 requires the processor to support the \"x86-64-v2\"\n     * microarchitecture level, which the default QEMU VCPU model does not\n     * satisfy.  Refer to RHBZ#2076013 RHBZ#2166619.\n     *)\n    let arch_min_version =\n      if family <> `RHEL_family || inspect.i_arch <> \"x86_64\" ||\n         inspect.i_major_version < 9\n      then 0 else 2 in\n\n    (* Return guest capabilities from the convert () function. *)\n    let guestcaps = {\n      gcaps_block_bus = block_type;\n      gcaps_net_bus = net_type;\n      gcaps_virtio_rng = kernel.ki_supports_virtio_rng;\n      gcaps_virtio_balloon = kernel.ki_supports_virtio_balloon;\n      gcaps_isa_pvpanic = kernel.ki_supports_isa_pvpanic;\n      gcaps_virtio_socket = kernel.ki_supports_virtio_socket;\n      gcaps_machine = machine;\n      gcaps_arch = Utils.kvm_arch inspect.i_arch;\n      gcaps_arch_min_version = arch_min_version;\n      gcaps_virtio_1_0 = virtio_1_0;\n      gcaps_rtc_utc = true; (* almost all Linux expect RTC to be UTC *)\n    } in\n\n    guestcaps\n\n  and augeas_grub_configuration () =\n    if bootloader#set_augeas_configuration () then\n      Linux.augeas_reload g\n\n  and unconfigure_xen () =\n    if family = `SUSE_family then (\n      (* Remove xen modules from INITRD_MODULES and DOMU_INITRD_MODULES. *)\n      let variables = [\"INITRD_MODULES\"; \"DOMU_INITRD_MODULES\"] in\n      let xen_modules = [\"xennet\"; \"xen-vnif\"; \"xenblk\"; \"xen-vbd\"] in\n      let modified = ref false in\n      List.iter (\n        fun var ->\n          List.iter (\n            fun xen_mod ->\n              let expr =\n                sprintf \"/file/etc/sysconfig/kernel/%s/value[. = '%s']\"\n                  var xen_mod in\n              let entries = g#aug_match expr in\n              let entries = Array.to_list entries in\n              if entries <> [] then (\n                List.iter (fun e -> ignore (g#aug_rm e)) entries;\n                modified := true\n              )\n          ) xen_modules\n      ) variables;\n      if !modified then g#aug_save ()\n    );\n\n  and unconfigure_vbox () =\n    (* Uninstall VirtualBox Guest Additions. *)\n    let package_name = \"virtualbox-guest-additions\" in\n    let has_guest_additions =\n      List.exists (\n        fun { G.app2_name = name } -> name = package_name\n      ) inspect.i_apps in\n    if has_guest_additions then\n      uninstall_packages_nonfatal [package_name];\n\n    (* Guest Additions might have been installed from a tarball.  The\n     * above code won't detect this case.  Look for the uninstall tool\n     * and try running it.\n     *\n     * Note that it's important we do this early in the conversion\n     * process, as this uninstallation script naively overwrites\n     * configuration files with versions it cached prior to\n     * installation.\n     *)\n    let vboxconfig = \"/var/lib/VBoxGuestAdditions/config\" in\n    if g#is_file ~followsymlinks:true vboxconfig then (\n      let lines = g#read_lines vboxconfig in\n      let lines = Array.to_list lines in\n      let rex = PCRE.compile \"^INSTALL_DIR=(.*)$\" in\n      let lines = List.filter_map (\n        fun line ->\n          if PCRE.matches rex line then (\n            let path = PCRE.sub 1 in\n            let path = shell_unquote path in\n            if String.length path >= 1 && path.[0] = '/' then (\n              let vboxuninstall = path ^ \"/uninstall.sh\" in\n              Some vboxuninstall\n            )\n            else None\n          )\n          else None\n      ) lines in\n      let lines = List.filter (g#is_file ~followsymlinks:true) lines in\n      match lines with\n      | [] -> ()\n      | vboxuninstall :: _ ->\n        try\n          ignore (g#command [| vboxuninstall |]);\n\n          (* Reload Augeas to detect changes made by vbox tools uninst. *)\n          Linux.augeas_reload g\n        with\n          G.Error msg ->\n            warning (f_\"VirtualBox Guest Additions were detected, but \\\n                        uninstallation failed.  The error message was: %s \\\n                        (ignored)\") msg\n    )\n\n  and unconfigure_vmware () =\n    (* Look for any configured VMware yum repos and disable them. *)\n    let repos =\n      g#aug_match \"/files/etc/yum.repos.d/*/*[baseurl =~ \\\n                   regexp('https?://([^/]+\\\\.)?vmware\\\\.com/.*')]\" in\n    let repos = Array.to_list repos in\n    List.iter (\n      fun repo ->\n        g#aug_set (repo ^ \"/enabled\") \"0\";\n        g#aug_save ()\n    ) repos;\n\n    (* Uninstall VMware Tools. *)\n    let remove = ref [] and libraries = ref [] in\n    (* On Ubuntu, the ubuntu-server metapackage depends on\n     * open-vm-tools, and thus any attempt to remove it will cause\n     * dependency issues.  Hence, special case this situation, and\n     * leave open-vm-tools installed in this case.\n     *)\n    let has_ubuntu_server =\n      if family = `Debian_family then\n        List.exists (\n          fun { G.app2_name = name } ->\n            name = \"ubuntu-server\"\n        ) inspect.i_apps\n      else false in\n    List.iter (\n      fun { G.app2_name = name } ->\n        if String.starts_with \"vmware-tools-libraries-\" name then\n          List.push_front name libraries\n        else if String.starts_with \"vmware-tools-\" name then\n          List.push_front name remove\n        else if name = \"VMwareTools\" then\n          List.push_front name remove\n        else if String.starts_with \"kmod-vmware-tools\" name then\n          List.push_front name remove\n        else if String.starts_with \"open-vm-tools-\" name then\n          List.push_front name remove\n        else if name = \"open-vm-tools\" && not has_ubuntu_server then\n          List.push_front name remove\n    ) inspect.i_apps;\n    let libraries = !libraries in\n\n    (* VMware tools includes 'libraries' packages which provide custom\n     * versions of core functionality. We need to install non-custom\n     * versions of everything provided by these packages before\n     * attempting to uninstall them, or we'll hit dependency\n     * issues.\n     *)\n    if libraries <> [] then (\n      (* We only support removal of libraries on systems which use yum. *)\n      if inspect.i_package_management = \"yum\" then (\n        List.iter (\n          fun library ->\n            let provides =\n              g#command_lines [| \"rpm\"; \"-q\"; \"--provides\"; library |] in\n            let provides = Array.to_list provides in\n\n            (* The packages provide themselves, filter this out. *)\n            let provides =\n              List.filter (\n                fun s ->\n                  not (library = s || String.starts_with (library ^ \" = \") s)\n              ) provides in\n\n            (* If the package provides something other than itself, then\n             * proceed installing the replacements; in the other case,\n             * just mark the package for removal, as it means no other\n             * package can depend on something provided.\n             *)\n            if provides <> [] then (\n              (* Trim whitespace. *)\n              let provides = List.map String.trim provides in\n\n              (* Install the dependencies with yum.  Use yum explicitly\n               * because we don't have package names and local install is\n               * impractical.\n               *)\n              let cmd = [\"yum\"; \"-q\"; \"resolvedep\"] @ provides in\n              let cmd = Array.of_list cmd in\n              let replacements = g#command_lines cmd in\n              let replacements = Array.to_list replacements in\n\n              let cmd = [ \"yum\"; \"install\"; \"-y\" ] @ replacements in\n              let cmd = Array.of_list cmd in\n              (try\n                 ignore (g#command cmd);\n                 List.push_front library remove\n               with G.Error msg ->\n                 eprintf \"%s: could not install replacement for %s.  Error \\\n                          was: %s.  %s was not removed.\\n\"\n                   prog library msg library\n              );\n            ) else (\n              List.push_front library remove;\n            );\n        ) libraries\n      )\n    );\n\n    uninstall_packages_nonfatal !remove;\n\n    (* VMware Tools may have been installed from a tarball, so the\n     * above code won't remove it.  Look for the uninstall tool and run\n     * if present.\n     *)\n    let uninstaller = \"/usr/bin/vmware-uninstall-tools.pl\" in\n    if g#is_file ~followsymlinks:true uninstaller then (\n      try\n        (* The VMware tools uninstaller will rebuild the ramdisk for\n         * the kernels present either at installation time, or at\n         * later time (when the tools are applied to newly\n         * installed kernels).  Since we do not want to potentially\n         * rebuilt all the available kernels, trick the \"database\"\n         * of the VMware tools installation to not do any ramdisk\n         * restore.  In any case, we will rebuilt the ramdisk of the\n         * default kernel already.\n         *)\n        let locations = \"/etc/vmware-tools/locations\" in\n        if g#is_file ~followsymlinks:true locations then (\n          g#write_append locations \"remove_answer RESTORE_RAMDISK_CMD\\n\";\n          g#write_append locations \"remove_answer RESTORE_RAMDISK_KERNELS\\n\";\n          g#write_append locations \"remove_answer RESTORE_RAMDISK_ONECALL\\n\";\n        );\n        if family = `SUSE_family then\n          ignore (g#command [| \"/usr/bin/env\";\n                               \"rootdev=\" ^ inspect.i_root;\n                               uninstaller |])\n        else\n          ignore (g#command [| uninstaller |]);\n\n        (* Reload Augeas to detect changes made by vbox tools uninst. *)\n        Linux.augeas_reload g\n      with\n        G.Error msg ->\n          warning (f_\"VMware tools was detected, but uninstallation failed.  \\\n                      The error message was: %s (ignored)\") msg\n    )\n\n  and unconfigure_citrix () =\n    let pkgs =\n      List.filter (\n        fun { G.app2_name = name } ->\n          String.starts_with \"xe-guest-utilities\" name\n      ) inspect.i_apps in\n    let pkgs = List.map (fun { G.app2_name = name } -> name) pkgs in\n\n    if pkgs <> [] then (\n      uninstall_packages_nonfatal pkgs;\n\n      (* Installing these guest utilities automatically unconfigures\n       * ttys in /etc/inittab if the system uses it. We need to put\n       * them back.\n       *)\n      let rex = PCRE.compile \"^([1-6]):([2-5]+):respawn:(.*)\" in\n      let updated = ref false in\n      let rec loop () =\n        let comments = g#aug_match \"/files/etc/inittab/#comment\" in\n        let comments = Array.to_list comments in\n        match comments with\n        | [] -> ()\n        | commentp :: _ ->\n          let comment = g#aug_get commentp in\n          if PCRE.matches rex comment then (\n            let name = PCRE.sub 1\n            and runlevels = PCRE.sub 2\n            and process = PCRE.sub 3 in\n\n            if String.find process \"getty\" >= 0 then (\n              updated := true;\n\n              (* Create a new entry immediately after the comment. *)\n              g#aug_insert commentp name false;\n              g#aug_set (\"/files/etc/inittab/\" ^ name ^ \"/runlevels\") runlevels;\n              g#aug_set (\"/files/etc/inittab/\" ^ name ^ \"/action\") \"respawn\";\n              g#aug_set (\"/files/etc/inittab/\" ^ name ^ \"/process\") process;\n\n              (* Delete the comment node. *)\n              ignore (g#aug_rm commentp);\n\n              (* As the aug_rm invalidates the output of aug_match, we\n               * now have to restart the whole loop.\n               *)\n              loop ()\n            )\n          )\n      in\n      loop ();\n      if !updated then g#aug_save ();\n    )\n\n  and unconfigure_kudzu () =\n    (* Disable kudzu in the guest\n     * Kudzu will detect the changed network hardware at boot time and\n     * either:\n     * - require manual intervention, or\n     * - disable the network interface\n     * Neither of these behaviours is desirable.\n     *)\n    if g#is_file ~followsymlinks:true \"/etc/init.d/kudzu\"\n      && g#is_file ~followsymlinks:true \"/sbin/chkconfig\" then (\n        ignore (g#command [| \"/sbin/chkconfig\"; \"kudzu\"; \"off\" |])\n      )\n\n  and unconfigure_prltools () =\n    let prltools_path = \"/usr/lib/parallels-tools/install\" in\n    if g#is_file ~followsymlinks:true prltools_path then (\n      try\n        ignore (g#command [| prltools_path; \"-r\" |]);\n\n        (* Reload Augeas to detect changes made by prltools uninst. *)\n        Linux.augeas_reload g\n      with\n        G.Error msg ->\n          warning (f_\"Parallels tools was detected, but uninstallation \\\n                      failed. The error message was: %s (ignored)\") msg\n    )\n\n  and install_linux_tools () =\n    (* It is not fatal if we fail to install the QEMU guest agent. *)\n    match qga_pkg_of_family family with\n    | None -> warning (f_\"The name of the package that provides the QEMU Guest \\\n                          Agent for this guest OS is unknown.  The guest agent \\\n                          will not be installed.  Please consider reporting a \\\n                          bug according to the BUGS section of the virt-v2v(1) \\\n                          manual.\")\n    | Some qga_pkg ->\n        let has_qemu_guest_agent =\n          List.exists (\n            fun { G.app2_name = name } ->\n              name = qga_pkg\n          ) inspect.i_apps in\n        if not has_qemu_guest_agent then\n          try\n            let inst_cmd = Guest_packages.install_command [qga_pkg]\n                             inspect.i_package_management in\n\n            (* Use only the portable filename character set in this. *)\n            let selinux_enforcing = \"/root/virt-v2v-fb-selinux-enforcing\"\n            and timeout = 30 in\n            let fbs =\n              Firstboot.add_firstboot_script g inspect.i_root\n            in\n            info (f_\"The QEMU Guest Agent will be installed for this guest at \\\n                     first boot.\");\n\n            (* Wait for the network to come online in the guest (best effort).\n             *)\n            fbs \"wait online\"\n              (sprintf {|#!/bin/sh\nif conn=$(nmcli networking connectivity); then\n  tries=0\n  while\n    test $tries -lt %d &&\n    test full != \"$conn\"\n  do\n    sleep 1\n    tries=$((tries + 1))\n    conn=$(nmcli networking connectivity)\n  done\nelif systemctl -q is-active systemd-networkd; then\n  /usr/lib/systemd/systemd-networkd-wait-online \\\n    -q --timeout=%d\nfi\n|} timeout timeout);\n\n            (* Disable SELinux temporarily around package installation. Refer to\n             * <https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c7> and\n             * <https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c8>.\n             *)\n            fbs \"setenforce 0\"\n              (sprintf {|#!/bin/sh\nrm -f %s\nif command -v getenforce >/dev/null &&\n  test Enforcing = \"$(getenforce)\"\nthen\n  touch %s\n  setenforce 0\nfi\n|} selinux_enforcing selinux_enforcing);\n            fbs \"install qga\" inst_cmd;\n            fbs \"setenforce restore\"\n              (sprintf {|#!/bin/sh\nif test -f %s; then\n  setenforce 1\n  rm -f %s\nfi\n|} selinux_enforcing selinux_enforcing);\n\n            (* On all the distro families covered by \"qga_pkg_of_family\" and\n             * \"qga_svc_start_cmd\", the QEMU guest agent service is always\n             * enabled by package installation for *subsequent* boots. Package\n             * installation may or may not enable the service for the current\n             * (i.e., first) boot, however, so try that here manually.\n             *)\n            match qga_svc_start_cmd family inspect.i_distro inspect.i_major_version\n            with\n            | None -> ()\n            | Some start_cmd ->\n              fbs \"start qga\"\n                (sprintf \"#!/bin/sh\\n\\\n                          %s\\n\" start_cmd)\n          with\n          | Guest_packages.Unknown_package_manager msg\n          | Guest_packages.Unimplemented_package_manager msg ->\n            warning (f_\"The QEMU Guest Agent will not be installed.  The \\\n                        install command for package ‘%s’ could not be created: \\\n                        %s.\") qga_pkg msg\n\n  and add_initramfs_option_to_crypttab () =\n    (* For debian based distros that use update-initramfs, an initrd\n     * rebuilt under libguestfs likely won't populate configure\n     * boot time crypttab correctly. We work around it by adding\n     * `initramfs` option to every /etc/crypttab entry.\n     *)\n    (* Get all crypttab entries *)\n    let entries = g#aug_match \"/files/etc/crypttab/*\" in\n    let entries = Array.to_list entries in\n\n    let changed = ref false in\n\n    List.iter (\n      fun entry_path ->\n        (* Check if this entry already has the initramfs option *)\n        let opts = g#aug_match (sprintf \"%s/opt\" entry_path) in\n        let opts = Array.to_list opts in\n\n        let has_initramfs = List.exists (\n          fun opt_path ->\n            let opt_name = g#aug_get opt_path in\n            opt_name = \"initramfs\"\n        ) opts in\n\n        if not has_initramfs then (\n          (* Add the initramfs option *)\n          let new_opt_path = sprintf \"%s/opt[last()+1]\" entry_path in\n          g#aug_set new_opt_path \"initramfs\";\n          changed := true;\n\n          let target = g#aug_get (sprintf \"%s/target\" entry_path) in\n          debug \"convert_linux: added 'initramfs' option to crypttab entry '%s'\" target\n        )\n    ) entries;\n\n    (* Save changes if any were made *)\n    if !changed then (\n      g#aug_save ();\n      Linux.augeas_reload g\n    )\n\n  and configure_kernel () =\n    (* Previously this function would try to install kernels, but we\n     * don't do that any longer.\n     *)\n\n    (* Check a non-Xen kernel exists. *)\n    let only_xen_kernels = List.for_all (\n      fun { ki_is_xen_pv_only_kernel = pv_only } -> pv_only\n    ) bootloader_kernels in\n    if only_xen_kernels then\n      error (f_\"only Xen kernels are installed in this guest.\\n\\n\\\n                Read the %s(1) manual, section \\\"Xen paravirtualized \\\n                guests\\\", to see what to do.\") prog;\n\n    (* Enable the best non-Xen kernel, where \"best\" means the one with\n     * the highest version, preferring non-debug kernels which support\n     * virtio.\n     *)\n    let best_kernel =\n      let compare_best_kernels k1 k2 =\n        let i = compare k1.ki_supports_virtio_net k2.ki_supports_virtio_net in\n        if i <> 0 then i\n        else (\n          let i = compare_app2_versions k1.ki_app k2.ki_app in\n          if i <> 0 then i\n          (* Favour non-debug kernels over debug kernels (RHBZ#1170073). *)\n          else compare k2.ki_is_debug k1.ki_is_debug\n        )\n      in\n      let kernels = bootloader_kernels in\n      let kernels =\n        List.filter (fun { ki_is_xen_pv_only_kernel = pv_only } -> not pv_only)\n                    kernels in\n      let kernels = List.sort compare_best_kernels kernels in\n      let kernels = List.rev kernels (* so best is first *) in\n      List.hd kernels in\n    if verbose () then (\n      eprintf \"info: best kernel for this guest:\\n\";\n      print_kernel_info stderr \"\\t\" best_kernel;\n      flush stderr\n    );\n    if best_kernel <> List.hd bootloader_kernels then (\n      debug \"best kernel is not the bootloader default, \\\n             setting bootloader default ...\";\n      bootloader#set_default_kernel best_kernel.ki_vmlinuz\n    );\n\n    (* Update /etc/sysconfig/kernel DEFAULTKERNEL (RHBZ#1176801). *)\n    if g#is_file ~followsymlinks:true \"/etc/sysconfig/kernel\" then (\n      let entries =\n        g#aug_match \"/files/etc/sysconfig/kernel/DEFAULTKERNEL/value\" in\n      let entries = Array.to_list entries in\n      if entries <> [] then (\n        List.iter (fun path -> g#aug_set path best_kernel.ki_name) entries;\n        g#aug_save ()\n      )\n    );\n\n    best_kernel\n\n  (* Even though the kernel was already installed (this version of\n   * virt-v2v does not install new kernels), it could have an\n   * initrd that does not have support virtio.  Therefore rebuild\n   * the initrd.\n   *)\n  and rebuild_initrd kernel =\n    match kernel.ki_initrd with\n    | None -> ()\n    | Some initrd ->\n      (* Enable the basic virtio modules in the kernel.\n       *\n       * Also forcibly include the \"xts\" module; see RHBZ#1658126.\n       *\n       * Include the BOCHS DRM paravirt video driver; see RHBZ#2131123.  This\n       * driver is known under two names -- \"bochs-drm\" and \"bochs\".\n       *)\n      let modules =\n        let modules =\n          (* The order of modules here is deliberately the same as the\n           * order specified in the postinstall script of kmod-virtio in\n           * RHEL3. The reason is that the probing order determines the\n           * major number of vdX block devices. If we change it, RHEL 3\n           * KVM guests won't boot.\n           *)\n          List.filter (fun m -> List.mem m kernel.ki_modules)\n                      [ \"virtio\"; \"virtio_ring\"; \"virtio_blk\";\n                        \"virtio_scsi\"; \"virtio_net\"; \"virtio_pci\"; \"xts\";\n                        \"bochs-drm\"; \"bochs\" ] in\n        if modules <> [] then modules\n        else\n          (* Fallback copied from old virt-v2v.  XXX Why not \"ide\"? *)\n          [ \"sym53c8xx\" ] in\n\n      (* Move the old initrd file out of the way.  Note that dracut/mkinitrd\n       * will refuse to overwrite an old file so we have to do this.\n       *)\n      g#mv initrd (initrd ^ \".pre-v2v\");\n\n      (* dracut and mkinitrd want what they call the \"kernel version\".  What\n       * they actually mean is the last element of the module path\n       * (eg. /lib/modules/2.6.32-496.el6.x86_64 -> 2.6.32-496.el6.x86_64)\n       * which might include the arch.  Get that here.\n       *)\n      let mkinitrd_kv =\n        let modpath = kernel.ki_modpath in\n        match last_part_of modpath '/' with\n        | Some x -> x\n        | None -> invalid_arg (sprintf \"invalid module path: %s\" modpath) in\n\n      let run_dracut_command dracut_path =\n        (* Dracut. *)\n        let args =\n          dracut_path ::\n            (if verbose () then [ \"--verbose\" ] else [])\n          @ [ \"--add-drivers\"; String.concat \" \" modules; initrd; mkinitrd_kv ]\n        in\n        ignore (g#command (Array.of_list args))\n      in\n\n      let run_update_initramfs_command () =\n        let args =\n          \"/usr/sbin/update-initramfs\"  ::\n            (if verbose () then [ \"-v\" ] else [])\n          @ [ \"-c\"; \"-k\"; mkinitrd_kv ]\n        in\n        ignore (g#command (Array.of_list args))\n      in\n\n      if g#is_file ~followsymlinks:true \"/sbin/dracut\" then\n        run_dracut_command \"/sbin/dracut\"\n      else if g#is_file ~followsymlinks:true \"/usr/bin/dracut\" then\n        run_dracut_command \"/usr/bin/dracut\"\n      else if family = `SUSE_family\n           && g#is_file ~followsymlinks:true \"/sbin/mkinitrd\" then (\n        ignore (\n          g#command [| \"/usr/bin/env\";\n                       \"rootdev=\" ^ inspect.i_root;\n                       \"/sbin/mkinitrd\";\n                       \"-m\"; String.concat \" \" modules;\n                       \"-i\"; initrd;\n                       \"-k\"; kernel.ki_vmlinuz;\n                       \"-d\"; inspect.i_root |]\n        )\n      )\n      else if family = `Debian_family then (\n        if not (g#is_file ~followsymlinks:true\n                  \"/usr/sbin/update-initramfs\") then\n          error (f_\"unable to rebuild initrd (%s) because update-initramfs \\\n                    was not found in the guest\")\n            initrd;\n\n        if List.length modules > 0 then (\n          (* The modules to add to initrd are defined in:\n          *     /etc/initramfs-tools/modules\n          * File format is same as modules(5).\n          *)\n          let path = \"/files/etc/initramfs-tools/modules\" in\n          g#aug_transform \"modules\" \"/etc/initramfs-tools/modules\";\n          Linux.augeas_reload g;\n          g#aug_set (sprintf \"%s/#comment[last()+1]\" path)\n            \"The following modules were added by virt-v2v\";\n          List.iter (\n            fun m -> g#aug_clear (sprintf \"%s/%s\" path m)\n          ) modules;\n          g#aug_save ();\n        );\n\n        (* Add initramfs option to crypttab entries *)\n        add_initramfs_option_to_crypttab ();\n\n        run_update_initramfs_command ()\n      )\n      else if g#is_file ~followsymlinks:true \"/usr/sbin/make-initrd\" then (\n        ignore (\n          g#command [|\n            (* by default make-initrd running in vm add virtio and other\n             * needed to boot modules\n             *)\n            \"/usr/sbin/make-initrd\";\n             \"-k\"; kernel.ki_version;\n          |]\n        )\n      )\n      else if g#is_file ~followsymlinks:true \"/sbin/mkinitrd\" then (\n        let module_args = List.map (sprintf \"--with=%s\") modules in\n        let args =\n          [ \"/sbin/mkinitrd\" ] @ module_args @ [ initrd; mkinitrd_kv ] in\n\n        (* We explicitly modprobe ext2 here. This is required by\n         * mkinitrd on RHEL 3, and shouldn't hurt on other OSs. We\n         * don't care if this fails.\n         *)\n        (try g#modprobe \"ext2\" with G.Error _ -> ());\n\n        (* loop is a module in RHEL 5. Try to load it. Doesn't matter\n         * for other OSs if it doesn't exist, but RHEL 5 will complain:\n         *   \"All of your loopback devices are in use.\"\n         *)\n        (try g#modprobe \"loop\" with G.Error _ -> ());\n\n        (* RHEL 4 mkinitrd determines if the root filesystem is on LVM\n         * by checking if the device name (after following symlinks)\n         * starts with /dev/mapper. However, on recent kernels/udevs,\n         * /dev/mapper/foo is just a symlink to /dev/dm-X. This means\n         * that RHEL 4 mkinitrd running in the appliance fails to\n         * detect root on LVM. We check ourselves if root is on LVM,\n         * and frig RHEL 4's mkinitrd if it is by setting root_lvm=1 in\n         * its environment. This overrides an internal variable in\n         * mkinitrd, and is therefore extremely nasty and applicable\n         * only to a particular version of mkinitrd.\n         *)\n        let env =\n          if family = `RHEL_family && inspect.i_major_version = 4 then\n            Some \"root_lvm=1\"\n          else\n            None in\n\n        match env with\n        | None -> ignore (g#command (Array.of_list args))\n        | Some env ->\n          let cmd = sprintf \"sh -c '%s %s'\" env (String.concat \" \" args) in\n          ignore (g#sh cmd)\n      )\n      else (\n        error (f_\"unable to rebuild initrd (%s) because mkinitrd or dracut \\\n                  was not found in the guest\") initrd\n      )\n\n  (* We configure a console on ttyS0. Make sure existing console\n   * references use it.  N.B. Note that the RHEL 6 xen guest kernel\n   * presents a console device called /dev/hvc0, whereas previous xen\n   * guest kernels presented /dev/xvc0. The regular kernel running\n   * under KVM also presents a virtio console device called /dev/hvc0,\n   * so ideally we would just leave it alone. However, RHEL 6 libvirt\n   * doesn't yet support this device so we can't attach to it. We\n   * therefore use /dev/ttyS0 for RHEL 6 anyway.\n   *)\n  and configure_console () =\n    (* Look for gettys using xvc0 or hvc0.  RHEL 6 doesn't use inittab\n     * but this still works.\n     *)\n    let paths = g#aug_match \"/files/etc/inittab/*/process\" in\n    let paths = Array.to_list paths in\n    let rex = PCRE.compile \"\\\\b([xh]vc0)\\\\b\" in\n    List.iter (\n      fun path ->\n        let proc = g#aug_get path in\n        let proc' = PCRE.replace ~global:true rex \"ttyS0\" proc in\n        if proc <> proc' then g#aug_set path proc'\n    ) paths;\n\n    let paths = g#aug_match \"/files/etc/securetty/*\" in\n    let paths = Array.to_list paths in\n    List.iter (\n      fun path ->\n        let tty = g#aug_get path in\n        if tty = \"xvc0\" || tty = \"hvc0\" then\n          g#aug_set path \"ttyS0\"\n    ) paths;\n\n    g#aug_save ()\n\n  (* If the target doesn't support a serial console, we want to remove\n   * all references to it instead.\n   *)\n  and remove_console () =\n    (* Look for gettys using xvc0 or hvc0.  RHEL 6 doesn't use inittab\n     * but this still works.\n     *)\n    let paths = g#aug_match \"/files/etc/inittab/*/process\" in\n    let paths = Array.to_list paths in\n    let rex = PCRE.compile \"\\\\b([xh]vc0|ttyS0)\\\\b\" in\n    List.iter (\n      fun path ->\n        let proc = g#aug_get path in\n        if PCRE.matches rex proc then\n          ignore (g#aug_rm (path ^ \"/..\"))\n    ) paths;\n\n    let paths = g#aug_match \"/files/etc/securetty/*\" in\n    let paths = Array.to_list paths in\n    List.iter (\n      fun path ->\n        let tty = g#aug_get path in\n        if tty = \"xvc0\" || tty = \"hvc0\" then\n          ignore (g#aug_rm path)\n    ) paths;\n\n    g#aug_save ()\n\n  and configure_display_driver () =\n    let video_driver = \"modesetting\" in\n\n    let updated = ref false in\n\n    let xorg_conf =\n      if not (g#is_file ~followsymlinks:true \"/etc/X11/xorg.conf\") &&\n        g#is_file ~followsymlinks:true \"/etc/X11/XF86Config\"\n      then (\n        g#aug_set \"/augeas/load/Xorg/incl[last()+1]\" \"/etc/X11/XF86Config\";\n        g#aug_load ();\n        \"/etc/X11/XF86Config\"\n        )\n      else\n        \"/etc/X11/xorg.conf\" in\n\n    let paths = g#aug_match (\"/files\" ^ xorg_conf ^ \"/Device/Driver\") in\n    Array.iter (\n      fun path ->\n        g#aug_set path video_driver;\n        updated := true\n    ) paths;\n\n    (* Remove VendorName and BoardName if present. *)\n    let paths = g#aug_match (\"/files\" ^ xorg_conf ^ \"/Device/VendorName\") in\n    Array.iter (fun path -> ignore (g#aug_rm path)) paths;\n    let paths = g#aug_match (\"/files\" ^ xorg_conf ^ \"/Device/BoardName\") in\n    Array.iter (fun path -> ignore (g#aug_rm path)) paths;\n\n    g#aug_save ();\n\n    (* If we updated the X driver, check that X itself is installed,\n     * and warn if not.  Old virt-v2v used to attempt to install X here\n     * but that way lies insanity and ruin.\n     *)\n    if !updated &&\n      not (g#is_file ~followsymlinks:true \"/usr/bin/X\") &&\n      not (g#is_file ~followsymlinks:true \"/usr/bin/X11/X\") then\n      warning (f_\"The display driver was updated to ‘%s’, but X11 does not \\\n                  seem to be installed in the guest.  X may not function \\\n                  correctly.\") video_driver\n\n  and configure_kernel_modules block_type net_type =\n    (* This function modifies modules.conf (and its various aliases). *)\n\n    let augeas_modprobe query =\n      (* Execute g#aug_match, but against every known location of\n         modules.conf. *)\n      let paths = [\n        \"/files/etc/conf.modules/alias\";        (* modules_conf.aug *)\n        \"/files/etc/modules.conf/alias\";\n        \"/files/etc/modprobe.conf/alias\";       (* modprobe.aug *)\n        \"/files/etc/modprobe.conf.local/alias\";\n        \"/files/etc/modprobe.d/*/alias\";\n      ] in\n      let paths =\n        List.map (\n          fun p ->\n            let p = sprintf \"%s[%s]\" p query in\n            Array.to_list (g#aug_match p)\n        ) paths in\n      List.flatten paths\n\n    and discover_modpath () =\n      (* Find what /etc/modprobe.conf is called today. *)\n      if g#is_dir ~followsymlinks:true \"/etc/modprobe.d\" then (\n        (* Create a new file /etc/modprobe.d/virt-v2v-added.conf. *)\n        \"/etc/modprobe.d/virt-v2v-added.conf\"\n      ) else (\n        (* List of methods, in order of preference. *)\n        let paths = [\n          \"/etc/modprobe.conf.local\";\n          \"/etc/modprobe.conf\";\n          \"/etc/modules.conf\";\n          \"/etc/conf.modules\"\n        ] in\n        try List.find (g#is_file ~followsymlinks:true) paths\n        with Not_found ->\n          error (f_\"unable to find any valid modprobe configuration file such \\\n                    as /etc/modprobe.conf\");\n      )\n    in\n\n    (* Update 'alias eth0 ...'. *)\n    let paths = augeas_modprobe \". =~ regexp('eth[0-9]+')\" in\n    let net_device =\n      match net_type with\n      | Virtio_net -> \"virtio_net\"\n      | E1000 -> \"e1000\"\n      | RTL8139 -> \"rtl8139cp\"\n    in\n\n    List.iter (\n      fun path -> g#aug_set (path ^ \"/modulename\") net_device\n    ) paths;\n\n    (* Update 'alias scsi_hostadapter ...' *)\n    let paths = augeas_modprobe \". =~ regexp('scsi_hostadapter.*')\" in\n    (match block_type with\n    | Virtio_blk | Virtio_SCSI ->\n      let block_module =\n        match block_type with\n        | Virtio_blk -> \"virtio_blk\"\n        | Virtio_SCSI -> \"virtio_scsi\"\n        | IDE -> assert false in\n\n      if paths <> [] then (\n        (* There's only 1 scsi controller in the converted guest.\n         * Convert only the first scsi_hostadapter entry to virtio\n         * and delete other scsi_hostadapter entries.\n         *)\n        let path, paths_to_delete = List.hd paths, List.tl paths in\n\n        (* Note that we delete paths in reverse order. This means we don't\n         * have to worry about alias indices being changed.\n         *)\n        List.iter (fun path -> ignore (g#aug_rm path))\n          (List.rev paths_to_delete);\n\n        g#aug_set (path ^ \"/modulename\") block_module\n      ) else (\n        (* We have to add a scsi_hostadapter. *)\n        let modpath = discover_modpath () in\n        g#aug_set (sprintf \"/files%s/alias[last()+1]\" modpath)\n          \"scsi_hostadapter\";\n        g#aug_set (sprintf \"/files%s/alias[last()]/modulename\" modpath)\n          block_module\n      )\n    | IDE ->\n      (* There is no scsi controller in an IDE guest. *)\n      List.iter (fun path -> ignore (g#aug_rm path)) (List.rev paths)\n    );\n\n    (* Display a warning about any leftover Xen modules which we\n     * haven't converted.  These are likely to cause an error when\n     * we run mkinitrd.\n     *)\n    let xen_modules = [ \"xennet\"; \"xen-vnif\"; \"xenblk\"; \"xen-vbd\" ] in\n    let query =\n      \"modulename =~ regexp('\" ^ String.concat \"|\" xen_modules ^ \"')\" in\n    let paths = augeas_modprobe query in\n    List.iter (\n      fun path ->\n        let device = g#aug_get path in\n        let module_ = g#aug_get (path ^ \"/modulename\") in\n        warning (f_\"don’t know how to update %s which loads the %s module\")\n          device module_;\n    ) paths;\n\n    (* Update files. *)\n    g#aug_save ()\n\n  and remap_block_devices block_type =\n    (* This function's job is to iterate over boot configuration\n     * files, replacing \"hda\" with \"vda\" or whatever is appropriate.\n     * This is mostly applicable to old guests, since newer OSes use\n     * LABEL or UUID where possible.\n     *\n     * The original Convert::Linux::_remap_block_devices function was\n     * very complex indeed.  This drops most of the complexity.  In\n     * particular it assumes all non-removable source disks will be\n     * added to the target in the order they appear in the libvirt XML.\n     *)\n    let ide_block_prefix =\n      match family, inspect.i_major_version with\n      | `RHEL_family, v when v < 5 ->\n        (* RHEL < 5 used old ide driver *) \"hd\"\n      | `RHEL_family, 5 ->\n        (* RHEL 5 uses libata, but udev still uses: *) \"hd\"\n      | `SUSE_family, _ ->\n        (* SUSE uses libata, but still presents IDE disks as: *) \"hd\"\n      | _, _ ->\n        (* All modern distros use libata: *) \"sd\" in\n\n    let block_prefix_after_conversion =\n      match block_type with\n      | Virtio_blk -> \"vd\"\n      | Virtio_SCSI -> \"sd\"\n      | IDE -> ide_block_prefix in\n\n    let map =\n      List.mapi (\n        fun i { s_controller } ->\n          let device_name_before_conversion i =\n            match s_controller with\n            | None (* If we don't have a controller, guess.  Assumes the\n                    * source used IDE.\n                    *)\n            | Some Source_IDE ->\n               ide_block_prefix ^ drive_name i\n            | Some (Source_virtio_SCSI | Source_SCSI | Source_SATA) ->\n               \"sd\" ^ drive_name i\n            | Some Source_virtio_blk -> \"vd\" ^ drive_name i\n            (* For NVMe assume no one is using namespaces. *)\n            | Some Source_NVME -> sprintf \"nvme%dn1\" i in\n          let source_dev = device_name_before_conversion i in\n          let target_dev = block_prefix_after_conversion ^ drive_name i in\n          source_dev, target_dev\n      ) source.s_disks in\n\n    (* If a Xen guest has non-PV devices, Xen also simultaneously\n     * presents these as xvd devices. i.e. hdX and xvdX both exist and\n     * are the same device.\n     *\n     * This mapping is also useful for P2V conversion of Citrix\n     * Xenserver guests done in HVM mode. Disks are detected as sdX,\n     * although the guest uses xvdX natively.\n     *)\n    let map = map @\n      List.mapi (\n        fun i disk ->\n          \"xvd\" ^ drive_name i, block_prefix_after_conversion ^ drive_name i\n      ) source.s_disks in\n\n    (* Check the first CD-ROM. If its controller is IDE, and the OS is RHEL<=5,\n     * then translate the CD-ROM from \"/dev/hd[SLOT]\" to \"/dev/cdrom\". See\n     * RHBZ#1637857 for details.\n     *)\n    let cdroms = List.filter\n                   (fun removable -> removable.s_removable_type = CDROM)\n                   source.s_removables in\n    if List.length cdroms >= 2 then\n      warning (f_\"multiple CD-ROMs found; translation of CD-ROM references \\\n                  may be inexact\");\n    let map = map @\n      (match cdroms with\n       | { s_removable_controller = Some Source_IDE;\n           s_removable_slot = Some slot } :: _\n         when family = `RHEL_family && inspect.i_major_version <= 5 ->\n           [(\"hd\" ^ drive_name slot, \"cdrom\")]\n       | _ -> []\n      ) in\n\n    if verbose () then (\n      eprintf \"info: block device map:\\n\";\n      List.iter (\n        fun (source_dev, target_dev) ->\n          eprintf \"\\t%s\\t-> %s\\n\" source_dev target_dev\n      ) (List.sort (fun (a,_) (b,_) -> compare a b) map);\n      flush stderr\n    );\n\n    (* Possible Augeas paths to search for device names. *)\n    let paths = [\n      (* /etc/fstab *)\n      \"/files/etc/fstab/*/spec\";\n      \"/files/etc/crypttab/*/device\";\n    ] in\n    (* Bootloader config *)\n    let paths = paths @ bootloader#augeas_device_patterns in\n\n    (* Which of these paths actually exist? *)\n    let paths =\n      List.flatten (List.map Array.to_list (List.map g#aug_match paths)) in\n\n    (* Map device names for each entry. *)\n    let rex_resume = PCRE.compile \"^resume=(/dev/[-a-z\\\\d/_]+)(.*)$\"\n    and rex_device_cciss = PCRE.compile \"^/dev/(cciss/c\\\\d+d\\\\d+)(?:p(\\\\d+))?$\"\n    and rex_device_nvme = PCRE.compile \"^/dev/(nvme\\\\d+n1)(?:p(\\\\d+))?$\"\n    and rex_device = PCRE.compile \"^/dev/([a-z]+)(\\\\d*)?$\" in\n\n    let rec replace_if_device path value =\n      let replace device =\n        try List.assoc device map\n        with Not_found ->\n          if not (String.starts_with \"md\" device) &&\n             not (String.starts_with \"fd\" device) &&\n             not (String.starts_with \"sr\" device) &&\n             not (String.starts_with \"scd\" device) &&\n             device <> \"cdrom\" then\n            warning (f_\"%s references unknown device \\\"%s\\\".  You may have to \\\n                        fix this entry manually after conversion.\")\n              path device;\n          device\n      in\n\n      if PCRE.matches rex_device_cciss value ||\n         PCRE.matches rex_device_nvme value ||\n         PCRE.matches rex_device value then (\n        let device = PCRE.sub 1\n        and part = try PCRE.sub 2 with Not_found -> \"\" in\n        let adjusted_dev = \"/dev/\" ^ replace device ^ part in\n\n        (* On sles12sp5, the installer puts a non-stable path into\n           /etc/crypttab, like /dev/sda2. If we replace it with eg. /dev/vda2,\n           and then regenerate dracut initrd, systemd cryptab integration\n           doesn't happen correctly, because it all expects /dev/vda2 to\n           exist at initrd creation time..\n\n           We can avoid this by filling in a stable `UUID=<luks UUID>` value.\n           This depends on /dev/sdXX in the guest having the same /dev/sdXX\n           name in the appliance.\n         *)\n        if String.starts_with \"/files/etc/crypttab\" path &&\n           String.starts_with \"/dev/sd\" value then (\n          try\n            let uuid = g#vfs_uuid value in\n            \"UUID=\" ^ uuid\n          with ex ->\n            warning (f_\"failed to translate encrypted device name %s to a UUID \\\n                in /etc/crypttab.  This may prevent the guest from booting \\\n                after conversion. You may have to manually change the file and \\\n                reconvert. The original error was: %s\")\n              value (Printexc.to_string ex);\n            adjusted_dev\n        ) else\n          adjusted_dev\n      )\n      else (* doesn't look like a known device name *)\n        value\n    in\n\n    let changed = ref false in\n    List.iter (\n      fun path ->\n        let value = g#aug_get path in\n        let new_value =\n          if String.find path \"GRUB_CMDLINE\" >= 0 then (\n            (* Handle grub2 resume=<dev> specially. *)\n            let rec loop str =\n              let index = String.find str \"resume=\" in\n              if index >= 0 then (\n                let part = String.sub str index (String.length str - index) in\n                if PCRE.matches rex_resume part then (\n                  let start = String.sub str 0 (index + 7 (* \"resume=\" *))\n                  and device = PCRE.sub 1\n                  and end_ = PCRE.sub 2 in\n                  let device = replace_if_device path device in\n                  start ^ device ^ loop end_\n                )\n                else str\n              )\n              else str\n            in\n            loop value\n          )\n          else\n            replace_if_device path value in\n\n        if value <> new_value then (\n          g#aug_set path new_value;\n          changed := true\n        )\n    ) paths;\n\n    if !changed then (\n      g#aug_save ();\n\n      (* Make sure the bootloader is up-to-date. *)\n      bootloader#update ();\n\n      Linux.augeas_reload g\n    );\n\n    (* Some linux uefi setups can't boot after conversion because of\n       lost uefi boot entries. The uefi boot entries are stored in uefi\n       NVRAM. The NVRAM content isn't a part of vm disk content and\n       usually can't be converted alongside the vm.\n       If a vm doesn't have uefi fallback path (/EFI/BOOT/BOOT<arch>.efi)\n       the vm is unbootable after conversion.\n       The following code tries to make an uefi fallback path for\n       a uefi linux vm.\n    *)\n    (match i_firmware with\n    | Firmware.I_BIOS -> ()\n    | I_UEFI _ ->\n      (* Standard uefi fallback path *)\n      let uefi_fallback_path = \"/boot/efi/EFI/BOOT/\" in\n\n      let cant_fix_uefi () =\n        info (f_\"Can't fix UEFI bootloader. VM may not boot.\")\n      in\n\n      match get_uefi_arch_suffix inspect.i_arch with\n      | None -> cant_fix_uefi ()\n      | Some suffix -> (\n        let uefi_fallback_name =\n          sprintf \"%sBOOT%s.EFI\" uefi_fallback_path suffix in\n\n        let file_exists file =\n          if g#exists file then\n            true\n          else (\n            info (f_\"Can't find file: '%s' needed for UEFI fixing\")\n                 file;\n            false )\n        in\n\n        let grub_config = bootloader#get_config_file () in\n\n        let grub_path =\n          String.sub grub_config 0 (String.rindex grub_config '/') in\n\n        if g#exists uefi_fallback_name then\n          (* don't do anything if uefi fallback exists *)\n          ()\n        else (\n          info (f_\"Fixing UEFI bootloader.\");\n          match inspect.i_distro, inspect.i_major_version with\n            | \"centos\", 6 ->\n              (* to make a bootable uefi centos 6 we need to\n               * copy grub.efi and grub.conf to UEFI fallback path\n               * and rename them to BOOT<arch>.efi and BOOT<arch>.conf\n               * correspondingly *)\n              let uefi_grub_name = String.concat \"\" [grub_path; \"/grub.efi\"] in\n              let uefi_grub_conf = String.concat \"\" [\n                                     String.sub uefi_fallback_name 0\n                                     (String.rindex uefi_fallback_name '.');\n                                     \".conf\" ] in\n              if file_exists uefi_grub_name && file_exists grub_config then (\n                g#mkdir_p uefi_fallback_path;\n                g#cp uefi_grub_name uefi_fallback_name;\n                g#cp grub_config uefi_grub_conf;\n                let fix_script =\n                  sprintf\n                    \"#!/bin/bash\\n\\\n                     efibootmgr -c -L \\\"CentOS 6\\\"\\n\\\n                     rm -rf %s\"\n                    uefi_fallback_path in\n                Firstboot.add_firstboot_script\n                  g inspect.i_root \"fix uefi boot\" fix_script)\n              else\n                cant_fix_uefi ()\n            | (\"ubuntu\", 14) | (\"debian\", 12)->\n              (* to make a bootable uefi ubuntu 14 we need to\n               * copy shim<arch>.efi to UEFI fallback path\n               * and rename it to BOOT<arch>.efi, also we copy\n               * grub.efi and grub.cfg to UEFI fallback path without renaming *)\n              let arch_suffix = String.lowercase_ascii suffix in\n\n              let distro = inspect.i_distro in\n\n              let shim =\n                String.concat \"\" [grub_path; \"/shim\"; arch_suffix; \".efi\"] in\n              let uefi_grub_name =\n                String.concat \"\" [grub_path; \"/grub\"; arch_suffix; \".efi\"] in\n\n              if file_exists shim && file_exists uefi_grub_name\n                                  && file_exists grub_config then (\n                g#mkdir_p uefi_fallback_path;\n                g#cp shim uefi_fallback_name;\n                g#cp uefi_grub_name uefi_fallback_path;\n                g#cp grub_config uefi_fallback_path;\n                (* if the shim is at the standard path, clean up uefi fixing\n                 * if not, then just don't clean up and leave the temp loader\n                 * at UEFI fallback path for simplicity\n                 *)\n                if String.find shim (sprintf \"/boot/efi/EFI/%s/shim\" distro) >= 0 then\n                  let fix_script =\n                    sprintf\n                      \"#!/bin/bash\\n\\\n                       sudo efibootmgr -c -L %s \\\n                         -l \\\\\\\\EFI\\\\\\\\%s\\\\\\\\shim%s.efi\\n\\\n                       rm -rf %s\"\n                      distro distro arch_suffix uefi_fallback_path in\n                  Firstboot.add_firstboot_script\n                    g inspect.i_root \"fix uefi boot\" fix_script\n                else\n                  ()\n              )\n              else\n                cant_fix_uefi ()\n          | _, _ ->\n            info (f_\"No UEFI fix rule for %s %d\")\n                 inspect.i_distro inspect.i_major_version;\n            cant_fix_uefi ()\n        )\n      )\n    ); (* inspect.i_firmware == I_UEFI *)\n\n    (* Delete blkid caches if they exist, since they will refer to the old\n     * device names.  blkid will rebuild these on demand.\n     *\n     * Delete the LVM cache since it will contain references to the\n     * old devices (RHBZ#1164853, RHBZ#2112801).\n     *)\n    List.iter g#rm_f [\n      \"/etc/blkid/blkid.tab\"; \"/etc/blkid.tab\";\n      \"/etc/lvm/cache/.cache\"; \"/etc/lvm/devices/system.devices\"\n    ];\n\n  (* This is a wrapper around Guestfs_packages.uninstall_command\n   * which catches errors and turns them into warnings, since\n   * uninstalling packages is best effort in virt-v2v.  It also\n   * reloads the Augeas configuration since removing packages might\n   * change /etc files.\n   *)\n  and uninstall_packages_nonfatal pkgs =\n    if pkgs <> [] then (\n      let cmd =\n        try Guest_packages.uninstall_command pkgs inspect.i_package_management\n        with\n        | Guest_packages.Unknown_package_manager msg\n        | Guest_packages.Unimplemented_package_manager msg ->\n          error \"%s\" msg\n      in\n      (try ignore (g#sh cmd)\n       with G.Error msg ->\n         warning (f_\"could not uninstall packages ‘%s’: %s (ignored)\")\n           (String.concat \" \" pkgs) msg\n      );\n      (* Reload Augeas in case anything changed. *)\n      Linux.augeas_reload g\n    )\n  in\n\n  do_convert ()\n\nmodule Convert_linux = struct\n  let name = \"linux\"\n  let convert = convert\n  let post_convert _ _ = ()\nend\n"
  },
  {
    "path": "convert/convert_linux.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Convert a Linux guest to run on KVM.\n\n    This module converts certain Enterprise Linux guests to run on\n    KVM.  RHEL, SuSE, Fedora, CentOS, OracleLinux, ALT, Debian, Ubuntu,\n    Mint and Kali are supported by this module. *)\n\nmodule Convert_linux : Convert_types.CONVERT\n"
  },
  {
    "path": "convert/convert_types.ml",
    "content": "(* helper-v2v-convert\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nmodule type CONVERT = sig\n  val name : string\n  val convert : Guestfs.guestfs -> Types.source -> Types.inspect ->\n                Firmware.i_firmware -> Types.guestcaps_block_type ->\n                bool -> Types.static_ip list ->\n                Types.guestcaps\n  val post_convert : Guestfs.guestfs -> Types.inspect -> unit\nend\n"
  },
  {
    "path": "convert/convert_types.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nmodule type CONVERT = sig\n  val name : string\n  (** Module name (only used in debugging). *)\n\n  val convert : Guestfs.guestfs -> Types.source -> Types.inspect ->\n                Firmware.i_firmware -> Types.guestcaps_block_type ->\n                bool -> Types.static_ip list ->\n                Types.guestcaps\n  (** Perform the guest-specific conversion for Linux or Windows.\n      This function is called with the guest disks mounted. *)\n\n  val post_convert : Guestfs.guestfs -> Types.inspect -> unit\n  (** Perform \"post-conversion\" operations.  This is only used for\n      Windows, where some operations must be done after the disks\n      have been unmounted.  For Linux it does nothing. *)\nend\n(** Conversion modules for Linux and Windows are provided separately.\n    They both provide this interface. *)\n"
  },
  {
    "path": "convert/convert_windows.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Utils\nopen Types\n\nmodule G = Guestfs\n\n(* Convert Windows guests.\n *\n * This only does a \"pre-conversion\", the steps needed to get the\n * Windows guest to boot on KVM.  Unlike the [Convert_linux] module,\n * this is not a full conversion.  Instead it just installs the\n * [viostor] (Windows virtio block) driver, so that the Windows guest\n * will be able to boot on the target.  A [RunOnce] script is also\n * added to the VM which does all the rest of the conversion the first\n * time the Windows VM is booted on KVM.\n *)\n\nlet convert (g : G.guestfs) source inspect i_firmware\n      block_driver _ static_ips =\n  (*----------------------------------------------------------------------*)\n  (* Inspect the Windows guest. *)\n\n  (* Locate virtio-win ISO or directory using the [VIRTIO_WIN]\n   * environment variable.\n   *)\n  let virtio_win =\n    Inject_virtio_win.from_environment g inspect.i_root Config.datadir in\n  (match block_driver with\n   | Virtio_blk -> () (* the default, no need to do anything *)\n   | Virtio_SCSI ->\n      let drivers = Inject_virtio_win.get_block_driver_priority virtio_win in\n      let drivers = \"vioscsi\" :: drivers in\n      Inject_virtio_win.set_block_driver_priority virtio_win drivers\n   | IDE -> assert false (* not possible - but maybe ...? *)\n  );\n\n  (* If the Windows guest has AV installed. *)\n  let has_antivirus =\n    List.exists (fun { G.app2_class } -> app2_class = \"antivirus\")\n      inspect.i_apps in\n\n  (* Does the guest expect the RTC to be set to UTC or localtime?\n   * See https://wiki.archlinux.org/title/System_time#UTC_in_Microsoft_Windows\n   * Note this might be a QWORD on 64 bit Windows instances.\n   *)\n  let rtc_utc =\n    Registry.with_hive_readonly g inspect.i_windows_system_hive\n      (fun reg ->\n       try\n         let key_path = [ \"Control\"; \"TimeZoneInformation\" ] in\n         let path = inspect.i_windows_current_control_set :: key_path in\n         let node =\n           match Registry.get_node reg path with\n           | None -> raise Not_found\n           | Some node -> node in\n         let valueh = g#hivex_node_get_value node \"RealTimeIsUniversal\" in\n         if valueh = 0L then raise Not_found;\n         let t = g#hivex_value_type valueh in\n         let data = g#hivex_value_value valueh in\n         let is_utc =\n           match t with\n           | 0_L (* REG_NONE *) -> false (* localtime *)\n           | 4_L (* REG_DWORD *) -> data = \"\\001\\000\\000\\000\"\n           | 11_L (* REG_QWORD *) -> data = \"\\001\\000\\000\\000\\000\\000\\000\\000\"\n           | _ (* who knows ... *) ->\n             warning (f_\"unknown CurrentControlSet\\\\Control\\\\\\\n                         TimeZoneInformation key RealTimeIsUniversal \\\n                         type 0x%Lx, assuming RTC set to UTC\") t;\n             true in\n         is_utc\n       with Not_found ->\n         (* If the key is not found then by default we assume\n          * that Windows is expecting the RTC to be set to localtime.\n          *)\n         false\n      ) in\n\n  (* Open the software hive (readonly) and find the Xen PV uninstaller,\n   * if it exists.\n   *)\n  let xenpv_uninst =\n    let xenpvreg = \"Red Hat Paravirtualized Xen Drivers for Windows(R)\" in\n\n    Registry.with_hive_readonly g inspect.i_windows_software_hive\n      (fun reg ->\n       try\n         let path = [\"Microsoft\"; \"Windows\"; \"CurrentVersion\"; \"Uninstall\";\n                     xenpvreg] in\n         let node =\n           match Registry.get_node reg path with\n           | None -> raise Not_found\n           | Some node -> node in\n         let uninstkey = \"UninstallString\" in\n         let valueh = g#hivex_node_get_value node uninstkey in\n         if valueh = 0L then (\n           warning (f_\"cannot uninstall Xen PV drivers: registry key ‘HKLM\\\\\\\n                       SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\\\\n                       Uninstall\\\\%s’ does not contain an ‘%s’ key\")\n             xenpvreg uninstkey;\n           raise Not_found\n         );\n         let data = g#hivex_value_value valueh in\n         let data = Registry.decode_utf16le data in\n\n         (* The uninstall program will be uninst.exe.  This is a wrapper\n          * around _uninst.exe which prompts the user.  As we don't want\n          * the user to be prompted, we run _uninst.exe explicitly.\n          *)\n         let len = String.length data in\n         let data =\n           if len >= 8 &&\n              String.lowercase_ascii (String.sub data (len-8) 8) = \"uninst.exe\"\n           then\n             (String.sub data 0 (len-8)) ^ \"_uninst.exe\"\n           else\n             data in\n\n         Some data\n       with\n         Not_found -> None\n      ) in\n\n  (* Locate and retrieve all the uninstallation commands for installed\n   * applications.\n   *)\n  let uninstallation_commands pretty_name matchfn modfn extra_uninstall_params =\n    let path = [\"Microsoft\"; \"Windows\"; \"CurrentVersion\"; \"Uninstall\"] in\n    let uninstval = \"UninstallString\" in\n    let ret = ref [] in\n\n    Registry.with_hive_readonly g inspect.i_windows_software_hive (\n      fun reg ->\n        match Registry.get_node reg path with\n        | None -> ()\n        | Some node ->\n           let uninstnodes = g#hivex_node_children node in\n           Array.iter (\n             fun { G.hivex_node_h = uninstnode } ->\n               let valueh = g#hivex_node_get_value uninstnode \"DisplayName\" in\n               if valueh <> 0L then (\n                 let dispname = g#hivex_value_string valueh in\n                 if matchfn dispname then (\n                   let valueh = g#hivex_node_get_value uninstnode uninstval in\n                   if valueh <> 0L then (\n                     let reg_cmd = g#hivex_value_string valueh in\n                     let reg_cmd = modfn reg_cmd in\n                     let cmd =\n                       sprintf \"%s /quiet /norestart /l*v+ \\\"%%~dpn0.log\\\" \\\n                                REBOOT=ReallySuppress REMOVE=ALL %s\"\n                         reg_cmd extra_uninstall_params in\n                     List.push_front cmd ret\n                   )\n                   else\n                     let name = g#hivex_node_name uninstnode in\n                     warning (f_\"cannot uninstall %s: registry key \\\n                                 ‘HKLM\\\\SOFTWARE\\\\%s\\\\%s’ with DisplayName \\\n                                 ‘%s’ doesn't contain value ‘%s’\")\n                       pretty_name (String.concat \"\\\\\" path) name\n                       dispname uninstval\n                 )\n               )\n             ) uninstnodes\n    ) (* with_hive_readonly *);\n    !ret\n  in\n\n  (* Locate and retrieve all uninstallation commands for Parallels Tools. *)\n  let prltools_uninsts =\n    let matchfn s =\n      String.find s \"Parallels Tools\" != -1 ||\n      String.find s \"Virtuozzo Tools\" != -1\n    in\n    (* Without these custom Parallels-specific MSI properties the\n     * uninstaller still shows a no-way-out reboot dialog.\n     *)\n    let extra_uninstall_params =\n      \"PREVENT_REBOOT=Yes LAUNCHED_BY_SETUP_EXE=Yes\" in\n    uninstallation_commands \"Parallels Tools\" matchfn Fun.id\n      extra_uninstall_params in\n\n  (* Locate and retrieve all uninstallation commands for VMware Tools. *)\n  let vmwaretools_uninst =\n    let matchfn s =\n      String.find s \"VMware Tools\" != -1\n    in\n    (* VMware Tools writes the install command (MsiExec /I) into the\n     * UninstallString key in the registry, rather than the uninstall\n     * command.  Try to spot this and rewrite.  (RHBZ#1917760).\n     *)\n    let re1 = PCRE.compile ~caseless:true \"msiexec\" in\n    let re2 = PCRE.compile ~caseless:true \"/i\" in\n    let msifn s = if PCRE.matches re1 s then PCRE.replace re2 \"/x\" s else s in\n    uninstallation_commands \"VMware Tools\" matchfn msifn \"\" in\n\n  (*----------------------------------------------------------------------*)\n  (* Perform the conversion of the Windows guest. *)\n\n  let rec do_convert () =\n    (* Firstboot configuration. *)\n    configure_firstboot ();\n\n    (* Open the system hive for writes and update it. *)\n    let { Inject_virtio_win.block_driver; net_driver} as virtio_win_installed =\n      Registry.with_hive_write g inspect.i_windows_system_hive\n                               update_system_hive in\n\n    (* Open the software hive for writes and update it. *)\n    Registry.with_hive_write g inspect.i_windows_software_hive\n                             update_software_hive;\n\n    configure_online_disks block_driver;\n\n    configure_network_interfaces net_driver;\n\n    fix_ntfs_heads ();\n\n    fix_win_esp ();\n\n    (* Warn if installation of virtio block drivers might conflict with\n     * group policy or AV software causing a boot 0x7B error (RHBZ#1260689).\n     *)\n    if block_driver = Virtio_blk then (\n      if inspect.i_windows_group_policy then\n        warning (f_\"this guest has Windows Group Policy Objects (GPO) and a \\\n                    new virtio block device driver was installed.  In some \\\n                    circumstances, Group Policy may prevent new drivers from \\\n                    working (resulting in a 7B boot error).  If this happens, \\\n                    try disabling Group Policy before doing the conversion.\");\n      if has_antivirus then\n        warning (f_\"this guest has Anti-Virus (AV) software and a new virtio \\\n                    block device driver was installed.  In some \\\n                    circumstances, AV may prevent new drivers from working \\\n                    (resulting in a 7B boot error).  If this happens, try \\\n                    disabling AV before doing the conversion.\");\n    );\n\n    (* Return guest capabilities from the convert () function. *)\n    let guestcaps = {\n      gcaps_block_bus = of_virtio_win_block_type block_driver;\n      gcaps_net_bus = of_virtio_win_net_type net_driver;\n      gcaps_virtio_rng = virtio_win_installed.Inject_virtio_win.virtio_rng;\n      gcaps_virtio_balloon =\n        virtio_win_installed.Inject_virtio_win.virtio_balloon;\n      gcaps_isa_pvpanic = virtio_win_installed.Inject_virtio_win.isa_pvpanic;\n      gcaps_virtio_socket =\n        virtio_win_installed.Inject_virtio_win.virtio_socket;\n      gcaps_machine = of_virtio_win_machine_type\n                        virtio_win_installed.Inject_virtio_win.machine;\n      gcaps_arch = Utils.kvm_arch inspect.i_arch;\n      gcaps_arch_min_version = 0;\n      gcaps_virtio_1_0 = virtio_win_installed.Inject_virtio_win.virtio_1_0;\n      gcaps_rtc_utc = rtc_utc;\n    } in\n\n    guestcaps\n\n  and of_virtio_win_block_type = function\n    | Inject_virtio_win.Virtio_blk -> Virtio_blk\n    | Virtio_SCSI -> Virtio_SCSI\n    | IDE -> IDE\n\n  and of_virtio_win_net_type = function\n    | Inject_virtio_win.Virtio_net -> Virtio_net\n    | E1000 -> E1000\n    | RTL8139 -> RTL8139\n\n  and of_virtio_win_machine_type = function\n    | Inject_virtio_win.I440FX -> I440FX\n    | Q35 -> Q35\n    | Virt -> Virt\n\n  and configure_firstboot () =\n    (* Run the firstboot script with pnputil.exe before the one with\n     * pnp_wait.exe as the latter suppresses PnP for all following scripts.\n     *)\n    configure_pnputil_install ();\n\n    let tool_path = virt_tools_data_dir () // \"pnp_wait.exe\" in\n    if Sys.file_exists tool_path then\n      configure_wait_pnp tool_path\n    else\n      debug (f_\"%s is missing.  Firstboot scripts may conflict with PnP.\")\n        tool_path;\n\n    (* Install VMDP unconditionally, if available, but don't\n     * warn about it if not.\n     *)\n    let tool_path = virt_tools_data_dir () // \"vmdp.exe\" in\n    if Sys.file_exists tool_path then\n      configure_vmdp tool_path;\n\n    (* Install QEMU Guest Agent unconditionally and warn if missing *)\n    if not (Inject_virtio_win.inject_qemu_ga virtio_win) then\n      warning (f_\"QEMU Guest Agent MSI not found on tools ISO/directory. You \\\n                  may want to install the guest agent manually after \\\n                  conversion.\");\n\n    (* Install Balloon Server unconditionally and warn if missing *)\n    if not (Inject_virtio_win.inject_blnsvr virtio_win) then\n      warning (f_\"Balloon Server (blnsvr.exe) not found on tools \\\n                  ISO/directory. You may want to install this component \\\n                  manually after conversion.\");\n\n    unconfigure_xenpv ();\n    unconfigure_prltools ();\n    unconfigure_vmwaretools ()\n\n  (* [set_reg_val_dword_1 path name] creates a registry key\n   * called [name = dword:1] in the registry [path].\n   * Intermediate nodes are created along the path if required.\n   *\n   * It returns the old value, if there was one, else [None].\n   *)\n  and set_reg_val_dword_1 ((g, root) as reg) path name =\n    let node = Registry.create_path reg path in\n    let valueh = g#hivex_node_get_value node name in\n    let value =\n      match valueh with\n      | 0L -> None\n      | _ -> Some (int_of_le32 (g#hivex_value_value valueh)) in\n    g#hivex_node_set_value node name 4_L (le32_of_int 1_L);\n    value\n\n  and reg_restore key name value =\n    let strkey = String.concat \"\\\\\" key in\n    match value with\n    | Some value -> sprintf \"reg add \\\"%s\\\" /v %s /t REG_DWORD /d %Ld /f\"\n                      strkey name value\n    | None -> sprintf \"reg delete \\\"%s\\\" /v %s /f\" strkey name\n\n  and configure_pnputil_install () =\n    let fb_script = {|@echo off\n\nsetlocal EnableDelayedExpansion\nset inf_dir=%systemroot%\\Drivers\\Virtio\\\necho Installing drivers from %inf_dir%\nset REBOOT_PENDING=0\n\nreg query \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\WindowsUpdate\\Auto Update\\RebootRequired\"\nif %errorlevel%==0 (\necho Windows Update: Reboot required.\nset REBOOT_PENDING=1\n)\n\nreg query \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Component Based Servicing\\RebootPending\"\nif %errorlevel%==0 (\necho CBS: Reboot required.\nset REBOOT_PENDING=1\n)\n\nreg query \"HKLM\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\" /v PendingFileRenameOperations\nif %errorlevel%==0 (\necho Session Manager: Reboot required.\nset REBOOT_PENDING=1\n)\n\nif \"%REBOOT_PENDING%\"==\"1\" (\necho A reboot is pending.\nexit /b 249\n) else (\necho No pending reboot detected.\n)\n\nfor %%f in (\"%inf_dir%*.inf\") do (\necho Installing: %%~nxf.\n%systemroot%\\Sysnative\\PnPutil -i -a \"%%f\"\nif !errorlevel! neq 0 if !errorlevel! neq 259 (\necho Failed to install %%~nxf.\nexit /b 249\n) else (\necho Successfully installed %%~nxf.\n)\n)\necho All drivers installed successfully.\nexit /b 0\n)|} in\n\n    (* Set priority higher than that of \"network-configure\" firstboot script. *)\n    Firstboot.add_firstboot_script g inspect.i_root ~prio:2000\n      \"pnputil install drivers\" fb_script;\n\n  and configure_wait_pnp tool_path =\n    (* Prevent destructive interactions of firstboot with PnP. *)\n\n    (* Suppress \"New Hardware Wizard\" until PnP settles (see\n     * https://support.microsoft.com/en-us/kb/938596) and restore it\n     * afterwards.\n     *)\n    let reg_restore_str =\n      match inspect.i_major_version, inspect.i_minor_version with\n      (* WinXP 32bit *)\n      | 5, 1 ->\n         let key_path = [\"Policies\"; \"Microsoft\"; \"Windows\"; \"DeviceInstall\";\n                         \"Settings\"] in\n         let name = \"SuppressNewHWUI\" in\n         let value =\n           Registry.with_hive_write g inspect.i_windows_software_hive (\n             fun reg -> set_reg_val_dword_1 reg key_path name\n         ) in\n         reg_restore (\"HKLM\\\\Software\" :: key_path) name value\n\n      (* WinXP 64bit / Win2k3 *)\n      | 5, 2 ->\n         let key_path = [\"Services\"; \"PlugPlay\"; \"Parameters\"] in\n         let name = \"SuppressUI\" in\n         let value =\n           Registry.with_hive_write g inspect.i_windows_system_hive (\n             fun reg ->\n               let path = inspect.i_windows_current_control_set :: key_path in\n               set_reg_val_dword_1 reg path name\n           ) in\n         reg_restore (\"HKLM\\\\SYSTEM\\\\CurrentControlSet\" :: key_path) name\n                     value\n\n      (* any later Windows *)\n      | _ -> \"\" in\n\n    let pnp_wait_path = \"/Program Files/Guestfs/Firstboot/pnp_wait.exe\" in\n\n    let fb_script = sprintf\n                      {|@echo off\n\necho Wait for PnP to complete\n\"%s\"\n%s|}\n                      (String.replace_char pnp_wait_path '/' '\\\\')\n                      reg_restore_str in\n\n    Firstboot.add_firstboot_script g inspect.i_root \"wait pnp\" fb_script;\n    (* add_firstboot_script has created the path already. *)\n    g#upload tool_path (g#case_sensitive_path pnp_wait_path)\n\n  and configure_vmdp tool_path =\n    (* Configure VMDP if possible *)\n    g#upload tool_path \"/vmdp.exe\";\n\n    let fb_script = {|echo V2V first boot script started\necho Decompressing VMDP installer\n\"\\vmdp.exe\"\npushd \"VMDP-*\"\necho Installing VMDP\nsetup.exe /eula_accepted /no_reboot\npopd\n|} in\n\n    let fb_recover_script = {|echo Finishing VMDP installation\nif not exist VMDP-* (\n\"\\vmdp.exe\"\n)\npushd \"VMDP-*\"\nsetup.exe /eula_accepted /no_reboot\npopd\n|} in\n\n    Firstboot.add_firstboot_script g inspect.i_root\n      \"configure vmdp\" fb_script;\n\n    Firstboot.add_firstboot_script g inspect.i_root\n      \"finish vmdp setup\" fb_recover_script\n\n  and unconfigure_xenpv () =\n    match xenpv_uninst with\n    | None -> () (* nothing to be uninstalled *)\n    | Some uninst ->\n      let fb_script = sprintf\n                        {|@echo off\n\necho uninstalling Xen PV driver\n\"%s\"\n|}\n                        uninst in\n      Firstboot.add_firstboot_script g inspect.i_root\n        \"uninstall Xen PV\" fb_script\n\n  and unconfigure_prltools () =\n    let regkey =\n      \"HKLM\\\\System\\\\CurrentControlSet\\\\Services\\\\prl_strg\\\\DriverInfo\" in\n    List.iter (\n      fun uninst ->\n        let fb_script = sprintf\n                          {|@echo off\n\nREG DELETE %s /v RefCount /f\n\necho uninstalling Parallels guest tools\nrem ERROR_SUCCESS_REBOOT_REQUIRED (3010) is OK too\n%s\nif errorlevel 3010 exit /b 0\n|}\n                          regkey uninst in\n\n        Firstboot.add_firstboot_script g inspect.i_root\n          \"uninstall Parallels tools\" fb_script\n    ) prltools_uninsts\n\n  and unconfigure_vmwaretools () =\n    List.iter (\n      fun uninst ->\n        let fb_script = sprintf\n                          {|@echo off\n\necho uninstalling VMware Tools\nrem ERROR_SUCCESS_REBOOT_REQUIRED (3010) is OK too\n%s\nif errorlevel 3010 exit /b 0\n|}\n                          uninst in\n\n        Firstboot.add_firstboot_script g inspect.i_root\n          \"uninstall VMware Tools\" fb_script\n    ) vmwaretools_uninst\n\n  and update_system_hive reg =\n    (* Update the SYSTEM hive.  When this function is called the hive has\n     * already been opened as a hivex handle inside guestfs.\n     *)\n    disable_xenpv_win_drivers reg;\n    disable_prl_drivers reg;\n    disable_autoreboot reg;\n    Inject_virtio_win.inject_virtio_win_drivers virtio_win reg\n\n  and disable_xenpv_win_drivers reg =\n    (* Disable xenpv-win service (RHBZ#809273). *)\n    let services =\n      Registry.get_node reg\n                        [inspect.i_windows_current_control_set; \"Services\"] in\n\n    match services with\n    | None -> ()\n    | Some services ->\n       let node = g#hivex_node_get_child services \"rhelscsi\" in\n       if node <> 0L then\n         g#hivex_node_set_value node \"Start\" 4_L (le32_of_int 4_L)\n\n  and disable_prl_drivers reg =\n    (* Prevent Parallels drivers from loading at boot. *)\n    let services =\n      Registry.get_node reg\n                        [inspect.i_windows_current_control_set; \"Services\"] in\n    let prl_svcs = [ \"prl_boot\"; \"prl_dd\"; \"prl_eth5\"; \"prl_fs\"; \"prl_memdev\";\n                     \"prl_mouf\"; \"prl_pv32\"; \"prl_pv64\"; \"prl_scsi\";\n                     \"prl_sound\"; \"prl_strg\"; \"prl_tg\"; \"prl_time\";\n                     \"prl_uprof\"; \"prl_va\" ] in\n\n    match services with\n    | None -> ()\n    | Some services ->\n        List.iter (\n          fun svc ->\n            let svc_node = g#hivex_node_get_child services svc in\n            if svc_node <> 0L then (\n              (* Disable the service rather than delete the node as it would\n               * confuse the uninstaller called from firstboot script. *)\n              g#hivex_node_set_value svc_node \"Start\" 4_L (le32_of_int 4_L)\n            )\n        ) prl_svcs;\n\n    (* perform the equivalent of DelReg from prl_strg.inf:\n     * HKLM, System\\CurrentControlSet\\Control\\Class\\{4d36e967-e325-11ce-bfc1-08002be10318}, LowerFilters, 0x00018002, prl_strg\n     *)\n    let strg_cls = Registry.get_node reg\n                        [inspect.i_windows_current_control_set;\n                         \"Control\"; \"Class\";\n                         \"{4d36e967-e325-11ce-bfc1-08002be10318}\"] in\n    match strg_cls with\n    | None -> ()\n    | Some strg_cls ->\n        let lfkey = \"LowerFilters\" in\n        let valueh = g#hivex_node_get_value strg_cls lfkey in\n        if valueh <> 0L then (\n          let data = g#hivex_value_value valueh in\n          let filters = String.nsplit \"\\000\" (Registry.decode_utf16le data) in\n          let filters = List.filter (\n            fun x -> x <> \"prl_strg\" && x <> \"\"\n          ) filters in\n          let filters = List.map (\n            fun x -> Registry.encode_utf16le x ^ \"\\000\\000\"\n          ) (filters @ [\"\"]) in\n          let data = String.concat \"\" filters in\n          g#hivex_node_set_value strg_cls lfkey 7_L data\n        )\n\n  and disable_autoreboot reg =\n    (* If the guest reboots after a crash, it's hard to see the original\n     * error (eg. the infamous 0x0000007B).  Turn off autoreboot.\n     *)\n    let crash_control =\n      Registry.get_node reg [inspect.i_windows_current_control_set;\n                             \"Control\"; \"CrashControl\"] in\n    match crash_control with\n    | None -> ()\n    | Some crash_control ->\n       g#hivex_node_set_value crash_control \"AutoReboot\" 4_L (le32_of_int 0_L)\n\n  and update_software_hive reg =\n    (* Update the SOFTWARE hive.  When this function is called the\n     * hive has already been opened as a hivex handle inside\n     * guestfs.\n     *)\n\n    (* Find the node \\Microsoft\\Windows\\CurrentVersion.  If the node\n     * has a key called DevicePath then append the virtio driver\n     * path to this key.\n     *\n     * Note that simply adding the directory to DevicePath doesn't\n     * seem to be a 100% reliable way of enabling the drivers.  In\n     * particular it does not work for my self-built Windows Server Core\n     * 2012 + R2 releases (although that might be an artifact of\n     * the way I build them).  In any case I had to add a firstboot\n     * batch file which did this single command:\n     *\n     * %systemroot%\\Sysnative\\PnPutil -i -a %systemroot%\\Drivers\\Virtio\\*.inf\n     *)\n    let node =\n      Registry.get_node reg [\"Microsoft\"; \"Windows\"; \"CurrentVersion\"] in\n    (match node with\n     | Some node ->\n        let append = Registry.encode_utf16le \";%SystemRoot%\\\\Drivers\\\\VirtIO\" in\n        let values = Array.to_list (g#hivex_node_values node) in\n        let rec loop = function\n          | [] -> () (* DevicePath not found -- ignore this case *)\n          | { G.hivex_value_h = valueh } :: values ->\n             let key = g#hivex_value_key valueh in\n             if key <> \"DevicePath\" then\n               loop values\n             else (\n               let data = g#hivex_value_value valueh in\n               let len = String.length data in\n               let t = g#hivex_value_type valueh in\n\n               (* Only add the appended path if it doesn't exist already. *)\n               if String.find data append = -1 then (\n                 (* Remove the explicit [\\0\\0] at the end of the string.\n                  * This is the UTF-16LE NUL-terminator.\n                  *)\n                 let data =\n                   if len >= 2 && String.sub data (len-2) 2 = \"\\000\\000\" then\n                     String.sub data 0 (len-2)\n                   else\n                     data in\n\n                 (* Append the path and the explicit NUL. *)\n                 let data = data ^ append ^ \"\\000\\000\" in\n\n                 g#hivex_node_set_value node key t data\n               )\n             )\n        in\n        loop values\n     | None ->\n        warning (f_\"could not find registry key \\\n                    HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\")\n    );\n\n    (* If you have trouble installing drivers, try increasing the\n     * verboseness by uncommenting this section.\n     * https://learn.microsoft.com/en-us/windows-hardware/drivers/install/setting-setupapi-logging-levels\n     * The additional logs are written to C:\\Windows\\INF\\setupapi.*.log\n     *)\n(*\n    let node =\n      Registry.get_node reg [\"Microsoft\"; \"Windows\"; \"CurrentVersion\";\n                             \"Setup\"] in\n    (match node with\n     | Some node ->\n        g#hivex_node_set_value node \"LogLevel\" 4_L (le32_of_int 0xff_L)\n     | None ->\n        warning (f_\"could not find registry key \\\n                    HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Setup\")\n    );\n*)\n\n  and configure_online_disks block_driver =\n    (* If there are > 1 disks, run a script which will force Windows\n     * to bring them all online.  Windows 2022 will offline non-boot disks\n     * where the bus changes as some sort of \"security\" mitigation.\n     * https://issues.redhat.com/browse/RHEL-55837\n     * https://issues.redhat.com/browse/MTV-1299\n     * https://bugzilla.redhat.com/show_bug.cgi?id=1662286\n     *)\n    let virtio_installed =\n      match block_driver with\n      | Inject_virtio_win.Virtio_blk | Virtio_SCSI -> true\n      | IDE -> false in\n    let more_than_one_disk = List.length source.s_disks > 1 in\n\n    if virtio_installed && more_than_one_disk then (\n      let psh_filename = \"online-disks\" in\n      let psh = ref [] in\n      let add = List.push_back psh in\n\n      add \"# Uncomment this line for lots of debug output.\";\n      add \"# Set-PSDebug -Trace 1\";\n      add \"\";\n      add \"Write-Host \\\"Online all virtio disks\\\"\";\n      add \"\";\n      add \"Get-Disk | Where { $_.FriendlyName -like '*VirtIO*' } | % {\";\n      add \"    Write-Host ('  - ' + $_.Number + ': ' + $_.FriendlyName + '(' + [math]::Round($_.Size/1GB,2) + 'GB)')\";\n      add \"    $_ | Set-Disk -IsOffline $false\";\n      add \"    $_ | Set-Disk -IsReadOnly $false\";\n      add \"}\";\n\n      (* Install the Powershell script to run late at firstboot. *)\n      Firstboot.add_firstboot_powershell g inspect.i_root psh_filename !psh\n    )\n\n  and configure_network_interfaces net_driver =\n    (* If we were asked to force network interfaces to have particular\n     * static IP addresses then it is done here by installing a\n     * Powershell script which runs at boot.\n     *)\n    if static_ips <> [] then (\n      let psh_filename = \"network-configure\" in\n      let psh = ref [] in\n      let add = List.push_back psh in\n\n      add \"# Uncomment this line for lots of debug output.\";\n      add \"# Set-PSDebug -Trace 1\";\n      add \"\";\n\n      (* If virtio-net was added to the registry, we must wait for\n       * it to be installed at runtime.\n       *)\n      if net_driver = Virtio_net then (\n        add \"# Wait for the netkvm (virtio-net) driver to become active.\";\n        add \"$startdate = Get-Date\";\n        add \"$adapters = @()\";\n        add \"While (-Not $adapters -and \\\n                    $startdate.AddMinutes(5) -gt (Get-Date)) {\";\n        add \"    Start-Sleep -Seconds 5\";\n        add \"    $adapters = Get-NetAdapter -Physical \\\n                             | Where DriverFileName -eq \\\"netkvm.sys\\\"\";\n        add \"    Write-Host \\\"adapters = '$adapters'\\\"\";\n        add \"}\";\n        add \"# In the timeout case $ifindex will not be set below.\";\n        add \"\"\n      );\n\n      List.iter (\n        fun { if_mac_addr; if_ip_address; if_default_gateway;\n              if_prefix_length; if_nameservers } ->\n          add (sprintf \"$mac_address = '%s'\"\n                       (String.replace if_mac_addr \":\" \"-\"));\n          add \"$ifindex = (Get-NetAdapter -Physical \\\n                           | Where MacAddress -eq $mac_address).ifIndex\";\n          add \"if ($ifindex) {\";\n\n          add \"    Write-Host \\\"setting IP address of adapter at $ifindex\\\"\";\n\n          (* New-NetIPAddress command *)\n          let args = ref [] in\n          List.push_back args \"-InterfaceIndex\";\n          List.push_back args \"$ifindex\";\n          List.push_back args \"-IPAddress\";\n          List.push_back args (sprintf \"'%s'\" if_ip_address);\n          (match if_default_gateway with\n           | None -> ()\n           | Some gw ->\n              List.push_back args \"-DefaultGateway\";\n              List.push_back args (sprintf \"'%s'\" gw)\n          );\n          (match if_prefix_length with\n           | None -> ()\n           | Some len ->\n              List.push_back args \"-PrefixLength\";\n              List.push_back args (string_of_int len)\n          );\n          let cmd1 = \"New-NetIPAddress \" ^ String.concat \" \" !args in\n          add (\"    \" ^ cmd1);\n\n          (* Set-DnsClientServerAddress command *)\n          if if_nameservers <> [] then (\n            add (sprintf \"    Set-DnsClientServerAddress \\\n                                -InterfaceIndex $ifindex \\\n                                -ServerAddresses (%s)\"\n                         (String.concat \",\"\n                            (List.map (sprintf \"'%s'\") if_nameservers)))\n          );\n          add \"}\";\n          add \"\"\n      ) static_ips;\n\n      (* Install the Powershell script to run at firstboot.\n       *\n       * Place it first among the firstboot scripts (RHBZ#1788823).\n       *)\n      Firstboot.add_firstboot_powershell g inspect.i_root ~prio:2500\n        psh_filename !psh\n    ) (* static_ips <> [] *)\n\n  and fix_ntfs_heads () =\n    (* NTFS hardcodes the number of heads on the drive which created\n       it in the filesystem header. Modern versions of Windows\n       sensibly ignore it, but both Windows XP and Windows 2000\n       require it to be correct in order to boot from the drive. If it\n       isn't you get:\n\n       'A disk read error occurred. Press Ctrl+Alt+Del to restart'\n\n       QEMU has some code in block.c:guess_disk_lchs() which on the face\n       of it appears to infer the drive geometry from the MBR if it's\n       valid. However, my tests have shown that a Windows XP guest\n       hosted on both RHEL 5 and F14 requires the heads field in NTFS to\n       be the following, based solely on drive size:\n\n       Range                             Heads\n       size < 2114445312                 0x40\n       2114445312 <= size < 4228374780   0x80\n       4228374780 <= size                0xFF\n\n       I have not tested drive sizes less than 1G, which require fewer\n       heads, as this limitation applies only to the boot device and it\n       is not possible to install XP on a drive this size.\n\n       The following page has good information on the layout of NTFS in\n       Windows XP/2000:\n\n       http://mirror.href.com/thestarman/asm/mbr/NTFSBR.htm\n\n       Technet has this:\n\n       http://technet.microsoft.com/en-us/library/cc781134(WS.10).aspx#w2k3tr_ntfs_how_dhao\n\n       however, as this is specific to Windows 2003 it lists location\n       0x1A as unused.\n    *)\n    if inspect.i_major_version < 6 (* is Windows 2000/XP *) then (\n      let rootpart = inspect.i_root in\n\n      (* Ignore if the rootpart is something like /dev/sda.  RHBZ#1276540. *)\n      if not (g#is_whole_device rootpart) then (\n        (* Check that the root device contains NTFS magic. *)\n        let magic = g#pread_device rootpart 8 3L in\n        if magic = \"NTFS    \" then (\n          (* Get the size of the whole disk containing the root partition. *)\n          let rootdev = g#part_to_dev rootpart in (* eg. /dev/sda *)\n          let size = g#blockdev_getsize64 rootdev in\n\n          let heads =             (* refer to the table above *)\n            if size < 2114445312L then 0x40\n            else if size < 4228374780L then 0x80\n            else 0xff in\n\n          (* Update NTFS's idea of the number of heads.  This is an\n           * unsigned 16 bit little-endian integer, offset 0x1a from the\n           * beginning of the partition.\n           *)\n          let b = Bytes.create 2 in\n          Bytes.unsafe_set b 0 (Char.chr heads);\n          Bytes.unsafe_set b 1 '\\000';\n          ignore (g#pwrite_device rootpart (Bytes.to_string b) 0x1a_L)\n        )\n      )\n    )\n\n  and fix_win_esp () =\n    let fix_win_uefi_bcd esp_path =\n      try\n        let bcd_path = \"/EFI/Microsoft/Boot/BCD\" in\n        Registry.with_hive_write g (esp_path ^ bcd_path) (\n          (* Remove the 'graphicsmodedisabled' key in BCD *)\n          fun reg ->\n          let path = [\"Objects\"; \"{9dea862c-5cdd-4e70-acc1-f32b344d4795}\";\n                      \"Elements\"; \"23000003\"] in\n          let boot_mgr_default_link =\n            match Registry.get_node reg path with\n            | None -> raise Not_found\n            | Some node -> node in\n          let current_boot_entry = g#hivex_value_string (\n            g#hivex_node_get_value boot_mgr_default_link \"Element\") in\n          let path = [\"Objects\"; current_boot_entry; \"Elements\"; \"16000046\"] in\n          match Registry.get_node reg path with\n          | None -> raise Not_found\n          | Some graphics_mode_disabled ->\n            g#hivex_node_delete_child graphics_mode_disabled\n        );\n      with\n        Not_found -> ()\n\n    and fix_win_uefi_fallback esp_path uefi_arch =\n      (* [esp_path] is on NTFS, and therefore it is considered case-sensitive;\n       * refer to\n       * <https://libguestfs.org/guestfs.3.html#guestfs_case_sensitive_path>.\n       * However, the EFI system partition mounted under [esp_path] is FAT32 per\n       * UEFI spec, and the Linux vfat driver in the libguestfs appliance treats\n       * pathnames case-insensitively. Therefore, we're free to use any case in\n       * the ESP-relative pathnames below.\n       *)\n      let bootmgfw = sprintf \"%s/efi/microsoft/boot/bootmgfw.efi\" esp_path in\n      if g#is_file bootmgfw then\n        let bootdir = sprintf \"%s/efi/boot\" esp_path in\n        let fallback = sprintf \"%s/boot%s.efi\" bootdir uefi_arch in\n        if not (g#is_file fallback) || not (g#equal fallback bootmgfw) then (\n          info (f_\"Fixing UEFI bootloader.\");\n          g#rm_rf bootdir;\n          g#mkdir_p bootdir;\n          g#cp_a bootmgfw fallback\n        )\n    in\n\n    match i_firmware with\n    | Firmware.I_BIOS -> ()\n    | I_UEFI esp_list ->\n       let esp_temp_path =\n         let temp = inspect.i_windows_systemroot ^ \"/Temp\" in\n         let mp = g#case_sensitive_path temp in\n         let template = mp ^ \"/ESP_XXXXXX\" in\n         g#mkdtemp template in\n       let uefi_arch = get_uefi_arch_suffix inspect.i_arch in\n\n       List.iter (\n         fun dev_path ->\n           g#mount dev_path esp_temp_path;\n           fix_win_uefi_bcd esp_temp_path;\n           (match uefi_arch with\n            | Some uefi_arch -> fix_win_uefi_fallback esp_temp_path uefi_arch\n            | None -> ()\n           );\n           g#umount esp_temp_path;\n       ) esp_list;\n\n       g#rmdir esp_temp_path\n  in\n\n  do_convert ()\n\n(* Post-conversion steps that run with filesystems unmounted *)\nlet post_convert (g : G.guestfs) inspect =\n  (* Lock down firstboot dir permissions for windows guests *)\n  message (f_\"Fixing NTFS permissions\");\n  (* XXX It would be more correct to use g#case_sensitive_path\n   * here, but we cannot do that since the guest filesystem is\n   * not mounted.  As fixing permissions is best-effort, let's\n   * not worry about it.\n   *)\n  let path = \"/Program Files/Guestfs\" in\n  debug \"info: fixing NTFS permissions on %s\" path;\n  try g#ntfs_chmod inspect.i_root 0o755 path ~recursive:true\n  with G.Error msg ->\n    warning (f_\"ntfs_chmod on %s failed: %s\") path msg\n\nmodule Convert_windows = struct\n  let name = \"windows\"\n  let convert = convert\n  let post_convert = post_convert\nend\n"
  },
  {
    "path": "convert/convert_windows.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Convert a Windows guest to run on KVM.\n\n    This module converts a Windows guest to run on KVM. *)\n\nmodule Convert_windows : Convert_types.CONVERT\n"
  },
  {
    "path": "convert/dummy.c",
    "content": "/* Dummy source, to be used for OCaml-based tools with no C sources. */\nenum { foo = 1 };\n"
  },
  {
    "path": "convert/mount_filesystems.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nmodule G = Guestfs\n\nopen Types\n\nlet rec mount_filesystems g root =\n  reject_if_not_installed_image g root;\n  reject_if_unknown_fields g root;\n\n  (* Get the list of filesystems.  This is not actually used by\n   * virt-v2v (only used by virt-v2v-inspector) so try hard not\n   * to fail here.\n   *)\n  let fses = g#inspect_get_filesystems root in\n  let fses = Array.to_list fses in\n  let fses = List.sort compare fses in\n  let fses =\n    List.map (\n      fun dev ->\n        let dev = g#canonical_device_name dev\n        and fs_type = ref None\n        and fs_version = ref None\n        and fs_label = ref None\n        and fs_uuid = ref None in\n\n        (try\n           let v = g#vfs_type dev in\n           if v <> \"\" then (\n             fs_type := Some v;\n             fs_version := get_filesystem_version g dev v;\n           )\n         with G.Error msg -> debug \"vfs_type: %s: %s (ignored)\" dev msg);\n        (try\n           let v = g#vfs_label dev in\n           if v <> \"\" then fs_label := Some v\n         with G.Error msg -> debug \"vfs_label: %s: %s (ignored)\" dev msg);\n        (try\n           let v = g#vfs_uuid dev in\n           if v <> \"\" then fs_uuid := Some v\n         with G.Error msg -> debug \"vfs_uuid: %s: %s (ignored)\" dev msg);\n\n        { fs_dev = dev; fs_type = !fs_type; fs_version = !fs_version;\n          fs_label = !fs_label; fs_uuid = !fs_uuid }\n    ) fses in\n\n  (* Mount up the filesystems. *)\n  let mps = g#inspect_get_mountpoints root in\n  let cmp (a,_) (b,_) = compare (String.length a) (String.length b) in\n  let mps = List.sort cmp mps in\n  List.iter (\n    fun (mp, dev) ->\n      (try g#mount dev mp\n       with G.Error msg ->\n         if mp = \"/\" then ( (* RHBZ#1145995 *)\n           if String.find msg \"Windows\" >= 0 &&\n                String.find msg \"NTFS partition is in an unsafe state\" >= 0 then\n             error (f_\"unable to mount the disk image for writing. This has \\\n                       probably happened because Windows Hibernation or \\\n                       Fast Restart is being used in this guest. You have \\\n                       to disable this (in the guest) in order to use \\\n                       virt-v2v.\\n\\nOriginal error message: %s\") msg\n           else\n             error \"%s\" msg\n         )\n         else\n           warning (f_\"%s (ignored)\") msg\n      );\n\n      (* Some filesystems (hello, ntfs-3g) can silently fall back to\n       * a read-only mount.  Check the root filesystem is really writable.\n       * RHBZ#1567763\n       *)\n      if mp = \"/\" then (\n        let file = sprintf \"/%s\" (String.random8 ()) in\n        (try g#touch file\n         with G.Error msg ->\n           if g#last_errno () = G.Errno.errno_EROFS then\n             error (f_\"filesystem was mounted read-only, even though we \\\n                       asked for it to be mounted read-write.  This usually \\\n                       means that the filesystem was not cleanly unmounted.  \\\n                       Possible causes include trying to convert a guest \\\n                       which is running, or using Windows Hibernation or \\\n                       Fast Restart.\\n\\nOriginal error message: %s\") msg\n           else\n             error (f_\"could not write to the guest filesystem: %s\") msg\n        );\n        g#rm file\n      )\n  ) mps;\n\n  (* Get list of applications/packages installed. *)\n  let package_format = g#inspect_get_package_format root in\n  let apps = list_applications g root package_format in\n  let apps = Array.to_list apps in\n\n  (* A map of app2_name -> application2, for easier lookups.  Note\n   * that app names are not unique!  (eg. 'kernel' can appear multiple\n   * times)\n   *)\n  let apps_map = List.fold_left (\n    fun map app ->\n      let name = app.G.app2_name in\n      let vs = try StringMap.find name map with Not_found -> [] in\n      StringMap.add name (app :: vs) map\n  ) StringMap.empty apps in\n\n  let drive_mappings = g#inspect_get_drive_mappings root in\n\n  (* If the guest is Windows, get some Windows-specific inspection\n   * data, else (for simplicity when accessing) use empty strings.\n   *)\n  let typ = g#inspect_get_type root in\n  let systemroot, software_hive, system_hive, current_cs, group_policy =\n    match typ with\n    | \"windows\" ->\n       g#inspect_get_windows_systemroot root,\n       g#inspect_get_windows_software_hive root,\n       g#inspect_get_windows_system_hive root,\n       g#inspect_get_windows_current_control_set root,\n       g#inspect_get_windows_group_policy root\n    | _ ->\n       \"\", \"\", \"\", \"\", false in\n\n  let inspect = {\n    i_root = root;\n    i_type = typ;\n    i_distro = g#inspect_get_distro root;\n    i_osinfo = g#inspect_get_osinfo root;\n    i_arch = g#inspect_get_arch root;\n    i_major_version = g#inspect_get_major_version root;\n    i_minor_version = g#inspect_get_minor_version root;\n    i_package_format = package_format;\n    i_package_management = g#inspect_get_package_management root;\n    i_product_name = g#inspect_get_product_name root;\n    i_product_variant = g#inspect_get_product_variant root;\n    i_mountpoints = mps;\n    i_filesystems = fses;\n    i_apps = apps;\n    i_apps_map = apps_map;\n    i_windows_systemroot = systemroot;\n    i_windows_software_hive = software_hive;\n    i_windows_system_hive = system_hive;\n    i_windows_current_control_set = current_cs;\n    i_windows_group_policy = group_policy;\n    i_drive_mappings = drive_mappings;\n  } in\n  debug \"%s\" (string_of_inspect inspect);\n\n  inspect\n\n(* Reject this OS if it doesn't look like an installed image. *)\nand reject_if_not_installed_image g root =\n  let fmt = g#inspect_get_format root in\n  if fmt <> \"installed\" then\n    error (f_\"libguestfs thinks this is not an installed operating \\\n              system (it might be, for example, an installer disk \\\n              or live CD).  If this is wrong, it is probably a bug \\\n              in libguestfs.  root=%s fmt=%s\") root fmt\n\n(* If some inspection fields are \"unknown\", then that indicates a\n * failure in inspection, and we shouldn't continue.  For an example\n * of this, see RHBZ#1278371.  However don't \"assert\" here, since\n * the user might have pointed virt-v2v at a blank disk.  Give an\n * error message instead.\n *)\nand reject_if_unknown_fields g root =\n  error_if_unknown \"i_type\" (g#inspect_get_type root);\n  error_if_unknown \"i_distro\" (g#inspect_get_distro root);\n  error_if_unknown \"i_arch\" (g#inspect_get_arch root)\n\nand error_if_unknown fieldname value =\n  if value = \"unknown\" then\n    error (f_\"inspection could not detect the source guest (or \\\n              physical machine) operating system.\\n\\n\\\n              Assuming that you are running virt-v2v/virt-p2v \\\n              on a source which is supported (and not, for example, \\\n              a blank disk), then this should not happen.\\n\\n\\\n              Inspection field ‘%s’ was ‘unknown’.\")\n          fieldname\n\n(* See equivalent function in guestfs-tools.git:inspector/inspector.c *)\nand get_filesystem_version g dev = function\n  | \"xfs\" ->\n     let hash = g#xfs_info2 dev in\n     (match List.assoc_opt \"meta-data.crc\" hash with\n      | None -> None\n      | Some \"0\" -> (* XFS version *) Some \"4\"\n      | Some \"1\" -> (* XFS version *) Some \"5\"\n      | Some _ -> None\n     )\n  | _ -> None\n\n(* Wrapper around g#inspect_list_applications2 which, for RPM\n * guests, on failure tries to rebuild the RPM database before\n * repeating the operation.\n *)\nand list_applications g root = function\n  | \"rpm\" ->\n     (* RPM guest.\n      *\n      * In libguestfs before commit 488245ed6c (\"daemon: rpm: Check\n      * return values from librpm calls\"), a corrupt RPM database\n      * would return an empty array here with no exception.  Hence\n      * the check below which turns empty array => exception.  In\n      * libguestfs after that commit, inspect_list_applications2\n      * will raise an exception if it detects a corrupt RPM database.\n      *)\n     (try\n        let apps = g#inspect_list_applications2 root in\n        if apps = [||] then raise (G.Error \"no applications returned\");\n        apps\n      with G.Error msg ->\n        debug \"%s\" msg;\n        debug \"rebuilding RPM database and retrying ...\";\n        ignore (g#sh \"rpmdb --rebuilddb\");\n        g#inspect_list_applications2 root\n     )\n  | _ ->\n     (* Non-RPM guest, just do it. *)\n     g#inspect_list_applications2 root\n"
  },
  {
    "path": "convert/mount_filesystems.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Mount up the filesystems. *)\n\nval mount_filesystems : Guestfs.guestfs -> string -> Types.inspect\n(** Mount up the filesystems and return inspection data for the root\n    disk, plus some other checks.\n\n    {!Choose_root.choose_root} should have been called already\n    (which actually does libguestfs inspection).\n\n    After calling this, the filesystems are mounted up. *)\n"
  },
  {
    "path": "convert/target_bus_assignment.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\n\nlet rec target_bus_assignment source_disks source_removables guestcaps =\n  let virtio_blk_bus = ref [| |]\n  and ide_bus = ref [| |]\n  and scsi_bus = ref [| |]\n  and floppy_bus = ref [| |] in\n\n  (* Assign the fixed disks (source_disks) to either the virtio-blk or\n   * IDE bus, depending on whether the guest has virtio drivers or not.\n   *)\n  let () =\n    let bus =\n      match guestcaps.gcaps_block_bus with\n      | Virtio_blk -> virtio_blk_bus\n      | Virtio_SCSI -> scsi_bus\n      | IDE -> ide_bus in\n    List.iteri (\n      fun i d ->\n        let d = BusSlotDisk d in\n        insert bus i d\n    ) source_disks in\n\n  (* Now we have to assign the removable disks.  These go in the\n   * same slot they originally occupied, except in two cases: (1) That\n   * slot is now occupied by a target disk, or (2) we don't\n   * have information about the original slot.  In these cases\n   * insert the disk in the next empty slot in that bus.\n   *)\n\n  (* Split the removables into a list of devices that desire a\n   * particular slot, and those that don't care.  Assign the first\n   * group first so they have a greater chance of getting the\n   * desired slot.\n   *)\n  let removables_desire, removables_no_desire =\n    List.partition (\n      function\n      | { s_removable_slot = Some _ } -> true\n      | { s_removable_slot = None } -> false\n    ) source_removables in\n\n  let assign_removables removables =\n    List.iter (\n      fun r ->\n        let t = BusSlotRemovable r in\n        let bus =\n          match r.s_removable_type with\n          | Floppy -> floppy_bus\n          | CDROM ->\n             match r.s_removable_controller with\n             | None -> ide_bus (* Wild guess, but should be safe. *)\n             | Some Source_virtio_blk -> virtio_blk_bus\n             | Some Source_IDE -> ide_bus\n             | Some (Source_virtio_SCSI | Source_SCSI | Source_SATA |\n                     Source_NVME) -> scsi_bus in\n\n        match r.s_removable_slot with\n        | None ->\n           ignore (insert_after bus 0 t)\n        | Some desired_slot_nr ->\n           if not (insert_after bus desired_slot_nr t) then\n             warning (f_\"removable %s device in slot %d clashes with another \\\n                         disk, so it has been moved to a higher numbered slot \\\n                         on the same bus.  This may mean that this removable \\\n                         device has a different name inside the guest (for \\\n                         example a CD-ROM originally called /dev/hdc might \\\n                         move to /dev/hdd, or from D: to E: on a Windows \\\n                         guest).\")\n                     (match r.s_removable_type with\n                      | CDROM -> s_\"CD-ROM\"\n                      | Floppy -> s_\"floppy disk\")\n                     desired_slot_nr\n    ) removables\n  in\n  assign_removables removables_desire;\n  assign_removables removables_no_desire;\n\n  { target_virtio_blk_bus = !virtio_blk_bus;\n    target_ide_bus = !ide_bus;\n    target_scsi_bus = !scsi_bus;\n    target_floppy_bus = !floppy_bus }\n\n(* Insert a slot into the bus array, making the array bigger if necessary. *)\nand insert bus i slot =\n  let oldbus = !bus in\n  let oldlen = Array.length oldbus in\n  if i >= oldlen then (\n    bus := Array.make (i+1) BusSlotEmpty;\n    Array.blit oldbus 0 !bus 0 oldlen\n  );\n  assert (!bus.(i) = BusSlotEmpty);\n  !bus.(i) <- slot\n\n(* Insert a slot into the bus, but if the desired slot is not empty, then\n * increment the slot number until we find an empty one.  Returns\n * true if we got the desired slot.\n *)\nand insert_after bus i slot =\n  if slot_is_empty bus i then (\n    insert bus i slot; true\n  ) else (\n    ignore (insert_after bus (i+1) slot); false\n  )\n\n(* Return true if slot i is empty in the bus. *)\nand slot_is_empty bus i = i >= Array.length !bus || !bus.(i) = BusSlotEmpty\n"
  },
  {
    "path": "convert/target_bus_assignment.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Assign fixed and removable disks to target buses.\n\n    Do this as best we can.  This is not solvable for all guests,\n    but at least avoid overlapping disks (RHBZ#1238053). *)\n\nval target_bus_assignment : Types.source_disk list -> Types.source_removable list -> Types.guestcaps -> Types.target_buses\n"
  },
  {
    "path": "docs/Makefile.am",
    "content": "# libguestfs virt-v2v tool\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nEXTRA_DIST = \\\n\ttest-docs.sh \\\n\tvirt-v2v.pod \\\n\tvirt-v2v-hacking.pod \\\n\tvirt-v2v-input-vmware.pod \\\n\tvirt-v2v-input-xen.pod \\\n\tvirt-v2v-output-local.pod \\\n\tvirt-v2v-output-openstack.pod \\\n\tvirt-v2v-output-ovirt.pod \\\n\tvirt-v2v-release-notes-1.42.pod \\\n\tvirt-v2v-release-notes-2.0.pod \\\n\tvirt-v2v-release-notes-2.2.pod \\\n\tvirt-v2v-release-notes-2.4.pod \\\n\tvirt-v2v-release-notes-2.6.pod \\\n\tvirt-v2v-release-notes-2.8.pod \\\n\tvirt-v2v-release-notes-2.10.pod \\\n\tvirt-v2v-support.pod \\\n\tvm-generation-id-across-hypervisors.txt \\\n\t$(NULL)\n\n# Manual pages and HTML files for the website.\n\nman_MANS = \\\n\tvirt-v2v.1 \\\n\tvirt-v2v-hacking.1 \\\n\tvirt-v2v-input-vmware.1 \\\n\tvirt-v2v-output-local.1 \\\n\tvirt-v2v-output-openstack.1 \\\n\tvirt-v2v-release-notes-1.42.1 \\\n\tvirt-v2v-release-notes-2.0.1 \\\n\tvirt-v2v-release-notes-2.2.1 \\\n\tvirt-v2v-release-notes-2.4.1 \\\n\tvirt-v2v-release-notes-2.6.1 \\\n\tvirt-v2v-release-notes-2.8.1 \\\n\tvirt-v2v-release-notes-2.10.1 \\\n\tvirt-v2v-support.1 \\\n\t$(NULL)\n\nnoinst_DATA = \\\n\t$(top_builddir)/website/virt-v2v.1.html \\\n\t$(top_builddir)/website/virt-v2v-hacking.1.html \\\n\t$(top_builddir)/website/virt-v2v-input-vmware.1.html \\\n\t$(top_builddir)/website/virt-v2v-output-local.1.html \\\n\t$(top_builddir)/website/virt-v2v-output-openstack.1.html \\\n\t$(top_builddir)/website/virt-v2v-release-notes-1.42.1.html \\\n\t$(top_builddir)/website/virt-v2v-release-notes-2.0.1.html \\\n\t$(top_builddir)/website/virt-v2v-release-notes-2.2.1.html \\\n\t$(top_builddir)/website/virt-v2v-release-notes-2.4.1.html \\\n\t$(top_builddir)/website/virt-v2v-release-notes-2.6.1.html \\\n\t$(top_builddir)/website/virt-v2v-release-notes-2.8.1.html \\\n\t$(top_builddir)/website/virt-v2v-release-notes-2.10.1.html \\\n\t$(top_builddir)/website/virt-v2v-support.1.html \\\n\t$(NULL)\n\nif ENABLE_XEN\nman_MANS += virt-v2v-input-xen.1\nnoinst_DATA += $(top_builddir)/website/virt-v2v-input-xen.1.html\nendif\n\nif ENABLE_OVIRT\nman_MANS += virt-v2v-output-ovirt.1\nnoinst_DATA += $(top_builddir)/website/virt-v2v-output-ovirt.1.html\nendif\n\n# Some man pages are preprocessed with m4 for conditional sections.\nPP_M4 = \\\n\tm4 \\\n\t-D ENABLE_BLOCK_DRIVER=$(ENABLE_BLOCK_DRIVER) \\\n\t-D ENABLE_XEN=$(ENABLE_XEN) \\\n\t-D ENABLE_GLANCE=$(ENABLE_GLANCE) \\\n\t-D ENABLE_OVIRT=$(ENABLE_OVIRT) \\\n\t$(NULL)\n\nvirt-v2v.1 $(top_builddir)/website/virt-v2v.1.html: stamp-virt-v2v.pod\n\nstamp-virt-v2v.pod: virt-v2v.pod\n\t$(PODWRAPPER) \\\n\t  --pp \"$(PP_M4)\" \\\n\t  --man virt-v2v.1 \\\n\t  --html $(top_builddir)/website/virt-v2v.1.html \\\n\t  --path $(top_srcdir)/common/options \\\n\t  --insert $(top_srcdir)/common/mlcustomize/v2v-customize-options.pod:__CUSTOMIZE_OPTIONS__ \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nvirt-v2v-hacking.1 $(top_builddir)/website/virt-v2v-hacking.1.html: stamp-virt-v2v-hacking.pod\n\nstamp-virt-v2v-hacking.pod: virt-v2v-hacking.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-hacking.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-hacking.1.html \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nvirt-v2v-input-vmware.1 $(top_builddir)/website/virt-v2v-input-vmware.1.html: stamp-virt-v2v-input-vmware.pod\n\nstamp-virt-v2v-input-vmware.pod: virt-v2v-input-vmware.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-input-vmware.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-input-vmware.1.html \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nif ENABLE_XEN\nvirt-v2v-input-xen.1 $(top_builddir)/website/virt-v2v-input-xen.1.html: stamp-virt-v2v-input-xen.pod\n\nstamp-virt-v2v-input-xen.pod: virt-v2v-input-xen.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-input-xen.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-input-xen.1.html \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\nendif\n\nvirt-v2v-output-local.1 $(top_builddir)/website/virt-v2v-output-local.1.html: stamp-virt-v2v-output-local.pod\n\nstamp-virt-v2v-output-local.pod: virt-v2v-output-local.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-output-local.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-output-local.1.html \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nvirt-v2v-output-openstack.1 $(top_builddir)/website/virt-v2v-output-openstack.1.html: stamp-virt-v2v-output-openstack.pod\n\nstamp-virt-v2v-output-openstack.pod: virt-v2v-output-openstack.pod\n\t$(PODWRAPPER) \\\n\t  --pp \"$(PP_M4)\" \\\n\t  --man virt-v2v-output-openstack.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-output-openstack.1.html \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nif ENABLE_OVIRT\nvirt-v2v-output-ovirt.1 $(top_builddir)/website/virt-v2v-output-ovirt.1.html: stamp-virt-v2v-output-ovirt.pod\n\nstamp-virt-v2v-output-ovirt.pod: virt-v2v-output-ovirt.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-output-ovirt.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-output-ovirt.1.html \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\nendif\n\nvirt-v2v-release-notes-1.42.1 $(top_builddir)/website/virt-v2v-release-notes-1.42.1.html: stamp-virt-v2v-release-notes-1.42.pod\n\nstamp-virt-v2v-release-notes-1.42.pod: virt-v2v-release-notes-1.42.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-release-notes-1.42.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-release-notes-1.42.1.html \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nvirt-v2v-release-notes-2.0.1 $(top_builddir)/website/virt-v2v-release-notes-2.0.1.html: stamp-virt-v2v-release-notes-2.0.pod\n\nstamp-virt-v2v-release-notes-2.0.pod: virt-v2v-release-notes-2.0.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-release-notes-2.0.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-release-notes-2.0.1.html \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nvirt-v2v-release-notes-2.2.1 $(top_builddir)/website/virt-v2v-release-notes-2.2.1.html: stamp-virt-v2v-release-notes-2.2.pod\n\nstamp-virt-v2v-release-notes-2.2.pod: virt-v2v-release-notes-2.2.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-release-notes-2.2.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-release-notes-2.2.1.html \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nvirt-v2v-release-notes-2.4.1 $(top_builddir)/website/virt-v2v-release-notes-2.4.1.html: stamp-virt-v2v-release-notes-2.4.pod\n\nstamp-virt-v2v-release-notes-2.4.pod: virt-v2v-release-notes-2.4.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-release-notes-2.4.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-release-notes-2.4.1.html \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nvirt-v2v-release-notes-2.6.1 $(top_builddir)/website/virt-v2v-release-notes-2.6.1.html: stamp-virt-v2v-release-notes-2.6.pod\n\nstamp-virt-v2v-release-notes-2.6.pod: virt-v2v-release-notes-2.6.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-release-notes-2.6.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-release-notes-2.6.1.html \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nvirt-v2v-release-notes-2.8.1 $(top_builddir)/website/virt-v2v-release-notes-2.8.1.html: stamp-virt-v2v-release-notes-2.8.pod\n\nstamp-virt-v2v-release-notes-2.8.pod: virt-v2v-release-notes-2.8.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-release-notes-2.8.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-release-notes-2.8.1.html \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nvirt-v2v-release-notes-2.10.1 $(top_builddir)/website/virt-v2v-release-notes-2.10.1.html: stamp-virt-v2v-release-notes-2.10.pod\n\nstamp-virt-v2v-release-notes-2.10.pod: virt-v2v-release-notes-2.10.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-release-notes-2.10.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-release-notes-2.10.1.html \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nvirt-v2v-support.1 $(top_builddir)/website/virt-v2v-support.1.html: stamp-virt-v2v-support.pod\n\nstamp-virt-v2v-support.pod: virt-v2v-support.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-support.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-support.1.html \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nTESTS_ENVIRONMENT = $(top_builddir)/run --test\nTESTS = test-docs.sh\n"
  },
  {
    "path": "docs/test-docs.sh",
    "content": "#!/bin/bash -\n# libguestfs\n# Copyright (C) 2016-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nsource ../tests/functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\n$srcdir/../podcheck.pl virt-v2v.pod virt-v2v \\\n  --path $srcdir/../common/options \\\n  --ignore=\\\n--debug-overlay,\\\n--ic,\\\n--if,\\\n--io,\\\n--ip,\\\n--it,\\\n--in-place,\\\n--oa,\\\n--oc,\\\n--of,\\\n--on,\\\n--oo,\\\n--op,\\\n--os,\\\n$virt_customize_options\n"
  },
  {
    "path": "docs/virt-v2v-hacking.pod",
    "content": "=head1 NAME\n\nvirt-v2v-hacking - \n\n=head1 DESCRIPTION\n\nFirst a little history.  Virt-v2v has been through at least two\ncomplete rewrites, so this is probably about the third version (but we\ndon't intend to rewrite it again).  The previous version was written\nin Perl and can be found here:\nL<https://git.fedorahosted.org/git/virt-v2v.git>\n\nThe current version started out as almost a line-for-line rewrite of\nthe Perl code in OCaml + C, and it still has a fairly similar\nstructure.  Therefore if there are details of this code that you don't\nunderstand (especially in the details of guest conversion), checking\nthe Perl code may help.\n\nThe files to start with when reading this code are:\n\n=over 4\n\n=item *\n\nF<types.mli>\n\n=item *\n\nF<v2v.ml>\n\n=back\n\nF<types.mli> defines all the structures used and passed around when\ncommunicating between different bits of the program.  F<v2v.ml>\ncontrols how the program runs in stages.\n\nAfter studying those files, you may want to branch out into the input\nmodules (F<input_*>), the output modules (F<output_*>) or the\nconversion modules (F<convert_*>).  The input and output modules\ndefine I<-i> and I<-o> options (see the manual).  The conversion\nmodules define what guest types we can handle and the detailed steps\ninvolved in converting them.\n\nEvery other file in this directory is a support module / library of\nsome sort.  Some code is written in C, especially where we want to use\nan external C library such as libxml2.\n\n=head1 SEE ALSO\n\nL<virt-p2v(1)>,\nL<virt-v2v(1)>.\n\n=head1 AUTHORS\n\nRichard W.M. Jones\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "docs/virt-v2v-input-vmware.pod",
    "content": "=head1 NAME\n\nvirt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\n\n=head1 SYNOPSIS\n\n virt-v2v -i vmx GUEST.vmx [-o* options]\n\n virt-v2v -i vmx\n    -it ssh\n    -ip passwordfile\n    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\n    [-o* options]\n\n virt-v2v\n    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\n    -it vddk\n    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\n    \"GUEST NAME\"\n    [-o* options]\n\n virt-v2v -i ova DISK.ova [-o* options]\n\n virt-v2v\n    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\n    -ip passwordfile\n    \"GUEST NAME\" [-o* options]\n\n=head1 DESCRIPTION\n\nThis page documents how to use L<virt-v2v(1)> to convert guests from\nVMware.  There are currently five different methods to access VMware:\n\n=over 4\n\n=item B<-i vmx> GUESTB<.vmx>\n\nFull documentation: L</INPUT FROM VMWARE VMX>\n\nIf you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk>\ndisk image files, or if you are able to NFS-mount the VMware storage,\nthen you can use the I<-i vmx> method to read the source guest.\n\n=item B<-i vmx> B<-it ssh> ssh://...\n\nFull documentation: L</INPUT FROM VMWARE VMX>\n\nThis is similar to the method above, except it uses an SSH connection\nto ESXi to read the F<GUEST.vmx> file and associated disks.  This\nrequires that you have enabled SSH access to the VMware ESXi\nhypervisor - in the default ESXi configuration this is turned off.\n\nThis transport is incompatible with guests that have snapshots; refer\nto L</NOTES>.\n\n=item B<-ic vpx://...> B<-it vddk>\n\n=item B<-ic esx://...> B<-it vddk>\n\nFull documentation: L</INPUT FROM VDDK>\n\nThis method uses the proprietary VDDK library (a.k.a. VixDiskLib) to\naccess the VMware vCenter server or VMware ESXi hypervisor.\n\nIf you have the proprietary library then this method is usually the\nfastest and most flexible.  If you don't have or don't want to use\nnon-free software then the VMX or SSH methods above will be best.\n\n=item B<-i ova> DISKB<.ova>\n\nFull documentation: L</INPUT FROM VMWARE OVA>\n\nWith this method you must first export the guest (eg. from vSphere) as\nan F<.ova> file, which virt-v2v can then read directly.  Note this\nmethod only works with files exported from VMware, not OVA files that\ncome from other hypervisors or management systems, since OVA is only a\npretend standard and is not compatible or interoperable between\nvendors.\n\n=item B<-ic vpx://...> \"GUEST NAME\"\n\nFull documentation: L</INPUT FROM VMWARE VCENTER SERVER>\n\nIf none of the above methods is available, then use this method to\nimport a guest from VMware vCenter.  This is the slowest method.\n\n=back\n\n=head1 NOTES\n\nWhen accessing the F<I<guest>.vmx> file on ESXi over an SSH connection\n(that is, when using the I<-i vmx> I<-it ssh> options), the conversion\nwill not work if the guest has snapshots (files called\nF<I<guest>-000001.vmdk> and similar).  Either collapse the snapshots\nfor the guest and retry the conversion with the same\nI<-i vmx> I<-it ssh> options, or leave the snapshots intact and use a\ntransport different from SSH: just I<-i vmx>, or\nI<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer\nto L<https://bugzilla.redhat.com/1774386>.\n\n=head1 INPUT FROM VMWARE VMX\n\nVirt-v2v is able to import guests from VMware’s vmx files.\n\nThis is useful in two cases:\n\n=over 4\n\n=item 1.\n\nVMware virtual machines are stored on a separate NFS server and you\nare able to mount the NFS storage directly.\n\n=item 2.\n\nYou have enabled SSH access to the VMware ESXi hypervisor and there is\na C</vmfs/volumes> folder containing the virtual machines.\n\n=back\n\nIf you find a folder of files called F<I<guest>.vmx>,\nF<I<guest>.vmxf>, F<I<guest>.nvram> and one or more F<.vmdk> disk\nimages, then you can use this method.  The SSH transport is not usable\nif the guest has snapshots; refer to L</NOTES>.\n\n=head2 VMX: Guest must be shut down\n\nB<The guest must be shut down before conversion starts>.  Because the\nI<-i vmx> method works directly against the storage, checking for\nconcurrent access is not possible.  See also\nL<virt-v2v(1)/The guest should not be running>.\n\n=head2 VMX: Access to the storage containing the VMX and VMDK files\n\nIf the vmx and vmdk files aren't available locally then you must\nI<either> mount the NFS storage on the conversion server I<or> enable\npasswordless SSH on the ESXi hypervisor.\n\n=head3 VMX: SSH authentication\n\nYou can use SSH password authentication, by supplying the name of a\nfile containing the password to the I<-ip> option (note this option\ndoes I<not> take the password directly).  You may need to adjust\nF</etc/ssh/sshd_config> on the VMware server to set\nC<PasswordAuthentication yes>.\n\nIf you are not using password authentication, an alternative is to use\nssh-agent, and add your ssh public key to\nF</etc/ssh/keys-root/authorized_keys> (on the ESXi hypervisor).  After\ndoing this, you should check that passwordless access works from the\nvirt-v2v server to the ESXi hypervisor.  For example:\n\n $ ssh root@esxi.example.com\n [ logs straight into the shell, no password is requested ]\n\nNote that support for non-interactive authentication via the I<-ip>\noption is incomplete.  Some operations remain that still require the\nuser to enter the password manually.  Therefore ssh-agent is recommended\nover the I<-ip> option.  See L<https://bugzilla.redhat.com/1854275>.\n\n=head3 VMX: Construct the SSH URI\n\nWhen using the SSH input transport you must specify a remote\nC<ssh://...> URI pointing to the VMX file.  A typical URI looks like:\n\n ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\n\nThe username is not required if it is the same as your local username.\n\nYou may optionally supply a port number after the hostname if the SSH\nserver is not listening on the default port (22).\n\nFor determining the pathname component of the URI, log in to the ESXi\nserver via SSH interactively, and identify the absolute pathname of the\nVMX file on the ESXi server, such as:\n\n /vmfs/volumes/datastore1/my guest/my guest.vmx\n\nSubsequently, on the virt-v2v command line, L<percent-encode any\nreserved\ncharacters|https://en.wikipedia.org/wiki/Percent-encoding#Reserved_characters>\nthat you find in the individual pathname components.  For example, space\ncharacters must be specified as C<%20>:\n\n /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\n\nRefer to L<https://bugzilla.redhat.com/1938954>.\n\n=head2 VMX: Importing a guest\n\nTo import a vmx file from a local file or NFS, do:\n\n $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\n\nTo import a vmx file over SSH, add I<-it ssh> to select the SSH\ntransport and supply a remote SSH URI:\n\n $ virt-v2v \\\n     -i vmx -it ssh \\\n     \"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\" \\\n     -o local -os /var/tmp\n\nVirt-v2v processes the vmx file and uses it to find the location of\nany vmdk disks.\n\n=head1 INPUT FROM VDDK\n\nVirt-v2v is able to import guests using VMware’s proprietary VDDK\nlibrary (a.k.a. VixDiskLib).\n\n=head2 VDDK: Prerequisites\n\n=over 4\n\n=item 1.\n\nAs the VDDK library is not open source, and the license of this\nlibrary does not permit redistribution or commercial use, you must\nobtain VDDK yourself and satisfy yourself that your usage of the\nlibrary is permitted by the license.\n\n=item 2.\n\nnbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin\nenabled unconditionally.\n\n=item 3.\n\nVDDK imports require a feature added in libvirt E<ge> 3.7.\n\n=item 4.\n\nThe VMware server must not be in maintenance mode.\n\n=back\n\n=head2 VDDK: ESXi NFC service memory limits\n\nIn the verbose log you may see errors like:\n\n nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\n received NFC error 5 from server: Failed to allocate the\n requested 2097176 bytes\n\nThis seems especially common when there are multiple parallel\nconnections open to the VMware server.\n\nThese can be caused by resource limits set on the VMware server.  You\ncan increase the limit for the NFC service by editing\nF</etc/vmware/hostd/config.xml> and adjusting the\nC<E<lt>maxMemoryE<gt>> setting:\n\n <nfcsvc>\n   <path>libnfcsvc.so</path>\n   <enabled>true</enabled>\n   <maxMemory>50331648</maxMemory>\n   <maxStreamMemory>10485760</maxStreamMemory>\n </nfcsvc>\n\nand restarting the C<hostd> service:\n\n # /etc/init.d/hostd restart\n\nFor more information see L<https://bugzilla.redhat.com/1614276>.\n\n=head2 VDDK: \"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\"\n\nIf you see an error similar to:\n\n nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\n\nthen it is caused by a bug in VDDK E<le> 6.7.  The suggested solution\nit to upgrade to the latest VDDK.  See also\nL<https://bugzilla.redhat.com/1684075>\n\n=head2 VDDK: URI\n\nConstruct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)\nURL.  It will look something like these:\n\n vpx://root@vcenter.example.com/Datacenter/esxi\n\n esx://root@esxi.example.com\n\nTo verify that you have the correct URL, use the L<virsh(1)> command\nto list the guests on the server:\n\n $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\n Enter root's password for vcenter.example.com: ***\n \n  Id    Name                           State\n ----------------------------------------------------\n  -     Fedora 20                      shut off\n  -     Windows 2003                   shut off\n\nIf you get an error \"Peer certificate cannot be authenticated with\ngiven CA certificates\" or similar, then you can either import the\nvCenter host’s certificate, or bypass signature verification by adding\nthe C<?no_verify=1> flag:\n\n $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\n\nYou should also try dumping the metadata from any guest on your\nserver, like this:\n\n $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \"Windows 2003\"\n <domain type='vmware'>\n   <name>Windows 2003</name>\n   [...]\n   <vmware:moref>vm-123</vmware:moref>\n </domain>\n\nIf C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you\nneed to upgrade libvirt.\n\nB<If the above commands do not work, then virt-v2v is not going to\nwork either>.  Fix your URI and/or your VMware server before\ncontinuing.\n\n=head2 VDDK: Importing a guest\n\nThe I<-it vddk> parameter selects VDDK as the input transport for disks.\n\nTo import a particular guest from vCenter server or ESXi hypervisor,\nuse a command like the following, substituting the URI and guest name:\n\n $ virt-v2v \\\n     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\n     -it vddk \\\n     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\n     \"Windows 2003\" \\\n     -o local -os /var/tmp\n\nOther options that you might need to add in rare circumstances include\nI<-io vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io\nvddk-file>, I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io\nvddk-snapshot>, I<-io vddk-thumbprint> and I<-io vddk-transports>,\nwhich are all explained in the L<nbdkit-vddk-plugin(1)> documentation.\nDo not use these options unless you know what you are doing.\n\n=head2 VDDK: Thumbprint\n\nYou may specify the thumbprint of the VMware server using the I<-io\nvddk-thumbprint=XX:XX...> parameter.  Doing so increases security\nagainst some man-in-the-middle attacks.\n\nSince virt-v2v 2.10, this parameter is not required.  Virt-v2v will\nget the thumbprint from the server if it is not specified (but the\nL<openssl(1)> command must be installed for this to work).\n\n=head2 VDDK: Debugging VDDK failures\n\nThe VDDK library can be operated in a verbose mode where it gives\n(very) verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable\nverbose messages.\n\n=head2 VDDK: Slow imports and repeated NBD_ClientOpen messages\n\nIf imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many\nC<NBD_ClientOpen> messages, then you are hitting an apparent bug in\nS<VDDK 6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at\nleast S<VDDK 7> to resolve the issue.\n\n=head1 INPUT FROM VMWARE OVA\n\nVirt-v2v is able to import guests from VMware’s OVA (Open\nVirtualization Appliance) files.  Only OVAs exported from VMware\nvSphere will work.\n\n=head2 OVA: Create OVA\n\nTo create an OVA in vSphere, use the \"Export OVF Template\" option\n(from the VM context menu, or from the File menu).  Either \"Folder of\nfiles\" (OVF) or \"Single file\" (OVA) will work, but OVA is probably\neasier to deal with.  OVA files are really just uncompressed tar\nfiles, so you can use commands like C<tar tf VM.ova> to view their\ncontents.\n\n=head3 Create OVA with ovftool\n\nYou can also use VMware’s proprietary C<ovftool>:\n\n ovftool --noSSLVerify \\\n   vi://USER:PASSWORD@esxi.example.com/VM \\\n   VM.ova\n\nTo connect to vCenter:\n\n ovftool  --noSSLVerify \\\n   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\n   VM.ova\n\nFor Active Directory-aware authentication using down-level logon names\n(C<DOMAIN\\USER>), you have to express the C<\\> character in the form\nof its ascii hex-code (C<%5c>):\n\n vi://DOMAIN%5cUSER:PASSWORD@...\n\n=head2 OVA: Importing a guest\n\nTo import an OVA file called F<VM.ova>, do:\n\n $ virt-v2v -i ova VM.ova -o local -os /var/tmp\n\nIf you exported the guest as a \"Folder of files\", I<or> if you\nunpacked the OVA tarball yourself, then you can point virt-v2v at the\ndirectory containing the files:\n\n $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\n\n=head2 OVA: Permissions issues with oVirt import\n\noVirt provides a graphical user interface for importing from OVA files\nwhich uses this method.  It requires that oVirt is able to access the\nOVA file which can be a problem if the file is owned by root (oVirt\nruns as a non-root user).\n\nThe suggested workaround is to copy the OVA to a public directory such\nas F</var/tmp> before doing the import and perhaps change the user and\ngroup ownership of the file.\n\nFor more information see these links:\n\n=over 4\n\n=item *\n\nL<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/html-single/virtual_machine_management_guide/index#Importing_a_virtual_machine_from_a_host>\n\n=item *\n\nL<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\n\n=back\n\n=head1 INPUT FROM VMWARE VCENTER SERVER\n\nVirt-v2v is able to import guests from VMware vCenter Server.\n\nvCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA\nor VMX is recommended instead (see L</INPUT FROM VMWARE OVA> and/or\nL</INPUT FROM VMWARE VMX>).\n\nVirt-v2v uses libvirt for access to vCenter, and therefore the input\nmode should be I<-i libvirt>.  As this is the default, you don't need\nto specify it on the command line.\n\n=head2 vCenter: URI\n\nThe libvirt URI of a vCenter server looks something like this:\n\n vpx://user@server/Datacenter/esxi\n\nwhere:\n\n=over 4\n\n=item C<user@>\n\nis the (optional, but recommended) user to connect as.\n\nIf the username contains a backslash (eg. C<DOMAIN\\USER>) then you\nwill need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER>\n(5c is the hexadecimal ASCII code for backslash.)  Other punctuation\nmay also have to be escaped.\n\nThe user's password must be supplied in a local file using the\nseparate I<-ip> parameter.\n\n=item C<server>\n\nis the vCenter Server (I<not> hypervisor).\n\n=item C<Datacenter>\n\nis the name of the datacenter.\n\nIf the name contains a space, replace it with the URI-escape code\nC<%20>.\n\n=item C<esxi>\n\nis the name of the ESXi hypervisor running the guest.\n\n=back\n\nIf the VMware deployment is using folders, then these may need to be\nadded to the URI, eg:\n\n vpx://user@server/Folder/Datacenter/esxi\n\nFor full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\n\nTypical errors from libvirt / virsh when the URI is wrong include:\n\n=over 4\n\n=item *\n\nCould not find datacenter specified in [...]\n\n=item *\n\nCould not find compute resource specified in [...]\n\n=item *\n\nPath [...] does not specify a compute resource\n\n=item *\n\nPath [...] does not specify a host system\n\n=item *\n\nCould not find host system specified in [...]\n\n=back\n\n=head2 vCenter: Test libvirt connection to vCenter\n\nUse the L<virsh(1)> command to list the guests on the vCenter Server\nlike this:\n\n $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\n Enter root's password for vcenter.example.com: ***\n \n  Id    Name                           State\n ----------------------------------------------------\n  -     Fedora 20                      shut off\n  -     Windows 2003                   shut off\n\nIf you get an error \"Peer certificate cannot be authenticated with\ngiven CA certificates\" or similar, then you can either import the\nvCenter host’s certificate, or bypass signature verification by adding\nthe C<?no_verify=1> flag:\n\n $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\n\nYou should also try dumping the metadata from any guest on your\nserver, like this:\n\n $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \"Windows 2003\"\n <domain type='vmware'>\n   <name>Windows 2003</name>\n   [...]\n </domain>\n\nB<If the above commands do not work, then virt-v2v is not going to\nwork either>.  Fix your libvirt configuration and/or your VMware\nvCenter Server before continuing.\n\n=head2 vCenter: Supplying the password\n\nThe vCenter password (usually for the root account, or the account\nspecified by C<user@> in the vpx URL) has to be written to a local\nfile, and the name of that file specified on the virt-v2v command line\nusing I<-ip passwordfile>.\n\n=head2 vCenter: Importing a guest\n\nTo import a particular guest from vCenter Server, do:\n\n $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\n   -ip passwordfile \\\n   \"Windows 2003\" \\\n   -o local -os /var/tmp\n\nwhere C<Windows 2003> is the name of the guest (which must be shut\ndown).\n\nIn this case the output flags are set to write the converted guest to\na temporary directory as this is just an example, but you can also\nwrite to libvirt or any other supported target.\n\n=head2 vCenter: Non-administrator role\n\nInstead of using the vCenter Administrator role, you can create a\ncustom non-administrator role to perform the conversion.  You will\nhowever need enable the following permissions (or as many as are\navailable, older versions of VMware were missing some of these\nsettings):\n\n=over 4\n\n=item 1.\n\nCreate a custom role in vCenter.\n\n=item 2.\n\nEnable (check) the following objects:\n\n Datastore:\n  - Browse datastore\n  - Low level file operations\n \n Sessions:\n  - Validate session\n \n Virtual Machine:\n   Interaction:\n     - Guest operating system management by VIX API\n   Provisioning:\n     - Allow disk access\n     - Allow read-only disk access\n     - Allow virtual machine download\n \n Cryptographic operations:\n  - Decrypt\n  - Direct Access\n\n=back\n\n=head2 vCenter: Firewall and proxy settings\n\n=head3 vCenter: Ports\n\nIf there is a firewall between the virt-v2v conversion server and the\nvCenter server, then you will need to open port 443 (https) and port\n5480.\n\nPort 443 is used to copy the guest disk image(s).  Port 5480 is used\nto query vCenter for guest metadata.\n\nThese port numbers are only the defaults.  It is possible to\nreconfigure vCenter to use other port numbers.  In that case you would\nneed to specify those ports in the C<vpx://> URI.\nSee L</vCenter: URI> above.\n\nThese ports only apply to virt-v2v conversions.  You may have to open\nother ports for other vCenter functionality, for example the web user\ninterface.  VMware documents the required ports for vCenter in their\nonline documentation.\n\n ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\n │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\n │ conversion │────────────▶ server     │        │ hypervisor │\n │ server     │  port 5480 │            │        │   ┌─────┐  │\n └────────────┘            └────────────┘        │   │guest│  │\n                                                 └───┴─────┴──┘\n\n(In the diagram above the arrows show the direction in which the TCP\nconnection is initiated, I<not> necessarily the direction of data\ntransfer.)\n\nVirt-v2v itself does not connect directly to the ESXi hypervisor\ncontaining the guest.  However vCenter connects to the hypervisor and\nforwards the information, so if you have a firewall between vCenter\nand its hypervisors you may need to open additional ports (consult\nVMware documentation).\n\nThe proxy environment variables (C<https_proxy>, C<all_proxy>,\nC<no_proxy>, C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are\nB<ignored> when doing vCenter conversions.\n\n=head2 vCenter: SSL/TLS certificate problems\n\nYou may see this error:\n\n  CURL: Error opening file: SSL: no alternative certificate subject\n  name matches target host name\n\n(You may need to enable debugging with ‘virt-v2v -v -x’ to see this\nmessage).\n\nThis can be caused by using an IP address instead of the\nfully-qualified DNS domain name of the vCenter server, ie.  use\nC<vpx://vcenter.example.com/...> instead of C<vpx://11.22.33.44/...>\n\nAnother certificate problem can be caused by the vCenter server having\na mismatching FQDN and IP address, for example if the server acquired\na new IP address from DHCP.  To fix this you need to change your DHCP\nserver or network configuration so that the vCenter server always gets\na stable IP address.  After that log in to the vCenter server’s admin\nconsole at C<https://vcenter:5480/>.  Under the C<Admin> tab, select\nC<Certificate regeneration enabled> and then reboot it.\n\n=head2 vCenter: \"Out of HTTP sessions: Limited to ...\"\n\nVMware vCenter appears to limit HTTP sessions and in some\ncircumstances virt-v2v may exceed this number.  You can adjust or\nremove the limit by editing F</etc/vmware-vpx/vpxd.cfg> on the vCenter\nserver.  Increase the C<E<lt>maxSessionCountE<gt>> field, or set it to\nC<0> which makes it unlimited:\n\n <soap>\n   <maxSessionCount>0</maxSessionCount>\n </soap>\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>.\n\n=head1 AUTHOR\n\nRichard W.M. Jones\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "docs/virt-v2v-input-xen.pod",
    "content": "=head1 NAME\n\nvirt-v2v-input-xen - Using virt-v2v to convert guests from Xen\n\n=head1 SYNOPSIS\n\n virt-v2v -ic 'xen+ssh://root@xen.example.com'\n          -ip passwordfile\n          GUEST_NAME [-o* options]\n\n=head1 DESCRIPTION\n\nThis page documents how to use L<virt-v2v(1)> to convert guests from\nRHEL 5 Xen, or SLES and OpenSUSE Xen hosts.\n\n=head1 INPUT FROM XEN\n\n=head2 SSH authentication\n\nYou can use SSH password authentication, by supplying the name of a\nfile containing the password to the I<-ip> option (note this option\ndoes I<not> take the password directly).  You may need to adjust\nF</etc/ssh/sshd_config> on the Xen server to set\nC<PasswordAuthentication yes>.\n\nIf you are not using password authentication, an alternative is to use\nssh-agent, and add your ssh public key to\nF</root/.ssh/authorized_keys> (on the Xen host).  After doing this,\nyou should check that passwordless access works from the virt-v2v\nserver to the Xen host.  For example:\n\n $ ssh root@xen.example.com\n [ logs straight into the shell, no password is requested ]\n\nNote that support for non-interactive authentication via the I<-ip>\noption is incomplete.  Some operations remain that still require the\nuser to enter the password manually.  Therefore ssh-agent is recommended\nover the I<-ip> option.  See L<https://bugzilla.redhat.com/1854275>.\n\nWith some modern ssh implementations, legacy crypto algorithms required\nto interoperate with RHEL 5 sshd are disabled.  To enable them, you may\nneed to add the following C<Host> stanza to your F<~/.ssh/config>:\n\n Host xen.example.com\n   KexAlgorithms            +diffie-hellman-group14-sha1\n   MACs                     +hmac-sha1\n   HostKeyAlgorithms        +ssh-rsa\n   PubkeyAcceptedKeyTypes   +ssh-rsa\n   PubkeyAcceptedAlgorithms +ssh-rsa\n\n(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have\nidentical meaning; the former is the old option name, the latter is the\nnew one. Virt-v2v uses both C<libssh> and C<ssh> when converting a guest\nfrom Xen, and on some operating systems, C<libssh> and C<ssh> may not\nboth accept the same option variant.)\n\nWhen connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in\nsignatures has to be re-enabled at the OpenSSL level, in addition to the\nabove SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf>\nwith the following contents:\n\n .include /etc/ssl/openssl.cnf\n [openssl_init]\n alg_section = evp_properties\n [evp_properties]\n rh-allow-sha1-signatures = yes\n\nand export the following variable into the environment of the\nC<virt-v2v> process:\n\n OPENSSL_CONF=$HOME/openssl-sha1.cnf\n\nNote that the C<OPENSSL_CONF> environment variable will only take effect\nif the libvirt client library used by virt-v2v is at least version\n8.6.0.\n\n=head2 Test libvirt connection to remote Xen host\n\nUse the L<virsh(1)> command to list the guests on the remote Xen host:\n\n $ virsh -c xen+ssh://root@xen.example.com list --all\n  Id    Name                           State\n ----------------------------------------------------\n  0     Domain-0                       running\n  -     rhel49-x86_64-pv               shut off\n\nYou should also try dumping the metadata from any guest on your\nserver, like this:\n\n $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\n <domain type='xen'>\n   <name>rhel49-x86_64-pv</name>\n   [...]\n </domain>\n\nB<If the above commands do not work, then virt-v2v is not going to\nwork either>.  Fix your libvirt configuration or the remote server\nbefore continuing.\n\nB<If the guest disks are located on a host block device>, then the\nconversion will fail.  See L</Xen or ssh conversions from block devices>\nbelow for a workaround.\n\n=head2 Importing a guest\n\nTo import a particular guest from a Xen server, do:\n\n $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\n           rhel49-x86_64-pv \\\n           -o local -os /var/tmp\n\nwhere C<rhel49-x86_64-pv> is the name of the guest (which must be shut\ndown).\n\nIn this case the output flags are set to write the converted guest to\na temporary directory as this is just an example, but you can also\nwrite to libvirt or any other supported target.\n\n=head2 Xen or ssh conversions from block devices\n\nCurrently virt-v2v cannot directly access a Xen guest (or any guest\nlocated remotely over ssh) if that guest’s disks are located on host\nblock devices.\n\nTo tell if a Xen guest uses host block devices, look at the guest XML.\nYou will see:\n\n  <disk type='block' device='disk'>\n    ...\n    <source dev='/dev/VG/guest'/>\n\nwhere C<type='block'>, C<source dev=> and C</dev/...> are all\nindications that the disk is located on a host block device.\n\nThis happens because the qemu ssh block driver that we use to access\nremote disks uses the ssh sftp protocol, and this protocol cannot\ncorrectly detect the size of host block devices.\n\nThe workaround is to copy the block device from the remote Xen\nserver to a regular local file, copy the libvirt guest XML,\nadjust the C<disk> element to point to the local file, and use\nC<-i libvirtxml> mode instead.\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>.\n\n=head1 AUTHOR\n\nRichard W.M. Jones\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "docs/virt-v2v-output-local.pod",
    "content": "=head1 NAME\n\nvirt-v2v-output-local - Using virt-v2v to convert guests to local files\nor libvirt\n\n=head1 SYNOPSIS\n\n virt-v2v [-i* options] [-o libvirt] -os POOL\n\n virt-v2v [-i* options] -o local -os DIRECTORY\n\n virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\n\n virt-v2v [-i* options] -o null\n\n=head1 DESCRIPTION\n\nThis page documents how to use L<virt-v2v(1)> to convert guests to\nlocal files or to a locally running libvirt instance.  There are four\noutput modes you can select on the virt-v2v command line:\n\n=over 4\n\n=item B<-o libvirt -os> C<POOL>\n\n=item B<-os> C<POOL>\n\nThis converts the guest to a libvirt directory pool call C<POOL>, and\ninstantiates the guest in libvirt (but does not start it running).\nSee L</OUTPUT TO LIBVIRT> below.\n\nI<-o libvirt> is the default if no I<-o> option is given, so you can\nomit it.\n\n=item B<-o local -os> C<DIRECTORY>\n\nThis converts the guest to files in C<DIRECTORY>.  A libvirt XML file\nis also created, but unlike I<-o libvirt> the guest is not\ninstantiated in libvirt, only files are created.\n\nThe files will be called:\n\n NAME-sda, NAME-sdb, etc.      Guest disk(s).\n NAME.xml                      Libvirt XML.\n\nwhere C<NAME> is the guest name.\n\n=item B<-o qemu -os> C<DIRECTORY>\n\n=item B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\n\nThis converts the guest to files in C<DIRECTORY>.  Unlike I<-o local>\nabove, a shell script is created which contains the raw qemu command\nyou would need to boot the guest.  However the shell script is not\nrun, I<unless> you also add the I<-oo qemu-boot> option.\n\n=item B<-o null>\n\nThe guest is converted, but the final result is thrown away and no\nmetadata is created.  This is mainly useful for testing.\n\n=back\n\n=head1 OUTPUT TO LIBVIRT\n\nThe I<-o libvirt> option lets you upload the converted guest to\na libvirt-managed host.  There are several limitations:\n\n=over 4\n\n=item *\n\nYou can only use a local libvirt connection [see below for how to\nworkaround this].\n\n=item *\n\nThe I<-os pool> option must specify a directory pool, not anything\nmore exotic such as iSCSI [but see below].\n\n=item *\n\nYou can only upload to a KVM hypervisor.\n\n=back\n\n=head2 Workaround for output to a remote libvirt instance and/or a\nnon-directory storage pool\n\n=over 4\n\n=item 1.\n\nUse virt-v2v in I<-o local> mode to convert the guest disks and\nmetadata into a local temporary directory:\n\n virt-v2v [...] -o local -os /var/tmp\n\nThis creates two (or more) files in F</var/tmp> called:\n\n /var/tmp/NAME.xml     # the libvirt XML (metadata)\n /var/tmp/NAME-sda     # the guest’s first disk\n\n(for C<NAME> substitute the guest’s name).\n\n=item 2.\n\nUpload the converted disk(s) into the storage pool called C<POOL>:\n\n size=$(stat -c%s /var/tmp/NAME-sda)\n virsh vol-create-as POOL NAME-sda $size --format raw\n virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\n\n=item 3.\n\nEdit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool\nname.  In other words, locate the following bit of XML:\n\n <disk type='file' device='disk'>\n   <driver name='qemu' type='raw' />\n   <source file='/var/tmp/NAME-sda' />\n   <target dev='hda' bus='ide' />\n </disk>\n\nand change two things: The C<type='file'> attribute must be changed to\nC<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed\nto include C<pool> and C<volume> attributes:\n\n <disk type='volume' device='disk'>\n   ...\n   <source pool='POOL' volume='NAME-sda' />\n   ...\n </disk>\n\n=item 4.\n\nDefine the final guest in libvirt:\n\n virsh define /var/tmp/NAME.xml\n\n=back\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>.\n\n=head1 AUTHOR\n\nRichard W.M. Jones\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "docs/virt-v2v-output-openstack.pod",
    "content": "=head1 NAME\n\nvirt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\n\n=head1 SYNOPSIS\n\n virt-v2v [-i* options] -o openstack\n                        -oo server-id=SERVER\n                        [-oo guest-id=GUEST]\n                        [-oo verify-server-certificate=false]\n                        [-oo os-username=admin] [-oo os-*=*]\n\nifelse(ENABLE_GLANCE, yes, `\n virt-v2v [-i* options] -o glance\n')\n\n=head1 DESCRIPTION\n\nThis page documents how to use L<virt-v2v(1)> to convert guests to run\non OpenStack.\n\nifelse(ENABLE_GLANCE, yes, `\nThere are two output modes you can select, but only I<-o openstack>\nshould be used normally.\n')\n\n=over 4\n\n=item B<-o openstack> B<-oo server-id=>SERVER [...]\n\nFull description: L</OUTPUT TO OPENSTACK>\n\nThis is the modern method for uploading to OpenStack via the REST API.\nGuests can be directly converted into Cinder volumes.\n\nifelse(ENABLE_GLANCE, yes, `\n\n=item B<-o glance>\n\nFull description: L</OUTPUT TO GLANCE>\n\nThis is the old method for uploading to Glance.  Unfortunately Glance\nis not well suited to storing converted guests (since virt-v2v deals\nwith \"pets\" not templated \"cattle\"), so this method is not recommended\nunless you really know what you are doing.\n')\n\n=back\n\n=head1 OUTPUT TO OPENSTACK\n\nTo output to OpenStack, use the I<-o openstack> option.\n\n=head2 OpenStack: Setting up a conversion appliance\n\nWhen virt-v2v is converting to OpenStack, it is unusual in that\nvirt-v2v B<must> be running inside a virtual machine running on top of\nthe OpenStack overcloud.  This virtual machine is called the\n\"conversion appliance\".  Note this virtual machine is unrelated to the\nguest which is being converted.\n\nThe reason for this is because to create Cinder volumes that will\ncontain the guest data (for the converted guest) we must attach those\nCinder volumes to an OpenStack virtual machine.\n\nThe C<openstack> command must be installed in the appliance.  We use\nit for communicating with OpenStack.\n\nWhen virt-v2v is running in the conversion appliance, you must supply\nthe name or UUID of the conversion appliance to virt-v2v, eg:\n\n $ openstack server list\n +--------------------------------------+-----------+--------+\n | ID                                   | Name      | Status |\n +--------------------------------------+-----------+--------+\n | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\n +--------------------------------------+-----------+--------+\n\n # virt-v2v [...] \\\n       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\n\nor:\n\n # virt-v2v [...] -o openstack -oo server-id=test1\n\nYou can run many parallel conversions inside a single conversion\nappliance if you want, subject to having enough resources available.\nHowever OpenStack itself imposes a limit that you should be aware of:\nOpenStack cannot attach more than around 25 disks [the exact number\nvaries with configuration] to a single appliance, and that limits the\nnumber of guests which can be converted in parallel, because each\nguest's disk must be attached to the appliance while being copied.\n\n=head2 OpenStack: Authentication\n\nConverting to OpenStack requires access to the tenant (non-admin) API\nendpoints.  You will need to either set up your C<$OS_*> environment\nvariables or use output options on the virt-v2v command line to\nauthenticate with OpenStack.\n\nFor example:\n\n export OS_USERNAME=admin\n\nor:\n\n virt-v2v [...] -o openstack -oo os-username=admin\n\nare equivalent, and have the same effect as using I<--os-username> on\nthe command line of OpenStack tools.\n\nNormally there is a file called F<overcloudrc> or F<keystonerc_admin>\nwhich you can simply C<source> to set everything up.\n\nIf you need to copy F<overcloudrc> to another machine, check if it\nreferences the C<OS_CLOUD> environment variable.  If so, you may have\nto copy the F<clouds.yaml> file from F</etc/openstack/> or\nF<$HOME/.config/openstack/> to the other machine as well.  See the\nsection \"CLOUD CONFIGURATION\" in the openstack CLI manual.\n\n=head2 OpenStack: Running as root\n\nBecause virt-v2v must access Cinder volumes which are presented as\nF</dev> devices to the conversion appliance, virt-v2v must usually run\nas root in I<-o openstack> mode.\n\nIf you use C<sudo> to start virt-v2v and you are using environment\nvariables for authentication, remember to use the C<sudo -E> option to\npreserve the environment.\n\n=head2 OpenStack: Guest ID\n\n virt-v2v [...] -o openstack -oo guest-id=123-456-7890\n\nYou may optionally specify I<-oo guest-id=...> on the command line.\nThe ID (which can be any string) is saved on each Cinder volume in the\nC<virt_v2v_guest_id> volume property.\n\nThis can be used to find disks associated with a guest, or to\nassociate which disks are related to which guests when converting many\nguests.\n\n=head2 OpenStack: Ignore server certificate\n\nUsing I<-oo verify-server-certificate=false> you can tell the\nopenstack client to ignore the server certificate when connecting to\nthe OpenStack API endpoints.  This has the same effect as passing the\nI<--insecure> option to the C<openstack> command.\n\n=head2 OpenStack: Converting a guest\n\nThe final command to convert the guest, running as root, will be:\n\n # virt-v2v [-i options ...] \\\n       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\n\nIf you include authentication options on the command line then:\n\n # virt-v2v [-i options ...] \\\n       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\n\n=head2 OpenStack: Booting the guest\n\nGuests are converted as Cinder volume(s) (one volume per disk in the\noriginal guest).  To boot them use the\nC<openstack server create --volume> option:\n\n $ openstack volume list\n +--------------------------------------+---------------+-----------+\n | ID                                   | Name          | Status    |\n +--------------------------------------+---------------+-----------+\n | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\n +--------------------------------------+---------------+-----------+\n $ openstack server create \\\n       --flavor x1.small \\\n       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\n       myguest\n $ openstack console url show myguest\n\n=head2 OpenStack: Other conversion options\n\nTo specify the Cinder volume type, use I<-os>.  If not specified then\nno Cinder volume type is used.\n\nThe following options are B<not> supported with OpenStack: I<-oa>,\nI<-of>.\n\nifelse(ENABLE_GLANCE, yes, `\n\n=head1 OUTPUT TO GLANCE\n\nNote this is a legacy option.  In most cases you should use\nL</OUTPUT TO OPENSTACK> instead.\n\nTo output to OpenStack Glance, use the I<-o glance> option.\n\nThis runs the L<glance(1)> CLI program which must be installed on the\nvirt-v2v conversion host.  For authentication to work, you will need\nto set C<OS_*> environment variables.  See\nL</OpenStack: Authentication> above.\n\nVirt-v2v adds metadata for the guest to Glance, describing such things\nas the guest operating system and what drivers it requires.  The\ncommand C<glance image-show> will display the metadata as \"Property\"\nfields such as C<os_type> and C<hw_disk_bus>.\n\n=head2 Glance and sparseness\n\nGlance image upload doesn’t appear to correctly handle sparseness.\nFor this reason, using qcow2 will be faster and use less space on the\nGlance server.  Use the virt-v2v S<I<-of qcow2>> option.\n\n=head2 Glance and multiple disks\n\nIf the guest has a single disk, then the name of the disk in Glance\nwill be the name of the guest.  You can control this using the I<-on>\noption.\n\nGlance doesn’t have a concept of associating multiple disks with a\nsingle guest, and Nova doesn’t allow you to boot a guest from multiple\nGlance disks either.  If the guest has multiple disks, then the first\n(assumed to be the system disk) will have the name of the guest, and\nthe second and subsequent data disks will be called\nC<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  It may be best to\nleave the system disk in Glance, and import the data disks to Cinder.\n')\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)\nL<https://docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\n\n=head1 AUTHOR\n\nRichard W.M. Jones\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "docs/virt-v2v-output-ovirt.pod",
    "content": "=head1 NAME\n\nvirt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\n\n=head1 SYNOPSIS\n\n virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\n                        [-op PASSWORD] [-of raw]\n                        [-oo ovirt-cafile=FILE]\n                        [-oo ovirt-cluster=CLUSTER]\n                        [-oo ovirt-proxy]\n                        [-oo ovirt-disk-uuid=UUID ...]\n                        [-oo ovirt-verifypeer]\n\n virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\n\n virt-v2v [-i* options] -o vdsm\n                        [-oo vdsm-image-uuid=UUID]\n                        [-oo vdsm-vol-uuid=UUID]\n                        [-oo vdsm-vm-uuid=UUID]\n                        [-oo vdsm-ovf-output=DIR]\n\n=head1 DESCRIPTION\n\nThis page documents how to use L<virt-v2v(1)> to convert guests to an\noVirt management instance.  There are three output modes that you can\nselect, but only I<-o ovirt-upload> should be used normally, the other\ntwo are deprecated:\n\n=over 4\n\n=item B<-o ovirt-upload> B<-os> STORAGE\n\nFull description: L</OUTPUT TO OVIRT>\n\nThis is the modern method for uploading to oVirt via the REST API.  It\nrequires oVirt E<ge> 4.2.\n\n=item B<-o ovirt> B<-os> esd:/path\n\n=item B<-o ovirt> B<-os> /path\n\nFull description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\n\nThis is the old method for uploading to oVirt via the Export Storage\nDomain (ESD).  The ESD can either be accessed over NFS (using the\nI<-os esd:/path> form) or if you have already NFS-mounted it somewhere\nspecify the path to the mountpoint as I<-os /path>.\n\nThe Export Storage Domain was deprecated in oVirt 4, and so we expect\nthat this method will stop working at some point in the future.\n\n=item B<-o vdsm>\n\nThis is the old method used internally by the oVirt user interface.\nIt is never intended to be used directly by end users.\n\n=back\n\n=head1 OUTPUT TO OVIRT\n\nThis new method to upload guests to oVirt directly via the REST API\nrequires oVirt E<ge> 4.2.\n\nYou need to specify I<-o ovirt-upload> as well as the following extra\nparameters:\n\n=over 4\n\n=item I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\n\nThe URL of the REST API which is usually the server name with\nC</ovirt-engine/api> appended, but might be different if you installed\noVirt Engine on a different path.\n\nYou can optionally add a username and port number to the URL.  If the\nusername is not specified then virt-v2v defaults to using\nC<admin@internal> which is the typical superuser account for oVirt\ninstances.\n\n=item I<-of raw>\n\nCurrently you must use I<-of raw> and you cannot use I<-oa preallocated>.\n\nThese restrictions will be loosened in a future version.\n\n=item I<-op> F<password-file>\n\nA file containing a password to be used when connecting to the oVirt\nengine.  Note the file should contain the whole password, B<without\nany trailing newline>, and for security the file should have mode\nC<0600> so that others cannot read it.\n\n=item I<-os> C<ovirt-data>\n\nThe storage domain.\n\n=item I<-oo ovirt-cafile=>F<ca.pem>\n\nThe F<ca.pem> file (Certificate Authority), copied from\nF</etc/pki/ovirt-engine/ca.pem> on the oVirt engine.\n\nIf I<-oo ovirt-verifypeer> is enabled then this option can\nbe used to control which CA is used to verify the client’s\nidentity.  If this option is not used then the system’s\nglobal trust store is used.\n\n=item I<-oo ovirt-cluster=>C<CLUSTERNAME>\n\nSet the oVirt Cluster Name.  If not given it uses C<Default>.\n\n=item I<-oo ovirt-disk-uuid=>C<UUID>\n\nThis option can used to manually specify UUIDs for the disks when\ncreating the virtual machine.  If not specified, the oVirt engine will\ngenerate random UUIDs for the disks.  Please note that:\n\n=over 4\n\n=item *\n\nyou B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the\namount of disks in the guest\n\n=item *\n\nthe specified UUIDs must not conflict with the UUIDs of existing disks\n\n=back\n\n=item I<-oo ovirt-proxy>\n\nProxy the upload through oVirt Engine.  This is slower than uploading\ndirectly to the oVirt node but may be necessary if you do not have\ndirect network access to the nodes.\n\n=item I<-oo ovirt-verifypeer>\n\nVerify the oVirt server’s identity by checking the server‘s\ncertificate against the Certificate Authority.\n\n=back\n\n=head1 OUTPUT TO EXPORT STORAGE DOMAIN\n\nThis section only applies to the I<-o ovirt> output mode.  If you use\nvirt-v2v from the oVirt user interface, then behind the scenes the\nimport is managed by VDSM using the I<-o vdsm> output mode (which end\nusers should not try to use directly).\n\nYou have to specify I<-o ovirt> and an I<-os> option that points to the\noVirt Export Storage Domain.  You can either specify the NFS server\nand mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can\nmount that first and point to the directory where it is mounted,\neg. S<C<-os /tmp/mnt>>.  Be careful not to point to the Data Storage\nDomain by accident as that will not work.\n\nOn successful completion virt-v2v will have written the new guest to\nthe Export Storage Domain, but it will not yet be ready to run.  It\nmust be imported into oVirt using the UI before it can be used.\n\nIn oVirt E<ge> 2.2 this is done from the Storage tab.  Select the\nexport domain the guest was written to.  A pane will appear underneath\nthe storage domain list displaying several tabs, one of which is \"VM\nImport\".  The converted guest will be listed here.  Select the\nappropriate guest an click \"Import\".  See the oVirt documentation for\nadditional details.\n\nIf you export several guests, then you can import them all at the same\ntime through the UI.\n\n=head2 Testing oVirt conversions\n\nIf you do not have an oVirt instance to test against, then you can\ntest conversions by creating a directory structure which looks enough\nlike a oVirt Export Storage Domain to trick virt-v2v:\n\n uuid=`uuidgen`\n mkdir /tmp/ovirt\n mkdir /tmp/ovirt/$uuid\n mkdir /tmp/ovirt/$uuid/images\n mkdir /tmp/ovirt/$uuid/master\n mkdir /tmp/ovirt/$uuid/master/vms\n touch /tmp/ovirt/$uuid/dom_md\n virt-v2v [...] -o ovirt -os /tmp/ovirt\n\n=head2 Debugging oVirt import failures\n\nWhen you export to the oVirt Export Storage Domain, and then import\nthat guest through the oVirt UI, you may encounter an import failure.\nDiagnosing these failures is infuriatingly difficult as the UI\ngenerally hides the true reason for the failure.\n\nThere are several log files of interest:\n\n=over 4\n\n=item F</var/log/vdsm/import/>\n\nIn oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for\n30 days in this directory.\n\nThis directory is found on the host which performed the conversion.\nThe host can be selected in the import dialog, or can be found under\nthe C<Events> tab in oVirt administration.\n\n=item F</var/log/vdsm/vdsm.log>\n\nAs above, this file is present on the host which performed the\nconversion.  It contains detailed error messages from low-level\noperations executed by VDSM, and is useful if the error was not caused\nby virt-v2v, but by VDSM.\n\n=item F</var/log/ovirt-engine/engine.log>\n\nThis log file is stored on the oVirt server.  It contains more detail\nfor any errors caused by the oVirt GUI.\n\n=back\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>.\n\n=head1 AUTHOR\n\nRichard W.M. Jones\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "docs/virt-v2v-release-notes-1.42.pod",
    "content": "=head1 NAME\n\nvirt-v2v-release-notes - virt-v2v release notes for 1.42\n\n=head1 DESCRIPTION\n\nThese are the release notes for S<B<virt-v2v 1.42>>,\nreleased on S<B<16th April 2020>>.\n\n=head2 New features\n\nThis is the first release where virt-v2v lives in a separate\nrepository from libguestfs.  The two projects are now broadly\ndecoupled from one another.\n\nAdd a new I<-o json> output mode.  Primarily this is used to do\nconversions to KubeVirt (Pino Toscano).\n\nUse new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest\nfirmware (Pino Toscano).\n\nvirt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk\nUUIDs to be specified.  Also I<-oo rhv-cafile> is now optional\n(Pino Toscano).\n\nConversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the\nQEMU ssh driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead\nof the QEMU curl driver.  This allowed us to add more flexible\nfeatures such as password authentication, bandwidth throttling (new\nI<--bandwidth> option), readahead, and automatic retry on network\nfailures.\n\nFor Windows guests, QEMU Guest Agent MSI may now be installed\n(Tomáš Golembiovský).\n\n=head2 Other fixes\n\nIn I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\n\nFix Ubuntu Server conversions (Pino Toscano).\n\nFix installation of qemu-ga by only installing arch-specific\nfiles in the guest (Pino Toscano).\n\nDelay installation of qemu-ga until after virtio-win drivers have been\ninstalled and rebooted (Tomáš Golembiovský).\n\nSave the log from running RHEV-APT installer to allow\ndebugging (Tomáš Golembiovský).\n\nCheck RHV cluster exists before trying to convert when using\nI<-o rhv-upload> mode.  Also allows us to detect and reject various other\nconditions early.  (Pino Toscano).\n\nLabel nbdkit sockets correctly for SELinux/sVirt\n(Martin Kletzander).\n\nYou can use a block device as the Windows virtio driver ISO.\n\nMultiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when\nconverting to RHV and VDSM.  Properly clean up on failure.  Display\ndisk ID in error messages, and log script parameters, to help with\ndebugging.  Multiple code cleanups.  (Nir Soffer).\n\nSupport conversions to RHV in qcow2 format (Nir Soffer).\n\nFix detection of disk status and failures after conversion to RHV\n(Daniel Erez).\n\nCancel disk transfer and remove uploaded disks on failure of\nconversion to RHV (Pino Toscano).\n\nImages containing small holes (sparse regions) should now\nconvert faster (Nir Soffer).\n\nThe L<nbdkit-cacheextents-filter(1)> is used to accelerate\nsources which have slow sparseness detection, primarily\nthis means VMware sources using VDDK (Martin Kletzander).\n\nRequire at least 100 free inodes on each guest filesystem before doing\nconversion, since lack of inodes could cause conversion failures\n(Pino Toscano).\n\nFix osinfo output for CentOS 8 conversions (Pino Toscano).\n\nVMware tools are now removed from Windows guests automatically in most\ncases (Pino Toscano).\n\nI<-i ova> mode no longer reads the whole input OVF into memory, but\nparses it off disk (Pino Toscano).\n\nWhen converting to OpenStack, we now wait up to 5 minutes (instead of\n60 seconds) for the Cinder volume to get attached to the conversion\nappliance, since in some cases it was taking a long time.\n\nIf using a new enough version of nbdkit, virt-v2v logs should be much\nless verbose.\n\n=head2 Security\n\nThere were no security-related bugs found in this release.\n\n=head2 Build changes\n\nLibguestfs E<ge> 1.40 is required, it is now packaged and distributed\nseparately from virt-v2v.  For developers you can use a locally built\n(and not installed) copy of libguestfs.\n\nLibvirt is now required to build virt-v2v.  Additionally you will\nrequire the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>),\nalthough a copy is bundled for now (it will be removed later).\n(Pino Toscano).\n\nLibosinfo is required to build virt-v2v.  It is used to query\ninformation about guest drivers.  (Pino Toscano).\n\nFixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is\nstill 4.01, but may be increased to 4.05 in future.\n\nTest conversions of Debian 9 and Fedora 29 (Pino Toscano).\n\nVarious fixes to srcdir != builddir (Pino Toscano).\n\nRemove gnulib modules not used by virt-v2v (Pino Toscano).\n\n=head2 Internals\n\nWhen converting SUSE guests, always try to install QXL driver (Mike\nLatimer).\n\nTwo new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit\noperations and nbdkit source operations respectively.\n\nFormat Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\n\nTests have been moved to the F<tests/> subdirectory, and manuals to\nthe F<docs/> subdirectory.\n\n=head2 Bugs fixed\n\n=begin comment\n\nhttps_proxy= ./bugs-in-changelog.sh v1.40.0..\n\n=end comment\n\n=over 4\n\n=item L<https://bugzilla.redhat.com/1791802>\n\nvirt-v2v does not install qemu-ga on EL8 guest\n\n=item L<https://bugzilla.redhat.com/1791257>\n\nupdate-crypto-policies command example is incorrect in virt-v2v-input-xen\n\n=item L<https://bugzilla.redhat.com/1791240>\n\n[RFE] Make the rhv-cafile optional\n\n=item L<https://bugzilla.redhat.com/1785528>\n\nShould remove info about \"Remove VMware tools from Windows guests\" in virt-v2v-input-vmware man page\n\n=item L<https://bugzilla.redhat.com/1746699>\n\nCan't import guest from export domain to data domain on rhv4.3 due to error \"Invalid parameter: 'DiskType=1'\"\n\n=item L<https://bugzilla.redhat.com/1733168>\n\nvirt-v2v: Use scp -T in -i vmx -it ssh mode\n\n=item L<https://bugzilla.redhat.com/1723305>\n\nDelete info \"export PATH=/path/to/nbdkit-1.1.x:$PATH\" in virt-v2v-input-vmware manual page\n\n=item L<https://bugzilla.redhat.com/1691659>\n\nvirt-v2v should show a message when qemu-guest-agent is installed in guest successfully during conversion\n\n=item L<https://bugzilla.redhat.com/1690574>\n\nvirt-v2v fails to import a guest while cannot find `file_architecture` for a file\n\n=item L<https://bugzilla.redhat.com/1680361>\n\n[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for transfer to finalize\n\n=item L<https://bugzilla.redhat.com/1626503>\n\nUnable to maintain static IP address configuration post VM migration\n\n=item L<https://bugzilla.redhat.com/1612653>\n\nGuest has no disk after rhv-upload converting if target data domain has similar name with other data domain on rhv4.2\n\n=item L<https://bugzilla.redhat.com/1605242>\n\nUpdate nbdkit info for vddk in v2v man page\n\n=item L<https://bugzilla.redhat.com/1584678>\n\nOn W2K12r2 rhev-apt does not run non-interactively, causing race when starting rhev-apt service from the command line\n\n=item L<https://bugzilla.redhat.com/1518539>\n\nMacvtap network will be lost during v2v conversion\n\n=back\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>.\n\nPrevious release notes covering virt-v2v can be found in the\nlibguestfs project: L<guestfs-release-notes-1.40(1)>.\n\n=head1 AUTHORS\n\nDaniel Erez\n\nRichard W.M. Jones\n\nTomáš Golembiovský\n\nMartin Kletzander\n\nMike Latimer\n\nNir Soffer\n\nPino Toscano\n\nMing Xie\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "docs/virt-v2v-release-notes-2.0.pod",
    "content": "=head1 NAME\n\nvirt-v2v-release-notes - virt-v2v release notes for 2.0\n\n=head1 DESCRIPTION\n\nThese are the release notes for S<B<virt-v2v 2.0>>.\nThis describes the major changes since 1.42.\n\nNo release notes were published for 1.44, so that release is covered\nhere.\n\nVirt-v2v 2.0.0 was released on S<B<14 March 2022>>.\n\n=head2 Security\n\nThere were no security-related bugs found in this release.\n\n=head2 New features\n\nVirt-v2v has been modularised allowing external programs to examine\nthe state of the conversion and inject their own copying step.\nFurther enhancements will be made to this new architecture in\nforthcoming releases.\n\nThe command line is almost identical apart from some debugging\nfeatures that were removed (see below).  The only significant\ndifference is that the output format (I<-of>) now has to be specified\nif it is different from the input format, whereas previous versions of\nvirt-v2v would use the same output format as input format\nautomatically.\n\nA lot of time was spent improving the performance of virt-v2v in\ncommon cases.\n\nImplement conversion of ALT Linux guests (Mikhail Gordeev).\n\nMany bug fixes and performance enhancements were made to oVirt imageio\noutput (Nir Soffer).\n\nThere is a new L<virt-v2v-in-place(1)> tool which replaces the\nexisting virt-v2v I<--in-place> option.\n\nVirt-v2v can now convert guests which use LUKS encrypted logical\nvolumes (Laszlo Ersek).\n\nOption I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and\ndirect mode (which is much faster) is now the default when writing to\noVirt, with proxy mode available for restricted network configurations\n(thanks: Nir Soffer).\n\nThe following command line options were removed: I<--print-estimate>,\nI<--debug-overlays>, I<--no-copy>.\n\nVirt-v2v no longer installs the RHEV-APT tool in Windows guests.  This\ntool was deprecated and then removed in oVirt 4.3.\n\nDeprecated tool virt-v2v-copy-to-local has been removed.  This was\ndeprecated in November 2018.\n\n=head2 Other fixes\n\nRemove reference to prl_strg driver in Windows guests to avoid BSOD\n(Denis Plotnikov).\n\nFix conversions of UEFI Linux guests that don't provide their own\nfallback bootloader (Denis Plotnikov).\n\nRemove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive\nstrategy and it had several negative effects on conversions.\n\nRemove prompts for interactive passwords.  Normally you should try to\nuse the I<-ip> and/or I<-op> options to supply passwords.\n\nFor Windows guests, we insert a schtasks command.  However the\nparameters of this command are timezone dependent and so it failed in\nnon-European timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský,\nBryan Kinney, Mark Zealey, Xiaodai Wang)\n\nVirt-v2v will reauthenticate with vCenter servers periodically when\ncopying guests over HTTPS which stops large guests and/or slow copies\ntaking longer than about 30 minutes from failing.\n\nVirt-v2v now sets libguestfs SMP to match number of physical host\nCPUs, which helps performance of certain conversion steps.\n\nVirt-v2v output to oVirt now attempts to set the machine and firmware\ntype correctly.  Note an exact mapping is not always possible and\noVirt may ignore our recommendations (incorrectly) sometimes.\n\nVirt-v2v now generates a virtio-vsock device for guests which support\nit (Valeriy Vdovin).\n\nAll guests now need at least 100 MB of free space for conversion to\nsucceed (Ming Xie).\n\nStandard VGA instead of QXL is now used as the video type for\nconverted guests (Laszlo Ersek).\n\nOlder guests (eg RHEL 6) will use the virtio-transitional model after\nconversion.  This feature and the machine type are now usually\ndetermined from the libosinfo database, falling back to hard-coded\nvalues if libosinfo is not available (Laszlo Ersek).\n\nWhen virt-v2v prints messages to a pipe or file it no longer wraps\nthem, making parsing simpler.  You can enable wrapping in this mode\nusing I<--wrap> (Laszlo Ersek).\n\nWindows guest firstboot scripts installed by virt-v2v now run in the\nright order, making network configuration happen earlier (Laszlo\nErsek).\n\n=head2 Build changes\n\nlibguestfs E<ge> 1.44 is now required.\n\nL<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are\nnow required.\n\nnbdkit E<ge> 1.22 is now required (Nir Soffer).\n\npcre2 (instead of pcre) is now required.\n\ngnulib is no longer bundled or used by virt-v2v.\n\nOCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added\nin this release.\n\nOpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail\nbecause the command line syntax was changed incompatibly.\n\n=head2 Internals\n\nWeblate instead of Zanata is now used for translations (Pino Toscano).\n\n=head2 Bugs fixed\n\n=begin comment\n\nhttps_proxy= ./bugs-in-changelog.sh v1.42.0..\n\n=end comment\n\n=over 4\n\n=item L<https://bugzilla.redhat.com/2051394>\n\nMissing error message of 'insufficient free space in the conversion server temporary directory'\n\n=item L<https://bugzilla.redhat.com/2044922>\n\nnbdinfo output to stdout instead of stderr during virt-v2v conversion\n\n=item L<https://bugzilla.redhat.com/2044911>\n\nvirt-p2v conversion hangs with RHEL9 virt-v2v\n\n=item L<https://bugzilla.redhat.com/2043333>\n\n'model='virtio-transitional' is wrongly added when converting windows guest to local by rhel9 v2v\n\n=item L<https://bugzilla.redhat.com/2041886>\n\nvirt-v2v hangs for several minutes when using -ic vpx://... -it vddk with incorrect IP address\n\n=item L<https://bugzilla.redhat.com/2041852>\n\nImprove the unclear assertion failure at input_xen_ssh.ml\n\n=item L<https://bugzilla.redhat.com/2041850>\n\nCan not specify '-oo json-disks-pattern' in '-o json' mode\n\n=item L<https://bugzilla.redhat.com/2039597>\n\nFailed to import VM when selecting OVA as a source on RHV webadmin\n\n=item L<https://bugzilla.redhat.com/2039255>\n\nConversion performance is not good when convert guest by modular virt-v2v\n\n=item L<https://bugzilla.redhat.com/2034240>\n\ncalling \"get_disk_allocated\" in \"create_ovf\" breaks the rhv-upload output plugin\n\n=item L<https://bugzilla.redhat.com/2033096>\n\nRFE: Remove -oo rhv-direct and add -oo rhv-proxy option\n\n=item L<https://bugzilla.redhat.com/2032324>\n\nnbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk > 6.5 + rhv-upload to rhv4.4\n\n=item L<https://bugzilla.redhat.com/2032112>\n\nAdd virt-v2v and libvirt version to the beginning of v2v debug log\n\n=item L<https://bugzilla.redhat.com/2027673>\n\nV2V can't convert guest from VMware via vmx+ssh when openssh version is 8.7p1-5\n\n=item L<https://bugzilla.redhat.com/2027598>\n\nThere is no guest listed in export domain if use v2v to convert guest to rhv via -o rhv\n\n=item L<https://bugzilla.redhat.com/1994984>\n\nvirt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/mapper/cryptsda: No such file or directory\n\n=item L<https://bugzilla.redhat.com/1977681>\n\nThe usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be updated\n\n=item L<https://bugzilla.redhat.com/1976607>\n\n[RFE] Drop QXL for guests on CentOS 9 clusters\n\n=item L<https://bugzilla.redhat.com/1976024>\n\n[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk is OK but image transfer still holds a lock on the disk\n\n=item L<https://bugzilla.redhat.com/1972125>\n\nUpdate privileges for Non-admin vmware role when ESXi host has enabled host encryption mode in virt-v2v-input-vmware man page\n\n=item L<https://bugzilla.redhat.com/1967941>\n\nvirt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\n\n=item L<https://bugzilla.redhat.com/1964324>\n\nassertion failed at parse_ova.ml when ova directory ends with '/'\n\n=item L<https://bugzilla.redhat.com/1961107>\n\nChange video type from qxl to vga after v2v conversion\n\n=item L<https://bugzilla.redhat.com/1960087>\n\nv2v import from vCenter fails when using interactive password because cookie-script tries to be interactive\n\n=item L<https://bugzilla.redhat.com/1949147>\n\nShould improve the minimum free space for windows guest in v2v man page and better to improve v2v error message about no space left for windows guest\n\n=item L<https://bugzilla.redhat.com/1945549>\n\nDelete or improve the warning info about rhev-apt during v2v converting windows guest on rhel9\n\n=item L<https://bugzilla.redhat.com/1942325>\n\nVirt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio devices during conversion if target is rhel9 system\n\n=item L<https://bugzilla.redhat.com/1926102>\n\n\"virt-v2v: warning: there is no QXL driver for this version of Windows\" still shows, even though we copied qxldod driver to the guest\n\n=item L<https://bugzilla.redhat.com/1917760>\n\nVMware tools not getting uninstalled as part of IMS\n\n=item L<https://bugzilla.redhat.com/1903960>\n\nShould hidden \"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is missing..\"during conversion\n\n=item L<https://bugzilla.redhat.com/1901489>\n\nVDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\n\n=item L<https://bugzilla.redhat.com/1895323>\n\nAfter virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is not M/d/yyyy format\n\n=item L<https://bugzilla.redhat.com/1872100>\n\nShould correct info about 'UEFI on OpenStack' in virt-v2v-support man page\n\n=item L<https://bugzilla.redhat.com/1872094>\n\nVirt-v2v should convert UEFI guest to openstack via openstack option successfully\n\n=item L<https://bugzilla.redhat.com/1871754>\n\nRFE: Should clarify which file is correct authentication file for openstack/glance conversion in virt-v2v-output-openstack man page\n\n=item L<https://bugzilla.redhat.com/1868690>\n\nCeph block device will be destroyed if v2v convert guest to ceph block device and guest disk size is greater than ceph block device\n\n=item L<https://bugzilla.redhat.com/1858775>\n\nRFE: virt-v2v should check the ip info when specify guest's ip\n\n=item L<https://bugzilla.redhat.com/1858765>\n\nV2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for device\n\n=item L<https://bugzilla.redhat.com/1854275>\n\ndocument that vmx+ssh \"-ip\" auth doesn't cover ssh / scp shell commands\n\n=item L<https://bugzilla.redhat.com/1842440>\n\nnbdkit cannot read the password interactively when started from virt-v2v\n\n=item L<https://bugzilla.redhat.com/1841096>\n\nOption --bandwidth and --bandwidth-file isn't working as expected during v2v conversion\n\n=item L<https://bugzilla.redhat.com/1839917>\n\nThere is no info \"Opening the source -i libvirt -ic vpx://...\" shown if any IP is wrong in vpx:// URL during v2v conversion\n\n=item L<https://bugzilla.redhat.com/1838425>\n\nV2V doesn't ask password if there is no option about password file in v2v command line\n\n=item L<https://bugzilla.redhat.com/1837453>\n\n[RFE]Remove cache=none for guest after v2v converting to libvirt\n\n=item L<https://bugzilla.redhat.com/1837328>\n\nVirt-v2v cannot convert guest from ESXI7.0 server without vddk\n\n=item L<https://bugzilla.redhat.com/1832805>\n\nv2v conversion will be failed because of memory allocation failure if convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert guest from VMware\n\n=item L<https://bugzilla.redhat.com/1789279>\n\nvirt-v2v should give more clear error info when use some special invalid uuids for disks\n\n=item L<https://bugzilla.redhat.com/1788823>\n\nVirt-v2v firstboot scripts should run in order, with v2v network configuration happening first\n\n=item L<https://bugzilla.redhat.com/1764569>\n\nV2V conversion fails when a filesystem has no free inodes\n\n=item L<https://bugzilla.redhat.com/1658126>\n\nVirt-v2v can't convert guest using LUKS-on-LV\n\n=item L<https://bugzilla.redhat.com/1637857>\n\nq35 switch caused: error: unsupported configuration: IDE controllers are unsupported for this QEMU binary or machine type\n\n=item L<https://bugzilla.redhat.com/1581428>\n\nvirt-v2v use Q35 as default machine-type\n\n=item L<https://bugzilla.redhat.com/1534644>\n\nNew way of parsing OVF from OVA that was created by VMware fails.\n\n=back\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>,\nL<virt-v2v-release-notes-1.42(1)>,\nL<guestfs-release-notes-1.40(1)>.\n\n=head1 AUTHORS\n\nAuthors of virt-v2v 2.0:\n\n=begin comment\n\ngit shortlog -s v1.42.0..\n\n=end comment\n\n=over 4\n\n=item Denis Plotnikov\n\n=item Kevin Locke\n\n=item Laszlo Ersek\n\n=item Martin Kletzander\n\n=item Mikhail Gordeev\n\n=item Nir Soffer\n\n=item Pino Toscano\n\n=item Richard W.M. Jones\n\n=item Valeriy Vdovin\n\n=back\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "docs/virt-v2v-release-notes-2.10.pod",
    "content": "=head1 NAME\n\nvirt-v2v-release-notes - virt-v2v release notes for 2.10\n\n=head1 DESCRIPTION\n\nThese are the release notes for S<B<virt-v2v 2.10>>.\nThis describes the major changes since 2.8.\n\nVirt-v2v 2.10.0 was released on S<B<6th January 2026>>.\n\n=begin comment\n\n=head2 Security\n\n=end comment\n\n=head2 New features\n\nIn I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create>\noptions let you respectively override the output disk names, and avoid\ndisk creation, letting you pre-create disks before running virt-v2v.\n\nFor VDDK sources:\n\n=over\n\n=item *\n\nA new I<-io vddk-compression> option lets you enable compression for\ndata read over the network.\n\n=item *\n\nI<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will\nautomatically work it out from the VMware server.\n\n=back\n\nNew I<--memsize> and I<--smp> options which let you override the\ndefault amount of memory and number of vCPUs assigned to the\nappliance.  For certain complex guests it is occasionally necessary to\nadjust these, although usually virt-v2v should do the right thing\nautomatically.\n\nL<virt-v2v-inspector(1)> now detects Windows Antivirus and Group\npolicy, and if found adds C<E<lt>windows_antivirus/E<gt>> and\nC<E<lt>windows_group_policy/E<gt>> elements respectively.\n\n=head2 Features removed\n\nThe following virt-v2v options have been removed:\n\n=over 4\n\n=item I<-io vddk-noextents>\n\nThis was an undocumented troubleshooting option.  Any uses of it can\nsimply be removed.\n\n=item I<--sm*> options\n\nThe Red Hat Subscription Manager customization options did not work\nand have been removed (Cole Robinson).\n\n=back\n\n=head2 Other fixes\n\nWhen checking ext4 filesystems before conversion, replay the dirty log\nto avoid e2fsck failing (thanks Ming Xie).\n\nWhen checking XFS filesystems before and after conversion, cap the\namount of memory used by the L<xfs_repair(8)> utility (thanks Ming\nXie, Eric Sandeen).\n\nFor output modes that write to local disk, in debugging output we now\nreport the amount of space on the local (host) disk, in order to make\nit easier to debug certain out of space problems (thanks Martin Necas,\nAlex Kalenyuk).\n\nUse L<nbdkit-count-filter(1)> (if installed).  In debugging mode this\nwill print a summary of the number of bytes read, written, trimmed and\nzeroed when copying the guest, which can be useful when you want to\nknow how much data was sent over the wire by virt-v2v.\n\nFor Windows virtio driver installation:\n\n=over 4\n\n=item *\n\nFix this when there is a pending Windows Update (Vadim Rozenfeld).\n\n=item *\n\nFix this when Windows changes the timezone during firstboot (Vadim\nRozenfeld).\n\n=item *\n\nSkip driver installation when a newer/better virtio driver is already\ninstalled (Vadim Rozenfeld).\n\n=item *\n\nSlightly modify how we patch the regsitry so that we don't break both\nWindows Update and C<pnputil /e> driver enumeration.\n\n=back\n\nDisplay the versions of libnbd and nbdcopy in debugging output.\n\nFix SELinux relabelling for guests which use a separate F</usr>\npartition (thanks Germano Veit Michel, Ming Xie).\n\nWe now attempt to generate correct boot order for Linux BIOS guests.\nThis is necessary with current SeaBIOS so that it initializes the\ncorrect boot disk, allowing the guest to boot if the bootloader is not\non the first disk.\n\nName nbdkit subprocesses using the new I<--name> option in\nS<nbdkit E<ge> 1.46>.  This allows debugging and error messages from\ndifferent nbdkit instances to be distinguished in log files.\n\nA virtual floppy disk is no longer added to the output guest if qemu\ndoes not support it, even if the input guest has a floppy disk (Cole\nRobinson).\n\nDuring conversion of Windows guests, if we have to create\nS<F<C:\\Program Files\\Guestfs>>, it is now created read-only for\nnon-Administrator accounts (Cole Robinson).\n\nFor RHEL 7.2 conversions, ignore archived LVM VG configuration files,\nwhich previously caused a crash in Augeas during conversion (thanks\nSean Haselden, Alasdair Kergon).\n\nHandle .vmdk files in subdirectories on the ESXi server (thanks Ming\nXie).\n\nFix UEFI conversions of Windows guests if F<C:\\Windows\\Temp> exists\nbut has a different upper/lowercase from the directory that Windows\nnormally creates.\n\n=head2 Documentation\n\nRefactored and improved documentation (thanks Ming Xie).\n\nLink from L<virt-v2v(1)> directly to official VMware documentation for\nremoving VMware Tools.\n\n=head2 Build changes\n\nlibguestfs E<ge> 1.58 is required.\n\nnbdkit E<ge> 1.46 is required.\n\nUpdate C<make check-slow> (\"slow tests\") so we test more recent guest\ntypes.\n\nWe now test Windows UEFI conversions in the test suite.\n\nC<./configure> output has been colourized.\n\nNew configure I<--disable-block-driver>, I<--disable-glance>,\nI<--disable-ovirt> and I<--disable-xen> options allowing you to\ndisable those features at compile time.\n\nBasic github CI has been implemented.  Pull requests now do the\nequivalent of C<./configure --enable-werror && make && make check> on\na few common platforms.\n\n=head2 Internals\n\nThe internal podwrapper tool used to process the documentation now has\na new I<--pp> to allow a preprocessor to be used.  In particular we\nnow use L<m4(1)> to preprocess some documentation.\n\nIn F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This\nimproves patch application.\n\n=head2 Bugs fixed\n\n=begin comment\n\n./bugs-in-changelog.sh v2.8.0..\n\n=end comment\n\n=over 4\n\n=item L<https://issues.redhat.com/browse/RHEL-100682>\n\nInstalling drivers on firstboot sometimes fail with PnP service not\navailable [rhel-9.7]\n\n=item L<https://issues.redhat.com/browse/RHEL-101599>\n\nRFE: Allow -o kubevirt disks to be specified\n\n=item L<https://issues.redhat.com/browse/RHEL-102734>\n\nvirt-v2v can't convert guest with multiple disks from VMware since\nnbdkit-1.44.0-1\n\n=item L<https://issues.redhat.com/browse/RHEL-104352>\n\nChange permission of guestfs folder created\n\n=item L<https://issues.redhat.com/browse/RHEL-108174>\n\nselinux-relabel doesn't work across filesystem boundaries (because\nsetfiles doesn't) [rhel-9.7]\n\n=item L<https://issues.redhat.com/browse/RHEL-108991>\n\nRFE: Set boot order for Linux BIOS guests based on grub location\n[rhel-10.1]\n\n=item L<https://issues.redhat.com/browse/RHEL-110742>\n\nRFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\n\n=item L<https://issues.redhat.com/browse/RHEL-113820>\n\nguestfs crashed when running aug-init during a conversion\n\n=item L<https://issues.redhat.com/browse/RHEL-121728>\n\nv2v can't convert guest with multiple windows OS on rhel10\n\n=item L<https://issues.redhat.com/browse/RHEL-124569>\n\nWindows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such\nfile or directory [rhel-10.2]\n\n=item L<https://issues.redhat.com/browse/RHEL-125116>\n\nsetfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\n\n=item L<https://issues.redhat.com/browse/RHEL-125956>\n\nvirt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\n\n=item L<https://issues.redhat.com/browse/RHEL-90175>\n\nShould remove floppy device for the guest after v2v conversion\n[rhel-10.2]\n\n=item L<https://issues.redhat.com/browse/RHEL-97600>\n\nVirt-v2v fails to convert some guests with libguestfs error: e2fsck\n\n=item L<https://issues.redhat.com/browse/RHEL-99313>\n\nImprove the error info when converting a guest with less than 100\ninodes by virt-v2v\n\n=item L<https://issues.redhat.com/browse/RHEL-99745>\n\nImprove info about guest must not be running or must be shut down in\nvirt-v2v related man page [rhel-10.1]\n\n=item L<https://github.com/libguestfs/virt-v2v/issues/100>\n\nPlease implement nbdkit-vddk-plugin's compression parameter in virt-v2v\n\n=back\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>.\n\n=head1 AUTHORS\n\nAuthors of virt-v2v 2.10:\n\n=begin comment\n\ngit shortlog -s v2.8.0..\n\n=end comment\n\n=over 4\n\n=item Alan Alberghini\n\n=item Cole Robinson\n\n=item Fco. Javier F. Serrador\n\n=item Richard W.M. Jones\n\n=item Ricky Tigg\n\n=item Vadim Rozenfeld\n\n=item Yuri Chornoivan\n\n=back\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2026 Red Hat Inc.\n"
  },
  {
    "path": "docs/virt-v2v-release-notes-2.2.pod",
    "content": "=head1 NAME\n\nvirt-v2v-release-notes - virt-v2v release notes for 2.2\n\n=head1 DESCRIPTION\n\nThese are the release notes for S<B<virt-v2v 2.2>>.\nThis describes the major changes since 2.0.\n\nVirt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\n\n=head2 Security\n\nWhen running virt-v2v as root, NBD Unix domain sockets in the v2v\ndirectory were openable by any user.  We now set the directory owner\nso only qemu can access the sockets.  See:\nhttps://bugzilla.redhat.com/show_bug.cgi?id=2066773 (thanks\nXiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, Laszlo Ersek).\n\n=head2 New features\n\nNew L<virt-v2v-inspector(1)> tool.  This tool can be used before\nconversion to collect facts about the source guest, such as number of\ndisks, and to estimate the disk space required after conversion.\n\nAdd support for NVMe devices and SATA hard disks when importing from\nVMware VMX files (Laszlo Ersek).\n\nAdd support for importing to KubeVirt using the new B<experimental>\nI<-o kubevirt> mode.\n\nWindows 11 guests are now supported.\n\nRocky Linux guest support has been added (Andrey Drobyshev).\n\n=head2 Feature removed\n\nThe I<-o json> mode was removed.  It was intended to be used with\nKubeVirt but was never actually used there.  Use I<-o kubevirt>\ninstead.\n\n=head2 Other fixes\n\nFix detection of virtio-socket support in Linux guests (Laszlo Ersek).\nIn addition, a semi-random guest CID is chosen in I<-o qemu> mode,\navoiding an error.\n\nAllow importing OVAs where the user or group name inside the tarball\ncontains a space (Jiří Sléžka).\n\nReject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\n\nImprove documentation for the need to enable PasswordAuthentication on\nthe server side when importing over SSH (Laszlo Ersek).\n\nDon't use the deprecated qemu I<-balloon> option.  This caused\ndeprecation warnings with I<-o qemu> mode.  Use I<-device> instead.\n\nRewrite device mapping in I<-o qemu> mode, removing some strange /\nnon-existent cases like SCSI floppies.  This should result in more\nconsistent device layout when using this mode (Laszlo Ersek).\n\nRemove more left over open-vm-tools packages from Linux guests (Tim\nKent).\n\nIn I<-o rhv-upload> mode, do not return until the VM has been created\n(Tomáš Golembiovský).\n\nGreatly improved vCPU model handling (Laszlo Ersek).\n\nDocument extra permissions needed for non-admin conversion with\nS<VMware 7> (Ming Xie).\n\nQEMU guest agent is now installed unconditionally and where possible a\nvirtio-serial socket is created in the guest metadata (Laszlo Ersek).\n\nIn the various RHV output modes, the number of disks is now limited to\n23.  RHV doesn't support anything greater and would break (Laszlo\nErsek).\n\nI<-oo compressed> is now working again.  It was temporarily broken in\nvirt-v2v 2.0.\n\nThe documentation no longer advises you to use the dangerous global\n\"LEGACY crypto\" option, but provides more targeted advice (Laszlo\nErsek).\n\nRemove the LVM2 devices file during conversion (Laszlo Ersek).\n\nAdd support for guests using Zstandard compressed kernel modules.\n\nAdd the BOCHS DRM display driver in Linux guest initrd, to avoid a\ncrash with some guests with graphical boot displays (Laszlo Ersek).\n\nThe UEFI fallback boot loader is now fixed up if we detect that it was\nbroken (Laszlo Ersek).\n\nImprove detection of guests using BIOS boot with GPT partitions so\nthat we no longer confuse them with UEFI guests (Andrey Drobyshev).\n\nFix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo\nErsek).\n\nFix Windows 11 support for RHV outputs (Laszlo Ersek).\n\n=head2 Build changes\n\nEnable malloc debugging in tests with glibc E<ge> 2.34.\n\nWhen using C<make check-valgrind>, valgrind output is no longer\nwritten to separate files under F<tmp/>.  Instead it is written to the\nnormal test log file.\n\nWe now require ocamldep I<-one-line> and I<-all> options (added to\nocamldep in Jan 2012).\n\nThe OCaml libvirt bindings are no longer bundled.  They must be\navailable at build time.\n\nUpdated the phony test images.  The tests should all pass.\n\nAdd compatibility with OCaml 4.14.\n\nWe now require PCRE2 instead of PCRE.\n\n=head2 Internals\n\nNew LUKS-on-LVM test added (Laszlo Ersek).\n\nAdded F<scripts/git.orderfile> which orders files when we prepare\npatches.\n\n=head2 Bugs fixed\n\n=begin comment\n\nhttps_proxy= ./bugs-in-changelog.sh v2.0.0..\n\n=end comment\n\n=over 4\n\n=item L<https://bugzilla.redhat.com/2152465>\n\nv2v should set ovirt:id correctly after converting windows11/2019/2022 guests to rhv via -o rhv-upload\n\n=item L<https://bugzilla.redhat.com/2151752>\n\nqemufwcfg device cannot start or has no driver after v2v converting windows guests\n\n=item L<https://bugzilla.redhat.com/2149863>\n\nThe version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-v2v conversion\n\n=item L<https://bugzilla.redhat.com/2149811>\n\nCopy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v conversion\n\n=item L<https://bugzilla.redhat.com/2149629>\n\nWin 2022 fails to boot after virt-p2v conversion from physical host with nvme disk\n\n=item L<https://bugzilla.redhat.com/2131123>\n\nRHEL7 UEFI guest turns into black after v2v conversion\n\n=item L<https://bugzilla.redhat.com/2116811>\n\nvirt-v2v: error: internal error: assertion failed at linux_kernels.ml, line 190, char 11\n\n=item L<https://bugzilla.redhat.com/2112801>\n\nRHEL9 guest hangs during boot after conversion by virt-p2v\n\n=item L<https://bugzilla.redhat.com/2107503>\n\nRHEL 8.6 VM with \"qemu64\" CPU model can't start because \"the CPU is incompatible with host CPU: Host CPU does not provide required features: svm\"\n\n=item L<https://bugzilla.redhat.com/2101665>\n\n\"/dev/nvme0n1\" is not remapped to \"/dev/vda\" (etc) in boot config files such as \"/boot/grub2/device.map\"\n\n=item L<https://bugzilla.redhat.com/2089623>\n\nVirt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\n\n=item L<https://bugzilla.redhat.com/2082603>\n\nvirt-v2v -o qemu prints cosmetic warning: \"warning: short-form boolean option 'readonly' deprecated\"\n\n=item L<https://bugzilla.redhat.com/2076013>\n\nRHEL9.1 guest can't boot into OS after v2v conversion\n\n=item L<https://bugzilla.redhat.com/2074805>\n\n-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and other problems\n\n=item L<https://bugzilla.redhat.com/2074801>\n\ndo not pass \"--non-bootable --read-write\" to \"volume create \" in openstack output module\n\n=item L<https://bugzilla.redhat.com/2070530>\n\nVirt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\n\n=item L<https://bugzilla.redhat.com/2070186>\n\nfix virtio-vsock check (for Linux guests) in virt-v2v\n\n=item L<https://bugzilla.redhat.com/2069768>\n\nImport of OVA fails if the user/group name contains spaces\n\n=item L<https://bugzilla.redhat.com/2066773>\n\nThe /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\n\n=item L<https://bugzilla.redhat.com/2062360>\n\nRFE: Virt-v2v should replace hairy \"enable LEGACY crypto\" advice which a more targeted mechanism\n\n=item L<https://bugzilla.redhat.com/2059287>\n\nRFE: Rebase virt-v2v to 2.0 in RHEL 9.1\n\n=item L<https://bugzilla.redhat.com/2051564>\n\n[RFE]Limiting the maximum number of disks per guest for v2v conversions\n\n=item L<https://bugzilla.redhat.com/2047660>\n\nAdd '--compressed' support in modular v2v\n\n=item L<https://bugzilla.redhat.com/2028764>\n\nInstall the qemu-guest-agent package during the conversion process\n\n=item L<https://bugzilla.redhat.com/2003503>\n\nThere is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\n\n=item L<https://bugzilla.redhat.com/1985827>\n\nStart or remove VM failure even v2v has already finished\n\n=item L<https://bugzilla.redhat.com/1953286>\n\nNo error shows when using virt-v2v -o rhv to convert guest to data domain\n\n=item L<https://bugzilla.redhat.com/1938954>\n\n-i vmx -it ssh: document percent encoding in ssh URIs\n\n=item L<https://bugzilla.redhat.com/1883802>\n\n-i vmx: SATA disks are not parsed\n\n=item L<https://bugzilla.redhat.com/1854275>\n\ndocument that vmx+ssh \"-ip\" auth doesn't cover ssh / scp shell commands\n\n=item L<https://bugzilla.redhat.com/1817050>\n\nCan't convert guest from VMware with non-admin account and vddk >=7.0  by virt-v2v\n\n=item L<https://bugzilla.redhat.com/1774386>\n\ninput_vmx: cleanly reject guests with snapshots when using \"-it ssh\"\n\n=back\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>,\nL<virt-v2v-release-notes-2.0(1)>,\nL<virt-v2v-release-notes-1.42(1)>,\nL<guestfs-release-notes-1.40(1)>.\n\n=head1 AUTHORS\n\nAuthors of virt-v2v 2.2:\n\n=begin comment\n\ngit shortlog -s v2.0.0..\n\n=end comment\n\n=over 4\n\n=item Andrey Drobyshev\n\n=item Emilio Herrera\n\n=item Ettore Atalan\n\n=item Hela Basa\n\n=item Jan Kuparinen\n\n=item Laszlo Ersek\n\n=item Marcin Stanclik\n\n=item Ming Xie\n\n=item Pavel Borecki\n\n=item Piotr Drąg\n\n=item Richard W.M. Jones\n\n=item Ricky Tigg\n\n=item Temuri Doghonadze\n\n=item Tim Kent\n\n=item Tomáš Golembiovský\n\n=item Yuri Chornoivan\n\n=back\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "docs/virt-v2v-release-notes-2.4.pod",
    "content": "=head1 NAME\n\nvirt-v2v-release-notes - virt-v2v release notes for 2.4\n\n=head1 DESCRIPTION\n\nThese are the release notes for S<B<virt-v2v 2.4>>.\nThis describes the major changes since 2.2.\n\nVirt-v2v 2.4.0 was released on S<B<5 January 2024>>.\n\n=begin comment\n\n=head2 Security\n\n=end comment\n\n=head2 New features\n\nNew I<--block-driver> option which can be used to choose to install\neither virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\n\nThe virt-v2v I<--key> option now recognizes LVM names like\nF</dev/mapper/rhel_bootp--73--75--123-root> (Laszlo Ersek).\n\nThe I<--key> option also supports a new S<I<--key all:...>> selector\nto try the same key on all devices.\n\n=head2 Feature removed\n\nSupport for RHEL 3 conversions has been removed.\n\n=head2 Other fixes\n\nConversions now set the C<host-model> CPU in the output metadata,\nexcept where the source hypervisor overrides this.  The exception is\nI<-o qemu> mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo\nErsek, Dr. David Alan Gilbert, Daniel Berrangé)\n\nvirt-v2v will now look for bootloader configuration in\nF</boot/grub/grub.cfg> for UEFI guests (Andrey Drobyshev).\n\nInvoke pnputil (if available) to install drivers, fixing some Windows\nconversions (Andrey Drobyshev).\n\nSkip SELinux relabelling if the guest has disabled SELinux (Roman\nKagan).\n\nSeveral output modes now generate metadata to indicate whether the\nguest requires the RTC to be set to UTC (Linux) or localtime (most\nWindows).  For example with I<-o libvirt> this generates\nS<E<lt>clock offset=\"utc|localtime\"/E<gt>>.  (Thanks Lee Garrett,\nLaszlo Ersek)\n\nI<-i ova> mode is now less strict about parsing the manifest file,\nwhich helps when converting some non-conforming OVA files.\n\nInput modes using I<-it ssh> now use the correct quoting (thanks Bill\nSanders, Laszlo Ersek).\n\nI<-i vmx> mode now rejects VMDK files explicitly, reducing a source of\nuser confusion (thanks Ming Xie).\n\nMultiple fixes to I<-o kubevirt> mode.  Also implement I<-oo\ncompressed> for this mode.  (Thanks Xiaodai Wang, Ming Xie)\n\nI<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\n\nI<-o openstack> documentation for cloud configurations fixed (thanks\nMing Xie).\n\nI<-o rhv-upload> mode has an improved error when the I<-os> parameter\nis invalid or missing (thanks Junqin Zhou).\n\n=head2 Build changes\n\nSupport for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks\nGuillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel,\nVincent Laviron).\n\nFix several tests so they can handle the case where the operating\nsystem does not support btrfs or NTFS, instead of failing (Laszlo\nErsek).\n\nFix compatibility issues with libxml2 2.12.\n\n=head2 Internals\n\nFix an off-by-one error which caused very rare crashes in virt-v2v.\n\n=head2 Bugs fixed\n\n=begin comment\n\nhttps_proxy= ./bugs-in-changelog.sh v2.2.0..\n\n=end comment\n\n=over 4\n\n=item L<https://bugzilla.redhat.com/2182024>\n\nimprove UX when running as root and we can't chown v2v tmpdir or socks\n\n=item L<https://bugzilla.redhat.com/2175703>\n\nvirt-v2v failed to inspect RHEL9.2 guest due to kernel-core /\nkernel-modules-core subpackage split\n\n=item L<https://bugzilla.redhat.com/2172075>\n\nModify virt-v2v-output-openstack man page to add cloud.yaml related\ninformation\n\n=item L<https://bugzilla.redhat.com/2168506>\n\nRFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel\nboot--73--75--123-root' in related keys option\n\n=item L<https://bugzilla.redhat.com/2168082>\n\nwin11/2022 failed to start into OS after converting to local libvirt\nvia virt-v2v on AMD EPYC-Milan CPU model host\n\n=item L<https://bugzilla.redhat.com/2166619>\n\nkernel panic when booting into OS with rocky9 guest converted by v2v\nto local libvirt\n\n=item L<https://bugzilla.redhat.com/2166618>\n\nThere is virt-v2v: warning: unknown guest operating system: linux\nrocky 9.1 x86_64 when convert rocky guests to local libvirt\n\n=item L<https://bugzilla.redhat.com/2162444>\n\nEnable '--oo compressed' for -o kubevirt\n\n=item L<https://bugzilla.redhat.com/2162332>\n\n-o kubevirt mode must rename guest to comply with KubeVirt\nrequirements: metadata.name: Invalid value: \"esx8.0-rhel8.8-x86_64\":\na lowercase RFC 1123 subdomain must consist of lower case\nalphanumeric characters, '-' or '.', and must start and end with an a\n\n=item L<https://bugzilla.redhat.com/1986386>\n\nImprove error message when converting to rhv using the wrong data\ndomain name which has a specific character\n\n=back\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>.\n\n=head1 AUTHORS\n\nAuthors of virt-v2v 2.4:\n\n=begin comment\n\ngit shortlog -s v2.2.0..\n\n=end comment\n\n=over 4\n\n=item Andrey Drobyshev\n\n=item Emilio Herrera\n\n=item grimst\n\n=item HATAYAMA Daisuke\n\n=item Jan Kuparinen\n\n=item Jürgen Hötzel\n\n=item Laszlo Ersek\n\n=item Pavel Borecki\n\n=item Piotr Drąg\n\n=item Richard W.M. Jones\n\n=item Roman Kagan\n\n=item Temuri Doghonadze\n\n=item Yuri Chornoivan\n\n=back\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "docs/virt-v2v-release-notes-2.6.pod",
    "content": "=head1 NAME\n\nvirt-v2v-release-notes - virt-v2v release notes for 2.6\n\n=head1 DESCRIPTION\n\nThese are the release notes for S<B<virt-v2v 2.6>>.\nThis describes the major changes since 2.4.\n\nVirt-v2v 2.6.0 was released on S<B<8 October 2024>>.\n\n=begin comment\n\n=head2 Security\n\n=end comment\n\n=head2 New features\n\nYou can now use most L<virt-customize(1)> options, such as installing\narbitrary firstboot scripts, uploading or editing files, etc. during\nconversions.\n\nInstallation of QEMU Guest Agent in Windows guests has been revised\nand made much more reliable.  Note that a visible effect of this\nchange is that Windows guests may reboot four or more times during the\nfirst boot after conversion (which is necessary).  (Thanks Vadim\nRozenfeld, Konstantin Kostiuk, Yuri Benditovich, Yan Vugenfirer).\n\nWe now forcibly online all virtio disks during firstboot, working\naround a security mitigation in recent versions of Windows that\nofflines them if they change bus (Martin Necas).\n\nQEMU Balloon Server (blnsvr) is now installed in Windows guests, if\nfound on the virtio-win ISO.  This improves statistics gathering for\nthese guests.\n\nAdd support for Circle Linux (Bella Zhang).\n\nAdd some support for LoongArch guests (liuxiang).\n\n=begin comment\n\n=head2 Feature removed\n\n=end comment\n\n=head2 Other fixes\n\nI<-i ova> mode now uses the detected guest firmware, if it's not\nspecified in the OVA metadata (Bella Khizgiyaev).\n\nI<-o kubevirt> output mode has been substantially changed to fix\nmultiple problems.  It should be more compatible with real KubeVirt\ninstances now.  (Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood,\nMartin Necas).\n\nI<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute\nspecifying whether the guest needs BIOS or UEFI to boot.\n\nThe output of L<virt-v2v-inspector(1)> has been revised, with much\nmore metadata available.\n\nThe I<--mac> option now allows the gateway and network mask length to\nbe empty (Arik Hadas).\n\nThe debug output of virt-v2v has been improved.  Now when searching\nthe log for important events, you can just use the regular expression\nC</^info:/>\n\n=head2 Build changes\n\nWe no longer require external ssh/scp commands for input mode I<-i\nvmx>.  Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new\nrequirement as it is already being used for file transfer).  This\nmakes remote file detection more predictable, and also allows the\nI<-ip> option to be used to specify a password.  (Thanks Ming Xie,\nLaszlo Ersek).\n\nOCaml bytecode compilation now outputs the whole exe to make it more\nresistant to being stripped (Jerry James).\n\nMultiple test files which were copied over from libguestfs but not\nactually used by virt-v2v tests have been deleted.\n\n=head2 Internals\n\nAdded a test for I<-o kubevirt> mode.\n\n=head2 Bugs fixed\n\n=begin comment\n\n./bugs-in-changelog.sh v2.4.0..\n\n=end comment\n\n=over 4\n\n=item L<https://bugzilla.redhat.com/1854275>\n\ndocument that vmx+ssh \"-ip\" auth doesn't cover ssh / scp shell commands\n\n=item L<https://issues.redhat.com/browse/RHEL-21365>\n\nExact string (including the literal *) should be used when converting\nguest via vmx by v2v\n\n=item L<https://issues.redhat.com/browse/RHEL-28197>\n\nMissing firmware type for kubvirt and local output\n\n=item L<https://issues.redhat.com/browse/RHEL-33699>\n\nVirt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\n\n=item L<https://issues.redhat.com/browse/RHEL-36591>\n\nMigrated Windows VMs require the BLNSVR.exe service to be installed\nfor accurate memory reporting\n\n=item L<https://issues.redhat.com/browse/RHEL-45527>\n\nRe-add the info about non-interactive authentication back into\nvirt-v2v-input-xen\n\n=item L<https://issues.redhat.com/browse/RHEL-45992>\n\nMissing OS info for kubevirt output\n\n=item L<https://issues.redhat.com/browse/RHEL-49761>\n\nqemu-guest-agent not being installed at first boot in Windows Server 2022\n\n=item L<https://issues.redhat.com/browse/RHEL-50731>\n\nAllow --mac gw and len fields to be optional\n\n=item L<https://issues.redhat.com/browse/RHEL-51169>\n\nUninstalling vmware-tools from windows guest sometimes fails with exit\ncode 1618 or exit code 1603\n\n=item L<https://issues.redhat.com/browse/RHEL-53990>\n\nnetwork configuration script does not work for Windows 10 i386 guest\n\n=item L<https://issues.redhat.com/browse/RHEL-55763>\n\nRe-enable Windows disks post-live migration [rhel-9.5]\n\n=item L<https://issues.redhat.com/browse/RHEL-55837>\n\nRe-enable Windows disks post-live migration [rhel-9.4.z]\n\n=item L<https://issues.redhat.com/browse/RHEL-56784>\n\nwindow version shows incorrect during converting win11 guest with\nbuild number 22631 by virt-v2v\n\n=item L<https://issues.redhat.com/browse/RHEL-58065>\n\nv2v: The -o kubevirt firmware is not compatible with kubevirt api\n\n=item L<https://github.com/libguestfs/virt-v2v/issues/42>\n\nrhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\n\n=item L<https://github.com/libguestfs/virt-v2v/issues/45>\n\nvirt-v2v missing firmware type for kubvirt and local output\n\n=item L<https://github.com/libguestfs/virt-v2v/issues/46>\n\nClustername not working when on same Data Center, sharing same storage\ndomains\n\n=back\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>.\n\n=head1 AUTHORS\n\nAuthors of virt-v2v 2.6:\n\n=begin comment\n\ngit shortlog -s v2.4.0..\n\n=end comment\n\n=over 4\n\n=item Andi Chandler\n\n=item Bella Khizgiyaev\n\n=item Bella Zhang\n\n=item Jerry James\n\n=item liuxiang\n\n=item Nir Soffer\n\n=item Richard W.M. Jones\n\n=item Schamane187\n\n=item Thorsten Bolten\n\n=item Yuri Chornoivan\n\n=back\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "docs/virt-v2v-release-notes-2.8.pod",
    "content": "=head1 NAME\n\nvirt-v2v-release-notes - virt-v2v release notes for 2.8\n\n=head1 DESCRIPTION\n\nThese are the release notes for S<B<virt-v2v 2.8>>.\nThis describes the major changes since 2.6.\n\nVirt-v2v 2.8.0 was released on S<B<11th June 2025>>.\n\n=begin comment\n\n=head2 Security\n\n=end comment\n\n=head2 New features\n\nNew L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v\nsource and run a user program on it.  For example L<virt-inspector(1)>\nor L<guestfish(1)> can be used to examine the source to discover what\noperating systems or files are present before conversion.\n\nWindows Server 2025 is supported (thanks Ming Xie).\n\nTwo features have been added to enhance data integrity.  Firstly you\ncan specify a C<E<lt>checksumE<gt>> field for each input disk (when\nimporting from libvirt).  Virt-v2v will verify the checksum of the\nactual disk matches the expected checksum.  Secondly virt-v2v in debug\nmode now computes the blkhash (a type of checksum) of the converted\ndisk and prints it out, allowing you to compare the blkhash with the\nfinal output.\n\nThe UEFI secureboot property is now modelled correctly, and (for\noutputs which support it) is reflected in the output metadata (thanks\nDaniel Berrange, Andrea Bolognani, Ming Xie).\n\nParallel disk copies are now possible, using the I<--parallel=N>\noption.  The default behaviour is still to do serial copies.\n\nL<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the\nsame output as L<virt-v2v-inspector(1)>, allowing callers to combine\nboth passes into one.\n\nVirtio-win driver selection has been made more robust.  It now selects\nthe correct drivers to install in more cases, and avoids installing\nunnecessary debugging and SRIOV files.  Libosinfo is no longer used\nfor this as the osinfo metadata used had grown out of date.  (Cole\nRobinson)\n\nWe now check filesystem integrity (using tools like L<fsck(8)>) before\nand after conversion, to ensure both that we fully understand the\nfilesystem before conversion and that no corruption has happened\nduring conversion.  At the moment this is only implemented for Btrfs,\next4 and XFS.\n\n=head2 Features removed\n\nHandling of I<kmod-xenpv> has been removed.  This only applied to RHEL\n3 and RHEL 4 guests being converted from very ancient versions of Xen\n(Cole Robinson).\n\nSome options that have been deprecated since 2018 and earlier were\nremoved:\n\n=over 4\n\n=item I<--compressed>\n\nUse I<-oo compressed> instead.\n\n=item I<--no-trim>\n\nThis did nothing.\n\n=item I<--password-file>\n\nUse I<--ip> instead.\n\n=item I<--qemu-boot>\n\nUse I<-oo qemu-boot> instead.\n\n=item I<--vddk-*>\n\nUse I<--io vddk-*> instead.\n\n=item I<--vdsm-*>\n\nUse I<--oo vdsm-*> instead.\n\n=item I<--vmtype>\n\nThis did nothing.\n\n=back\n\nThe options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o\novirt-upload> and I<-o ovirt> respectively, although aliases for the\nother names remain.\n\n=head2 Other fixes\n\nUpdate support page to cover RHEL 10 and Windows Server 2025.\n\nWhen importing from libvirt sources, trim whitespace from around the\nC<E<lt>nameE<gt>> element, rather than creating a guest name\ncontaining that whitespace.\n\nWe no longer overwrite the EFI grub2 wrapper file\n(F</boot/efi/EFI/E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL\nE<ge> 9.0.\n\nWhen removing packages during conversion, use yum, apt, and similar\ntools so that dependencies are also removed (Cole Robinson).\n\nWhen some rpm commands run in the context of the guest produced more\nthan 4MB of output, virt-v2v conversions would fail.  This has now\nbeen fixed (thanks Nijin Ashok).\n\nVirt-v2v is now compatible with guests that use dnf5.\n\nI<-i vmx> mode now supports importing guests with SATA-emulated disks.\n\nConverting from a VMware snapshot is now possible, when using VDDK,\nusing the I<io vddk-file=...> options (thanks Martin Necas).\n\nConversion failures when guest F</etc/resolv.conf> is immutable are\ncommon enough that we have now documented this problem in the manual\n(thanks Dan Clark).\n\nDebug information now contains much more readable information about\nguest mountpoints, similar to the output of L<virt-df(1)>.\n\nI<-o libvirt> mode no longer generates its own osinfo short IDs.\nInstead we use the osinfo short IDs from libguestfs inspection (Cole\nRobinson).\n\nDocument how to activate Bitlocker for Windows 11 with vTPM\n(thanks Ming Xie).\n\n=head2 Build changes\n\njson-c is now required.  This replaces Jansson which was previously\nused for parsing JSON input files.\n\nlibguestfs E<ge> 1.56 is now required.\n\nOCaml E<ge> 4.08 is now required.\n\nlibnbd E<ge> 1.14 is now required.\n\nnbdkit E<ge> 1.28 is now required, although it is better to use more\nrecent versions where possible.\n\nOCaml oUnit is no longer used.\n\nWe now assume that C<__attribute__((cleanup))> always works.  This\nrequires gcc or Clang.\n\nThe configure option I<--with-virt-v2v-nbdkit-python-plugin> has been\nremoved.  It was only needed for very old versions of nbdkit and\nPython.\n\nTests should no longer break if ntfs-3g is not supported by\nlibguestfs.\n\nFix compatibility with GNU gettext 0.25.\n\n=head2 Internals\n\nThe tests were modified to use a set of common functions and remove\nuse of the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in\nnbdkit.\n\nThe way we generate the phony virtio-win drivers (for testing) has\nbeen simplified.  Also there are new regression tests to ensure that\nvirt-v2v installs the correct set of driver files.  (Cole Robinson).\n\nPhony Windows guests are now generated for several different versions\nof Windows, allowing more broad testing (Cole Robinson).\n\nSome deprecated autoconf macros are no longer used.\n\nL<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help\nperformance now that we have switched to using L<nbdcopy(1)> (thanks\nMartin Kletzander).\n\nWith multi-disk guests, in some common cases we are now able to use a\nsingle L<nbdkit(1)> instance to read or write all disks, instead of\nneeding to run an nbdkit instance per disk, which can greatly reduce\nthe number of external processes that virt-v2v will run.  The\nperformance and results should not be different.  To take full\nadvantage of this you have to use nbdkit E<ge> 1.44.\n\nSeveral typos and spelling mistakes in the documentation were fixed\n(thanks Eric Blake).\n\nDuplicated code used to parse input (I<-i>) and output (I<-o>) options\nacross the tools has been refactored in one place.\n\nSome internal OCaml List and String functions that we used have been\nreplaced by ones from the OCaml stdlib, reducing code maintenance.\n\n=head2 Bugs fixed\n\n=begin comment\n\n./bugs-in-changelog.sh v2.6.0..\n\n# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\n\n=end comment\n\n=over 4\n\n=item L<https://issues.redhat.com/browse/MTV-2256>\n\nDocument issues with upgrading Windows guests after conversion\n\n=item L<https://issues.redhat.com/browse/RHEL-32099>\n\nHarden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\n\n=item L<https://issues.redhat.com/browse/RHEL-39077>\n\nv2v can't convert the guest if info \"add_dracutmodules+=\"\nnetwork-legacy \" is added to network-legacy.conf [rhel-9.6]\n\n=item L<https://issues.redhat.com/browse/RHEL-58032>\n\nv2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\n\n=item L<https://issues.redhat.com/browse/RHEL-65009>\n\nCan't find drivers from virtio-win for win2025 guests during v2v\nconversion [rhel 10.0]\n\n=item L<https://issues.redhat.com/browse/RHEL-65010>\n\nCan't find drivers from virtio-win for win2025 guests during v2v\nconversion [rhel 9.6]\n\n=item L<https://issues.redhat.com/browse/RHEL-66197>\n\n[MTV] migration failed with module \"network-legacy\" configured in RHEL\n8 guests\n\n=item L<https://issues.redhat.com/browse/RHEL-67007>\n\n[RFE] Add secureboot info in kubevirt output [rhel-9.7]\n\n=item L<https://issues.redhat.com/browse/RHEL-67836>\n\nRFE: Get the uefi.secureBoot.enabled setting from VMware sources\n[rhel-9.6]\n\n=item L<https://issues.redhat.com/browse/RHEL-71522>\n\nMigration Plan / vddk pod cannot remove open-vm-tools in case of\ndependencies [rhel-9.6]\n\n=item L<https://issues.redhat.com/browse/RHEL-77989>\n\nCentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\n\n=item L<https://issues.redhat.com/browse/RHEL-80080>\n\nConverting a SUSE VM will fail if the kernel-source package is\ninstalled in the source VM\n\n=item L<https://issues.redhat.com/browse/RHEL-85508>\n\nImprove checksumming and data consistency checks in virt-v2v, libnbd,\nnbdkit\n\n=item L<https://issues.redhat.com/browse/RHEL-85512>\n\nPrint blkhash of converted image in virt-v2v debugging output [9.7]\n\n=item L<https://issues.redhat.com/browse/RHEL-85514>\n\nPrint blkhash of converted image in virt-v2v debugging output [10.1]\n\n=item L<https://issues.redhat.com/browse/RHEL-86022>\n\nThere is no nbdcopy info in v2v debug log since virt-v2v version\n2.7.1-2 [rhel-9.7]\n\n=item L<https://issues.redhat.com/browse/RHEL-88543>\n\nvirt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\n\n=item L<https://issues.redhat.com/browse/RHEL-88985>\n\nAdd possible roots to the virt-v2v-inspector output [rhel-9.7]\n\n=item L<https://issues.redhat.com/browse/RHEL-70840>\n\nv2v can't convert win11-efi-secure guest with vtpm: \"Activation of\npartially decrypted BITLK device is not supported\" [rhel-9.6]\n\n=item L<https://github.com/libguestfs/virt-v2v/issues/79>\n\nvirt-v2v 2.7.4 error: libguestfs error: you must call\nguestfs_add_drive before guestfs_launch\n\n=item L<https://github.com/libguestfs/virt-v2v/issues/86>\n\nRename RHV to oVirt\n\n=back\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>.\n\n=head1 AUTHORS\n\nAuthors of virt-v2v 2.8:\n\n=begin comment\n\ngit shortlog -s v2.6.0..\n\n=end comment\n\n=over 4\n\n=item Cole Robinson\n\n=item Krascovict Petrov\n\n=item Richard W.M. Jones\n\n=item Ricky Tigg\n\n=item Yuri Chornoivan\n\n=back\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "docs/virt-v2v-support.pod",
    "content": "=head1 NAME\n\nvirt-v2v-support - Supported hypervisors, virtualization management\nsystems and guests in virt-v2v\n\n=head1 DESCRIPTION\n\nThis page documents which foreign hypervisors, virtualization\nmanagement systems and guest types that L<virt-v2v(1)> can support.\n\nNote this page applies to upstream virt-v2v from\nL<http://libguestfs.org> and in downstream distributions of virt-v2v\nsometimes features are intentionally removed, or are present but not\nsupported.\n\n=head2 Hypervisors (Input)\n\n=over 4\n\n=item VMware ESXi\n\nMust be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\n\n=item OVA exported from VMware\n\nOVAs from other hypervisors will not work.\n\n=item VMX from VMware\n\nVMX files generated by other hypervisors will not work.\n\n=item RHEL 5 Xen\n\n=item SUSE Xen\n\n=item Citrix Xen\n\nCitrix Xen has not been recently tested.\n\n=item Hyper-V\n\nNot recently tested.  Requires that you export the disk or use\nL<virt-p2v(1)> on Hyper-V.\n\n=item Direct from disk images\n\nOnly disk images exported from supported hypervisors, and using\ncontainer formats supported by qemu.\n\n=item Physical machines\n\nUsing the L<virt-p2v(1)> tool.\n\n=back\n\n=head2 Hypervisors (Output)\n\nQEMU and KVM only.\n\n=head2 Virtualization management systems (Output)\n\n=over 4\n\n=item OpenStack\n\n=item oVirt 4.1 and up\n\n=item Local libvirt\n\nAnd hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\n\n=item Local disk\n\n=back\n\n=head2 Guests\n\n=over 4\n\n=item Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\n\n=item CentOS 4, 5, 6, 7, 8, 9, 10\n\n=item Scientific Linux 4, 5, 6, 7\n\n=item Oracle Linux\n\n=item Fedora\n\n=item SLES 10 and up\n\n=item OpenSUSE 10 and up\n\n=item ALT Linux 9 and up\n\n=item Debian 6 and up\n\n=item Ubuntu 10.04, 12.04, 14.04, 16.04, and up\n\n=item Windows XP to Windows 11 / Windows Server 2025\n\n=back\n\n=head2 Guest firmware\n\nBIOS is supported for all guest types and hypervisors.\n\nVMware allows you to present UEFI firmware to guests (instead of the\nordinary PC BIOS).  Virt-v2v can convert these guests, but requires\nthat UEFI is supported by the target hypervisor.\n\nCurrently KVM supports OVMF, an open source UEFI firmware, and can run\nthese guests.\n\nSince OVMF support was only recently added to KVM (in 2014/2015), not\nall target environments support UEFI guests yet:\n\n=over 4\n\n=item UEFI on libvirt, qemu\n\nSupported.  Virt-v2v will generate the correct libvirt XML (metadata)\nautomatically, but note that the same version of OVMF must be\ninstalled on the conversion host as is installed on the target\nhypervisor, else you will have to adjust paths in the metadata.\n\n=item UEFI on OpenStack\n\nSupported since virt-v2v E<ge> 1.43.2.\n\n=item UEFI on oVirt\n\nSupported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\n\n=back\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>,\nL<http://libguestfs.org>.\n\n=head1 AUTHOR\n\nRichard W.M. Jones\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "docs/virt-v2v.pod",
    "content": "=head1 NAME\n\nvirt-v2v - Convert a guest to use KVM\n\n=head1 SYNOPSIS\n\n virt-v2v [-i mode] [other -i* options]\n          [-o mode] [other -o* options]\n          [virt-customize options]\n          [guest|filename]\n\n=head1 DESCRIPTION\n\nVirt-v2v converts a single guest from a foreign hypervisor to run on\nKVM.  It can read Linux and Windows guests running on VMware,\nifelse(ENABLE_XEN, yes, Xen,) Hyper-V and some other hypervisors, and\nconvert them to KVM managed by libvirt, OpenStack,\nifelse(ENABLE_OVIRT, yes, oVirt,) or several other targets.  It can\nmodify the guest to make it bootable on KVM and install virtio drivers\nso it will run quickly.\n\nThere is also a companion front-end called L<virt-p2v(1)> which comes\nas an ISO, CD or PXE image that can be booted on physical machines to\nvirtualize those machines (physical to virtual, or p2v).\n\nTo estimate the disk space needed before conversion, see\nL<virt-v2v-inspector(1)>.\n\nFor in-place conversion, there is a separate tool called\nL<virt-v2v-in-place(1)>.\n\n=head2 Input and Output\n\nYou normally run virt-v2v with several I<-i*> options controlling the\ninput mode and also several I<-o*> options controlling the output\nmode.  In this sense, \"input\" refers to the source foreign hypervisor\nsuch as VMware, and \"output\" refers to the target KVM-based management\nsystem such as oVirt or OpenStack.\n\nThe input and output sides of virt-v2v are separate and unrelated.\nVirt-v2v can read from any input and write to any output.  Therefore\nthese sides of virt-v2v are documented separately in this manual.\n\nVirt-v2v normally copies from the input to the output, called \"copying\nmode\".  In this case the source guest is always left unchanged.\nIn-place conversions may be done using L<virt-v2v-in-place(1)>.\n\n=head2 Customization\n\nVirt-v2v can also customize the guest during conversion, using the\nsame options as L<virt-customize(1)>.  For example, injecting files\nusing I<--upload>, or using I<--firstboot-script> to add additional\nscript(s) to run at the first boot after conversion.  Read the\nvirt-customize manual for more information on this topic.\n\n=head2 Other virt-v2v topics\n\nL<virt-v2v-support(1)> — Supported hypervisors, virtualization\nmanagement systems, guests.\n\nL<virt-v2v-input-vmware(1)> — Input from VMware.\n\nifelse(ENABLE_XEN, yes, `\nL<virt-v2v-input-xen(1)> — Input from Xen.\n')\n\nL<virt-v2v-output-local(1)> — Output to local files or local libvirt.\n\nifelse(ENABLE_OVIRT, yes,`\nL<virt-v2v-output-ovirt(1)> — Output to oVirt\n')\n\nL<virt-v2v-output-openstack(1)> — Output to OpenStack.\n\nL<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\n\nL<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\n\nL<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\n\nL<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\n\nL<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\n\nL<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\n\nL<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\n\n=head1 EXAMPLES\n\n=head2 Convert from VMware vCenter server to local libvirt\n\nYou have a VMware vCenter server called C<vcenter.example.com>, a\ndatacenter called C<Datacenter>, and an ESXi hypervisor called\nC<esxi>.  You want to convert a guest called C<vmware_guest> to run\nlocally under libvirt.\n\n virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\n\nIn this case you will most likely have to run virt-v2v as C<root>,\nsince it needs to talk to the system libvirt daemon and copy the guest\ndisks to F</var/lib/libvirt/images>.\n\nFor more information see L<virt-v2v-input-vmware(1)>.\n\nifelse(ENABLE_OVIRT, yes, `\n\n=head2 Convert from VMware to oVirt\n\nThis is the same as the previous example, except you want to send the\nguest to an oVirt Data Domain using the oVirt REST API.  Guest network\ninterface(s) are connected to the target network called C<ovirtmgmt>.\n\n virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\n   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\n   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\n   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\n\nIn this case the host running virt-v2v acts as a B<conversion server>.\n\nFor more information see L<virt-v2v-output-ovirt(1)>.\n')\n\n=head2 Convert from ESXi hypervisor over SSH to local libvirt\n\nYou have an ESXi hypervisor called C<esxi.example.com> with SSH access\nenabled.  You want to convert from VMFS storage on that server to\na local file.\n\n virt-v2v \\\n   -i vmx -it ssh \\\n   \"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\" \\\n   -o local -os /var/tmp\n\nThe guest must not be running.\n\nVirt-v2v does I<not> need to be run as root.\n\nFor more information about converting from VMX files see\nL<virt-v2v-input-vmware(1)>.\n\n=head2 Convert disk image to OpenStack\n\nGiven a disk image from another hypervisor that you want to convert to\nrun on OpenStack (only KVM-based OpenStack is supported), you can run\nvirt-v2v inside an OpenStack VM (called C<v2v-vm> below), and do:\n\n virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\n\nSee L<virt-v2v-output-openstack(1)>.\n\n=head2 Convert disk image to disk image\n\nGiven a disk image from another hypervisor that you want to convert to\nrun on KVM, you have two options.  The simplest way is to try:\n\n virt-v2v -i disk disk.img -o local -os /var/tmp\n\nwhere virt-v2v guesses everything about the input F<disk.img> and (in\nthis case) writes the converted result to F</var/tmp>.\n\nA more complex method is to write some\nL<libvirt XML|http://libvirt.org/formatdomain.html> describing the\ninput guest (if you can get the source hypervisor to provide you with\nlibvirt XML, then so much the better).  You can then do:\n\n virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n\nSince F<guest-domain.xml> contains the path(s) to the guest disk\nimage(s) you do not need to specify the name of the disk image on the\ncommand line.\n\nTo convert a local disk image and immediately boot it in local\nqemu, do:\n\n virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\n\n=head1 OPTIONS\n\n=over 4\n\n=item B<--help>\n\nDisplay help.\n\n=item B<--bandwidth> bps\n\n=item B<--bandwidth-file> filename\n\nSome input methods are able to limit the network bandwidth they will\nuse statically or dynamically.  In the first variant this sets the\nbandwidth limit statically in bits per second.  Formats like C<10M>\nmay be used (meaning 10 megabits per second).\n\nIn the second variant the bandwidth is limited dynamically from the\ncontent of the file (also in bits per second, in the same formats\nsupported by the first variant).  You may use both parameters\ntogether, meaning: first limit to a static rate, then you can create\nthe file while virt-v2v is running to adjust the rate dynamically.\n\nThis is only supported for:\n\n=over 4\n\nifelse(ENABLE_XEN, yes, `\n\n=item *\n\nL<input from Xen|virt-v2v-input-xen(1)>\n')\n\n=item *\n\nL<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX>\nwhen using the SSH transport method\n\n=item *\n\nL<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\n\n=item *\n\nI<-i libvirtxml> when using HTTP or HTTPS disks\n\n=item *\n\nL<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VCENTER SERVER>\n\n=back\n\nThe options are silently ignored for other input methods.\n\n=item B<-b> ...\n\n=item B<--bridge> ...\n\nSee I<--network> below.\n\nifelse(ENABLE_BLOCK_DRIVER, yes, `\n\n=item B<--block-driver> B<virtio-blk>\n\n=item B<--block-driver> B<virtio-scsi>\n\nWhen choosing a block driver for Windows guests, prefer C<virtio-blk> or\nC<virtio-scsi>.  The default is C<virtio-blk>.\n\nNote this has no effect for Linux guests at the moment.  That may be\nadded in future.\n')\n\n=item B<--colors>\n\n=item B<--colours>\n\nUse ANSI colour sequences to colourize messages.  This is the default\nwhen the output is a tty.  If the output of the program is redirected\nto a file, ANSI colour sequences are disabled unless you use this\noption.\n\n=item B<--echo-keys>\n\nWhen prompting for keys and passphrases, virt-v2v normally turns\nechoing off so you cannot see what you are typing.  If you are not\nworried about Tempest attacks and there is no one else in the room you\ncan specify this flag to see what you are typing.\n\nNote this options only applies to keys and passphrases for encrypted\ndevices and partitions, not for passwords used to connect to remote\nservers.\n\n=item B<-i> B<disk> disk [disk ...]\n\nSet the input method to I<disk>.\n\nIn this mode you can read a virtual machine disk image with no\nmetadata.  virt-v2v tries to guess the best default metadata.  This is\nusually adequate but you can get finer control (eg. of memory and\nvCPUs) by using I<-i libvirtxml> instead.\n\nEach disk can be a local file or an C<nbd://> URI if you want to pull\nthe guest disk from an NBD server (see L<nbd_connect_uri(3)> for the\nsupported URI formats).\n\n=item B<-i> B<libvirt> name|UUID\n\nSet the input method to I<libvirt>.  This is the default.\n\nIn this mode you have to specify a libvirt guest name or UUID on the\ncommand line.  You may also specify a libvirt connection URI (see\nI<-ic>).\n\nSee L</Starting the libvirt system instance> below.\n\n=item B<-i> B<libvirtxml> guestB<.xml>\n\nSet the input method to I<libvirtxml>.\n\nIn this mode you have to pass a libvirt XML file on the command line.\nThis file is read in order to get metadata about the source guest\n(such as its name, amount of memory), and also to locate the input\ndisks.  See L</Minimal XML for -i libvirtxml option> below.\n\n=item B<-i> B<local> disk [disk ...]\n\nThis is the same as I<-i disk>.\n\n=item B<-i> B<ova> guestB<.ova>\n\nSet the input method to I<ova>.\n\nIn this mode you can read a VMware ova file.  Virt-v2v will read the\nova manifest file and check the vmdk volumes for validity (checksums)\nas well as analyzing the ovf file, and then convert the guest.  See\nL<virt-v2v-input-vmware(1)>.\n\n=item B<-i> B<vmx> guestB<.vmx>|B<ssh://>...\n\nSet the input method to I<vmx>.\n\nIn this mode you can read a VMware vmx file directly or over SSH.\nThis is useful when VMware VMs are stored on an NFS server which you\ncan mount directly, or where you have access by SSH to an ESXi\nhypervisor.  See L<virt-v2v-input-vmware(1)>.\n\n=item B<-ic> libvirtURI\n\nSpecify a libvirt connection URI to use when reading the guest.  This\nis only used when S<I<-i libvirt>>.\n\nOnly local libvirt connections, or VMware vCenter connections\nifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')\ncan be used.  Other remote libvirt connections will not work in\ngeneral.\n\nSee also: L<virt-v2v-input-vmware(1)>\nifelse(ENABLE_XEN, yes, `, L<virt-v2v-input-xen(1)>')\n\n=item B<-if> format\n\nFor I<-i disk> only, this specifies the format of the input disk\nimage.  For other input methods you should specify the input\nformat in the metadata.\n\n=item B<-io> OPTION=VALUE\n\nSet input option(s) related to the current input mode or transport.\nTo display short help on what options are available you can use:\n\n virt-v2v -it vddk -io \"?\"\n\n=item B<-io vddk-libdir=>LIBDIR\n\nSet the VDDK library directory.  This directory should I<contain>\nsubdirectories called F<include>, F<lib64> etc., but do not include\nF<lib64> actually in the parameter.\n\nIn most cases this parameter is required when using the I<-it vddk>\n(VDDK) transport.  See L<virt-v2v-input-vmware(1)> for details.\n\n=item B<-io vddk-thumbprint=>xx:xx:xx:...\n\nSet the thumbprint of the remote VMware server.\n\nSee L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\n\n=item B<-io vddk-compression=>COMPRESSION\n\n=item B<-io vddk-config=>FILENAME\n\n=item B<-io vddk-cookie=>COOKIE\n\n=item B<-io vddk-file=>FILE\n\n=item B<-io vddk-nfchostport=>PORT\n\n=item B<-io vddk-port=>PORT\n\n=item B<-io vddk-snapshot=>SNAPSHOT-MOREF\n\n=item B<-io vddk-transports=>MODE:MODE:...\n\nWhen using VDDK mode, these options are passed unmodified to the\nL<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.\nDo not use these options unless you know what you are doing.  These\nare all optional.\n\n=item B<-ip> filename\n\nSupply a file containing a password to be used when connecting to the\ntarget hypervisor.  If this is omitted then the input hypervisor may\nask for the password interactively.  Note the file should contain the\nwhole password, B<without any trailing newline>, and for security the\nfile should have mode C<0600> so that others cannot read it.\n\n=item B<-it> B<ssh>\n\nWhen using I<-i vmx>, this enables the ssh transport.\nSee L<virt-v2v-input-vmware(1)>.\n\n=item B<-it> B<vddk>\n\nUse VMware VDDK as a transport to copy the input disks.  See\nL<virt-v2v-input-vmware(1)>.  If you use this parameter then you\nmay need to use other I<-io vddk*> options to specify how to connect\nthrough VDDK.\n\n__INCLUDE:key-option.pod__\n\n__INCLUDE:keys-from-stdin-option.pod__\n\nNote I<--keys-from-stdin> only applies to keys and passphrases for\nencrypted devices and partitions, not for passwords used to connect to\nremote servers.\n\n=item B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\n\n=item B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\n\nMap source NIC MAC address to a network or bridge.\n\nSee L</Networks and bridges> below.\n\n=item B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\n\nForce a particular interface (controlled by its MAC address) to have a\nstatic IP address after boot.\n\nThe fields in the parameter are: C<ipaddr> is the IP address.  C<gw>\nis the optional gateway IP address.  C<len> is the optional subnet\nmask length (an integer).  The final parameters are zero or more\nnameserver IP addresses.\n\nThis option can be supplied zero or more times.\n\nYou only need to use this option for certain broken guests such as\nWindows which are unable to preserve MAC to static IP address mappings\nautomatically.  You don't need to use it if Windows is using DHCP.  It\nis currently ignored for Linux guests since they do not have this\nproblem.\n\n=item B<--machine-readable>\n\n=item B<--machine-readable>=format\n\nThis option is used to make the output more machine friendly\nwhen being parsed by other programs.  See\nL</Machine readable output> below.\n\n=item B<-m> MB\n\n=item B<--memsize> MB\n\nChange the amount of memory allocated when doing the conversion.\nVirt-v2v will usually choose a suitable default.  Increase this if you\nsee that the conversion step is running out of memory.\n\nSee also L</Adjusting memory available for conversion>.\n\n=item B<-n> in:out\n\n=item B<-n> out\n\n=item B<--network> in:out\n\n=item B<--network> out\n\n=item B<-b> in:out\n\n=item B<-b> out\n\n=item B<--bridge> in:out\n\n=item B<--bridge> out\n\nMap network (or bridge) called C<in> to network (or bridge) called\nC<out>.  If no C<in:> prefix is given, all other networks (or bridges)\nare mapped to C<out>.\n\nSee L</Networks and bridges> below.\n\n=item B<--no-fstrim>\n\nDo not trim the filesystem.  See L</Trimming> below.\n\n=item B<-o> B<disk>\n\nThis is the same as I<-o local>.\n\nifelse(ENABLE_GLANCE, yes, `\n\n=item B<-o> B<glance>\n\nThis is a legacy option.  You should probably use I<-o openstack>\ninstead.\n\nSet the output method to OpenStack Glance.  In this mode the converted\nguest is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.\n')\n\n=item B<-o> B<kubevirt>\n\nSet the output method to I<kubevirt>.  B<Note the way this mode works\nis experimental and will change in future.>\n\nIn this mode, the converted guest is written to a local directory\nspecified by I<-os /dir> (the directory must exist).\n\nBy default the converted guest’s disks are written to:\n\n /dir/name-sda\n /dir/name-sdb\n [etc]\n\nand guest metadata is created in the associated YAML file:\n\n /dir/name.yaml\n\nwhere C<name> is the guest name.\n\nYou can override the disk paths by using I<-oo disk=...> option(s).\n\n=item B<-o> B<libvirt>\n\nSet the output method to I<libvirt>.  This is the default.\n\nIn this mode, the converted guest is created as a libvirt guest.  You\nmay also specify a libvirt connection URI (see I<-oc>).\n\nSee L</Starting the libvirt system instance> below, and\nL<virt-v2v-output-local(1)>.\n\n=item B<-o> B<local>\n\nSet the output method to I<local>.\n\nIn this mode, the converted guest is written to a local directory\nspecified by I<-os /dir> (the directory must exist).  The converted\nguest’s disks are written as:\n\n /dir/name-sda\n /dir/name-sdb\n [etc]\n\nand a libvirt XML file is created containing guest metadata:\n\n /dir/name.xml\n\nwhere C<name> is the guest name.\n\n=item B<-o> B<null>\n\nSet the output method to I<null>.\n\nThe guest is converted and copied but the results are thrown away and\nno metadata is written.\n\n=item B<-o> B<openstack>\n\nSet the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\n\nifelse(ENABLE_OVIRT, yes, `\n\n=item B<-o> B<ovirt>\n\nSet the output method to I<ovirt>.\n\nThe converted guest is written to an oVirt Export Storage Domain.  The\nI<-os> parameter must also be used to specify the location of the\nExport Storage Domain.  Note this does not actually import the guest\ninto oVirt.  You have to do that manually later using the UI.\n\nSee L<virt-v2v-output-ovirt(1)>.\n\n=item B<-o> B<ovirt-upload>\n\nSet the output method to I<ovirt-upload>.\n\nThe converted guest is written directly to an oVirt Data Domain.  This\nis a faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\n\nSee L<virt-v2v-output-ovirt(1)>.\n')\n\n=item B<-o> B<qemu>\n\nSet the output method to I<qemu>.\n\nThis is similar to I<-o local>, except that a shell script is written\nwhich you can use to boot the guest in qemu.  The converted disks and\nshell script are written to the directory specified by I<-os>.\n\nWhen using this output mode, you can also specify the I<-oo qemu-boot>\noption which boots the guest under qemu immediately.\n\nifelse(ENABLE_OVIRT, yes, `\n\n=item B<-o> B<vdsm>\n\nSet the output method to I<vdsm>.\n\nThis mode is similar to I<-o ovirt>, but the full path to the\ndata domain must be given:\nF</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-domain-uuidE<gt>>.\nThis mode is only used when virt-v2v runs under VDSM control.\n')\n\n=item B<-oa> B<sparse>\n\n=item B<-oa> B<preallocated>\n\nSet the output file allocation mode.  The default is C<sparse>.\n\n=item B<-oc> URI\n\nSpecify a connection URI to use when writing the converted guest.\n\nFor S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt\nconnections can be used.  Remote libvirt connections will not work.\nSee L<virt-v2v-output-local(1)> for further information.\n\n=item B<-of> format\n\nWhen converting the guest, convert the disks to the given format.\n\nIf not specified, then the input format is used.\n\n=item B<-on> name\n\nRename the guest when converting it.  If this option is not used then\nthe output name is the same as the input name.\n\n=item B<-oo> OPTION=VALUE\n\nSet output option(s) related to the current output mode.\nTo display short help on what options are available you can use:\n\n $ virt-v2v -o libvirt -oo \"?\"\n Output options that can be used with -o libvirt:\n \n  -oo compressed      Compress the output file (used only with\n                      -of qcow2)\n\n=item B<-oo compressed>\n\nFor outputs which support qcow2 format (I<-of qcow2>), this writes a\ncompressed qcow2 file.  It is the equivalent to the I<-c> option of\nL<qemu-img(1)>.\n\n=item B<-oo create=false>\n\nFor I<-o kubevirt>, indicate that another management process will\ncreate the output disks, so do not (re-)create them in virt-v2v.\n\n=item B<-oo disk=>DISK\n\nFor I<-o kubevirt> this overrides the path to each output disk,\ninstead of using the default which is C<DISK-sda> etc in the output\nstorage (I<-os>) path.  If you use this option at all, you must repeat\nit once for each guest disk.  If you don't use it, then the default\nmethod of putting disks in the output storage path is used.\n\n=item B<-oo guest-id=>C<ID>\n\nFor I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID\nwhich is saved on each Cinder volume in the C<virt_v2v_guest_id>\nvolume property.\n\n=item B<-oo qemu-boot>\n\nWhen using I<-o qemu> only, this boots the guest immediately after\nvirt-v2v finishes.\n\n=item B<-oo os->*B<=>*\n\nFor I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional\nOpenStack authentication.  For example I<-oo os-username=>NAME is\nequivalent to C<openstack --os-username=NAME>.\n\nifelse(ENABLE_OVIRT, yes, `\n\n=item B<-oo ovirt-cafile=>F<ca.pem>\n\nFor I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the\nF<ca.pem> file (Certificate Authority), copied from\nF</etc/pki/ovirt-engine/ca.pem> on the oVirt engine.\n\n=item B<-oo ovirt-cluster=>C<CLUSTERNAME>\n\nFor I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the\noVirt Cluster Name.  If not given it uses C<Default>.\n\n=item B<-oo ovirt-proxy>\n\nFor I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the\nupload through oVirt Engine.  This is slower than uploading directly\nto the oVirt node but may be necessary if you do not have direct\nnetwork access to the nodes.\n\n=item B<-oo ovirt-verifypeer>\n\nFor I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the\noVirt server’s identity by checking the server‘s certificate against\nthe Certificate Authority.\n')\n\n=item B<-oo server-id=>C<NAME|UUID>\n\nFor I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name\nof the conversion appliance where virt-v2v is running.\n\nifelse(ENABLE_OVIRT, yes, `\n\n=item B<-oo vdsm-compat=0.10>\n\n=item B<-oo vdsm-compat=1.1>\n\nIf I<-o vdsm> and the output format is qcow2, then we add the qcow2\nI<compat=0.10> option to the output file for compatibility with RHEL 6\n(see L<https://bugzilla.redhat.com/1145582>).\n\nIf I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)\nfiles are generated instead.\n\nCurrently I<-oo vdsm-compat=0.10> is the default, but this will change\nto I<-oo vdsm-compat=1.1> in a future version of virt-v2v (when we can\nassume that everyone is using a modern version of qemu).\n\nB<Note this option only affects I<-o vdsm> output>.  All other output\nmodes (including I<-o ovirt>) generate modern qcow2 I<compat=1.1>\nfiles, always.\n\nIf this option is available, then C<vdsm-compat-option> will appear in\nthe I<--machine-readable> output.\n\n=item B<-oo vdsm-image-uuid=>UUID\n\n=item B<-oo vdsm-vol-uuid=>UUID\n\n=item B<-oo vdsm-vm-uuid=>UUID\n\n=item B<-oo vdsm-ovf-output=>DIR\n\nNormally the oVirt output mode chooses random UUIDs for the target\nguest.  However VDSM needs to control the UUIDs and passes these\nparameters when virt-v2v runs under VDSM control.  The parameters\ncontrol:\n\n=over 4\n\n=item *\n\nthe image directory of each guest disk (I<-oo vdsm-image-uuid>) (this\noption is passed once for each guest disk)\n\n=item *\n\nUUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option\nis passed once for each guest disk)\n\n=item *\n\nthe OVF file name (I<-oo vdsm-vm-uuid>).\n\n=item *\n\nthe OVF output directory (default current directory) (I<-oo vdsm-ovf-output>).\n\n=back\n\nThe format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each\nhex digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\n\nThese options can only be used with I<-o vdsm>.\n\n=item B<-oo vdsm-ovf-flavour=>flavour\n\nThis option controls the format of the OVF generated at the end of conversion.\nCurrently there are two possible flavours:\n\n=over 4\n\n=item ovirtexp\n\nThe OVF format used in oVirt export storage domain.\n\n=item ovirt\n\nThe OVF format understood by oVirt REST API.\n\n=back\n\nFor backward compatibility the default is I<ovirtexp>, but this may change in\nthe future.\n')\n\n=item B<-oo verify-server-certificate>\n\n=item B<-oo verify-server-certificate=>C<true|false>\n\nFor I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can\nbe used to disable SSL certification validation when connecting to\nOpenStack by specifying I<-oo verify-server-certificate=false>.\n\n=item B<-op> file\n\nSupply a file containing a password to be used when connecting to the\ntarget hypervisor.  Note the file should contain the whole password,\nB<without any trailing newline>, and for security the file should have\nmode C<0600> so that others cannot read it.\n\n=item B<-os> storage\n\nThe location of the storage for the converted guest.\n\nFor I<-o libvirt>, this is a libvirt directory pool\n(see S<C<virsh pool-list>>) or pool UUID.\n\nFor I<-o local> and I<-o qemu>, this is a directory name.\nThe directory must exist.\n\nFor I<-o openstack>, this is the optional Cinder volume type.\n\nifelse(ENABLE_OVIRT, yes, `\nFor I<-o ovirt-upload>, this is the name of the destination Storage\nDomain.\n\nFor I<-o ovirt>, this can be an NFS path of the Export Storage Domain\nof the form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\n\n ovirt-storage.example.com:/ovirt/export\n\nThe NFS export must be mountable and writable by the user and host\nrunning virt-v2v, since the virt-v2v program has to actually mount it\nwhen it runs.  So you probably have to run virt-v2v as C<root>.\n\nB<Or:> You can mount the Export Storage Domain yourself, and point\nI<-os> to the mountpoint.  Note that virt-v2v will still need to write\nto this remote directory, so virt-v2v will still need to run as\nC<root>.\n\nYou will get an error if virt-v2v is unable to mount/write to the\nExport Storage Domain.\n')\n\n=item B<--parallel> N\n\nEnable parallel copying if the guest has multiple disks.  I<N> is the\nmaximum number of parallel L<nbdcopy(1)> instances to run.\n\nThe default is to run at most one instance of nbdcopy\n(ie. I<--parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did\ndisk copies one at a time.\n\nWithin each guest disk, nbdcopy tries to copy in parallel if the\nunderlying endpoints support that.  This is not affected by this\ncommand line option.  See the L<nbdcopy(1)> manual page for details.\n\n=item B<--print-source>\n\nPrint information about the source guest and stop.  This option is\nuseful when you are setting up network and bridge maps.\nSee L</Networks and bridges>.\n\n=item B<-q>\n\n=item B<--quiet>\n\nThis disables progress bars and other unnecessary output.\n\n=item B<--root ask>\n\n=item B<--root single>\n\nChoose the root filesystem to be converted.\n\nIn the case where the virtual machine is dual-boot or multi-boot, or\nwhere the VM has other filesystems that look like operating systems,\nthis option can be used to select the root filesystem (a.k.a. C<C:>\ndrive or F</>) of the operating system that is to be converted.  The\nWindows Recovery Console, certain attached DVD drives, and bugs in\nlibguestfs inspection heuristics, can make a guest look like a\nmulti-boot operating system.\n\nEither L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list\nthe roots for a dual-boot or multi-boot VM.\n\nThe default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which\ncauses virt-v2v to die if a multi-boot operating system is found.\n\nSince virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the\nVM is found to be multi-boot, then virt-v2v will stop and list the\npossible root filesystems and ask the user which to use.  This\nrequires that virt-v2v is run interactively.\n\n=item B<--root first>\n\nChoose the first root device in the case of a multi-boot operating\nsystem.  Since this is a heuristic, it may sometimes choose the wrong\none, and it may not choose the default option from the guest\nbootloader.  For predictable results it is better to use\nL<virt-v2v-open(1)> and L<virt-inspector(1)> to inspect the guest and\nthen specify which root you want to convert.\n\n=item B<--root> /dev/sdX\n\n=item B<--root> /dev/VG/LV\n\nName a specific root device to convert, eg. S<I<--root /dev/sda2>>\nwould mean to use the second partition on the first hard drive.  If\nthe named root device does not exist or was not detected as a root\ndevice, then virt-v2v will fail.\n\n=item B<--smp> N\n\nChange the number of virtual CPUs used when doing the conversion.\nVirt-v2v will usually choose a suitable default.\n\nIncreasing this beyond 8 may improve conversion performance, if your\nhost has sufficient physical CPUs.  You may also need to increase the\nmemory size (I<--memsize> option).\n\n=item B<-v>\n\n=item B<--verbose>\n\nEnable verbose messages for debugging.\n\n=item B<-V>\n\n=item B<--version>\n\nDisplay version number and exit.\n\n=item B<--wrap>\n\nWrap error, warning, and informative messages.  This is the default\nwhen the output is a tty.  If the output of the program is redirected\nto a file, wrapping is disabled unless you use this option.\n\n=item B<-x>\n\nEnable tracing of libguestfs API calls.\n\n=back\n\n=head2 Customization options\n\n__CUSTOMIZE_OPTIONS__\n\n=head1 RESOURCE REQUIREMENTS\n\n=head2 Network\n\nThe most important resource for virt-v2v appears to be network\nbandwidth.  Virt-v2v should be able to copy guest data at gigabit\nethernet speeds or greater.\n\nEnsure that the network connections between servers (conversion\nserver, NFS server, vCenter, etc.) are as fast and as low latency as\npossible.\n\n=head2 Disk space\n\nVirt-v2v places potentially large temporary files in\nC<$VIRT_V2V_TMPDIR> (usually F</var/tmp>, see also\nL</ENVIRONMENT VARIABLES> below).  Using tmpfs is a bad idea.\n\nFor each guest disk, an overlay is stored temporarily.  This stores\nthe changes made during conversion, and is used as a cache.  The\noverlays are not particularly large - tens or low hundreds of\nmegabytes per disk is typical.  In addition to the overlay(s), input\nand output methods may use disk space, as outlined in the table below.\n\n=over 4\n\n=item I<-i ova>\n\nThis temporarily places a full copy of the uncompressed source disks\nin C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\n\nifelse(ENABLE_GLANCE, yes, `\n\n=item I<-o glance>\n\nThis temporarily places a full copy of the output disks in\nC<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\n')\n\n=item I<-o local>\n\n=item I<-o qemu>\n\nYou must ensure there is sufficient space in the output directory for\nthe converted guest.\n\n=back\n\nSee also L</Minimum free space check in the host> below.\n\n=head2 VMware vCenter resources\n\nCopying from VMware vCenter is currently quite slow, but we believe\nthis to be an issue with VMware.  Ensuring the VMware ESXi hypervisor\nand vCenter are running on fast hardware with plenty of memory should\nalleviate this.\n\n=head2 Compute power and RAM\n\nVirt-v2v can be run in a virtual machine, but may run faster on bare\nmetal.\n\nVirt-v2v is not especially compute or RAM intensive.  If you are\nrunning many parallel conversions, then you may consider allocating\none CPU core and 2 GB of RAM per running instance.  (You may adjust\nthe amount of memory used by conversion, see the next heading.)\n\n=head2 Adjusting memory available for conversion\n\nVirt-v2v I<--memsize=N> can be used to increase the amount of memory\navailable to do conversion.  This rarely needs to be adjusted, but can\nhelp to workaround some conversion problems.\n\n=head3 Linux: setfiles runs out of memory when relabelling\n\nFor Linux guests that use SELinux, setfiles can run out of memory if a\nsingle directory contains millions of files.  As there is no simple\nway for virt-v2v to detect this problem in advance, you may have to\nuse I<--memsize=4000> (or larger) to convert such guests.  For details\nsee L<https://issues.redhat.com/browse/RHEL-125116>\n\n=head2 Trimming\n\nVirt-v2v attempts to optimize the speed of conversion by ignoring\nguest filesystem data which is not used.  This would include unused\nfilesystem blocks, blocks containing zeroes, and deleted files.\n\nTo do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.\nAs this happens to an overlay placed over the guest data, it does\nB<not> affect the source in any way.\n\nIf this fstrim operation fails, you will see a warning, but virt-v2v\nwill continue anyway.  It may run more slowly (in some cases much more\nslowly), because it is copying the unused parts of the disk.\n\nUnfortunately support for fstrim is not universal, and it also depends\non specific details of the filesystem, partition alignment, and\nbacking storage.  As an example, NTFS filesystems cannot be fstrimmed\nif they occupy a partition which is not aligned to the underlying\nstorage.  That was the default on Windows before Vista.  As another\nexample, VFAT filesystems (used by UEFI guests) cannot be trimmed at\nall.\n\nfstrim support in the Linux kernel is improving gradually, so over\ntime some of these restrictions will be lifted and virt-v2v will work\nfaster.\n\nUse I<--no-fstrim> to disable trimming.\n\n=head2 Free space for conversion\n\n=head3 Free space in the guest\n\nVirt-v2v checks there is sufficient free space in the guest filesystem\nto perform the conversion.  Currently it checks:\n\n=over 4\n\n=item Linux root filesystem\n\nMinimum free space: 100 MB\n\n=item Linux F</boot>\n\nMinimum free space: 50 MB\n\nThis is because we need to build a new initramfs for some Enterprise\nLinux conversions.\n\n=item Windows C<C:> drive\n\nMinimum free space: 100 MB\n\nWe may have to copy in many virtio drivers and guest agents.\n\n=item Any other mountable filesystem\n\nMinimum free space: 10 MB\n\n=back\n\nIn addition to the actual free space, each filesystem is required to\nhave at least 100 available inodes.\n\n=head3 Minimum free space check in the host\n\nYou must have sufficient free space in the host directory used to\nstore large temporary overlays.  To find out which directory this is, use:\n\n $ df -h \"$(guestfish get-cachedir)\"\n Filesystem        Size  Used Avail Use% Mounted on\n /dev/mapper/root   50G   40G  6.8G  86% /\n\nand look under the C<Avail> column.  Virt-v2v will refuse to do the\nconversion at all unless at least 1GB is available there.  You can\nchange the directory that virt-v2v uses by setting\nC<$VIRT_V2V_TMPDIR>.\n\n=head2 Running virt-v2v as root or non-root\n\nNothing in virt-v2v inherently needs root access, and it will run just\nfine as a non-root user.  However, certain external features may\nrequire either root or a special user:\n\n=over 4\n\nifelse(ENABLE_OVIRT, yes, `\n\n=item Mounting the Export Storage Domain\n\nWhen using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient\nprivileges to NFS mount the Export Storage Domain from C<server>.\n\nYou can avoid needing root here by mounting it yourself before running\nvirt-v2v, and passing I<-os /mountpoint> instead, but first of all\nread the next S<section ...>\n\n=item Writing to the Export Storage Domain as 36:36\n\noVirt cannot read files and directories from the Export Storage\nDomain unless they have UID:GID 36:36.  You will see VM import\nproblems if the UID:GID is not correct.\n\nWhen you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create\nfiles and directories with the correct ownership.  If you run virt-v2v\nas non-root, it will probably still work, but you will need to\nmanually change ownership after virt-v2v has finished.\n')\n\n=item Writing to libvirt\n\nWhen using I<-o libvirt>, you may need to run virt-v2v as root so that\nit can write to the libvirt system instance (ie. C<qemu:///system>)\nand to the default location for disk images (usually\nF</var/lib/libvirt/images>).\n\nYou can avoid this by setting up libvirt connection authentication,\nsee L<http://libvirt.org/auth.html>.  Alternatively, use\nI<-oc qemu:///session>, which will write to your per-user libvirt\ninstance.\n\nSee also L</Starting the libvirt system instance>.\n\n=item Writing to Openstack\n\nBecause of how Cinder volumes are presented as F</dev> block devices,\nusing I<-o openstack> normally requires that virt-v2v is run as root.\n\nifelse(ENABLE_GLANCE, yes, `\n\n=item Writing to Glance\n\nThis does I<not> need root (in fact it probably won’t work), but may\nrequire either a special user and/or for you to source a script that\nsets authentication environment variables.  Consult the Glance\ndocumentation.\n')\n\n=item Writing to block devices\n\nThis normally requires root.  See the next section.\n\n=back\n\n=head2 Writing to block devices\n\nSome output modes write to local files.  In general these modes also\nlet you write to block devices, but before you run virt-v2v you may\nhave to arrange for symbolic links to the desired block devices in the\noutput directory.\n\nFor example if using I<-o local -os /dir> then virt-v2v would normally\ncreate files called:\n\n /dir/name-sda     # first disk\n /dir/name-sdb     # second disk\n ...\n /dir/name.xml     # metadata\n\nIf you wish the disks to be written to block devices then you would\nneed to create F</dir/I<name>-sda> (etc) as symlinks to the block\ndevices:\n\n # lvcreate -L 10G -n VolumeForDiskA VG\n # lvcreate -L 6G -n VolumeForDiskB VG\n # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\n # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\n\nNote that you must precreate the correct number of block devices of\nthe correct size.  Typically I<-of raw> has to be used too, but other\nformats such as qcow2 can be useful occasionally so virt-v2v does not\nforce you to use raw on block devices.\n\n=head1 PRE-CONVERSION TASKS\n\n=head2 Remove Anti-Virus (AV) and Group Policy (GPO)\n\nAnti-Virus software and Windows Group Policy is designed to prevent\nthe kind of driver installation and other changes that we may make to\nWindows guests.  It is recommended that you disable or remove this\nbefore conversion.  It may be enabled again after conversion.\n\n=head2 Relax Windows PowerShell ExecutionPolicy\n\nVirt-v2v runs unsigned firstboot PowerShell scripts.  Certain Windows\nPowerShell C<ExecutionPolicy> settings such as C<AllSigned> may cause\nthe scripts to fail to run.\n\nTo find the current policy use the\nL<Get-ExecutionPolicy|https://learn.microsoft.com/en-gb/powershell/module/microsoft.powershell.security/set-executionpolicy>\ncommand:\n\n Get-ExecutionPolicy -List\n\nTo relax the policy use\nL<Set-ExecutionPolicy|https://learn.microsoft.com/en-gb/powershell/module/microsoft.powershell.security/set-executionpolicy>.\nYou can set the policy back after conversion.\n\nSee also:\nL<https:/go.microsoft.com/fwlink/?LinkID=135170>\nL<https://redhat.atlassian.net/browse/MTV-4424>\n\n=head2 The guest should not be running\n\nThe guest must be cleanly shut down before conversion begins, and must\nnot be restarted on the source except if conversion fails.  If the\nguest is running or starts running during conversion then you will end\nup with filesystem corruption in the converted guest.\n\nVirt-v2v tries to ensure the guest is shut down before conversion when\nit can, but sometimes that is not possible.  It is also not possible\nto prevent a guest from being started while conversion is going on, or\nafter a successful conversion.  That must be done by some higher layer\nmanagement tool instead.\n\nIt is possible to convert from a snapshot, but this should only be\ndone to test if a conversion would succeed (with the result being\nthrown away), and you should fully understand what you are doing.\n\n=head1 POST-CONVERSION TASKS\n\n=head2 Guest network configuration\n\nVirt-v2v cannot currently reconfigure a guest’s network configuration.\nIf the converted guest is not connected to the same subnet as the\nsource, its network configuration may have to be updated.  See also\nL<virt-customize(1)>.\n\n=head2 Converting a Windows guest\n\nWhen converting a Windows guests, the conversion process is split into\ntwo stages:\n\n=over\n\n=item 1\n\nOffline conversion.\n\n=item 2\n\nFirst boot.\n\n=back\n\nThe guest will be bootable after the offline conversion stage, but\nwill not yet have all necessary drivers installed to work correctly.\nThese will be installed automatically the first time the guest boots.\n\nB<N.B.> Windows may reboot 4 or more times the first time after\nconversion.  This is required to install the required drivers, guest\nagents, remove VMware Tools, and configure the network.  Take care not\nto interrupt the automatic driver installation process when logging in\nto the guest for the first time, as this may prevent the guest from\nsubsequently booting correctly.\n\n=head2 Removing VMware Tools from Windows guests\n\nVirt-v2v attempts to remove VMware Tools.  For Windows guests this is\nsupposed to happen during the first boot after conversion.\n\nWe use VMware's recommended uninstallation method as that is the\nsafest choice.  Unfortunately this method is known not to work in most\ncases (it makes the assumption that it is running on top of VMware,\nand fails with error 1603).  So VMware Tools must be manually removed\nby some other method.\n\nVMware's officially documented method for manually removing VMware\nTools is here:\nL<https://knowledge.broadcom.com/external/article/315629/clean-uninstallation-of-vmware-tools-in.html>\n\nAnother, unofficial method is described here:\nL<https://gist.github.com/broestls/f872872a00acee2fca02017160840624>\nYou should carefully check this script since it makes very invasive\nchanges to the Windows Registry and filesystem.\n\n=head1 NOTES\n\nifelse(ENABLE_XEN, yes, `\n\n=head2 Xen paravirtualized guests\n\nOlder versions of virt-v2v could turn a Xen paravirtualized (PV) guest\ninto a KVM guest by installing a new kernel.  This version of virt-v2v\ndoes I<not> attempt to install any new kernels.  Instead it will give\nyou an error if there are I<only> Xen PV kernels available.\n\nTherefore before conversion you should check that a regular kernel is\ninstalled.  For some older Linux distributions, this means installing\na kernel from the table below:\n\n RHEL 4         i686 with > 10GB of RAM: install \"kernel-hugemem\"\n                i686 SMP: install \"kernel-smp\"\n                other i686: install \"kernel\"\n                x86-64 SMP with > 8 CPUs: install \"kernel-largesmp\"\n                x86-64 SMP: install \"kernel-smp\"\n                other x86-64: install \"kernel\"\n \n RHEL 5         i686: install \"kernel-PAE\"\n                x86-64: install \"kernel\"\n \n SLES 10        i586 with > 10GB of RAM: install \"kernel-bigsmp\"\n                i586 SMP: install \"kernel-smp\"\n                other i586: install \"kernel-default\"\n                x86-64 SMP: install \"kernel-smp\"\n                other x86-64: install \"kernel-default\"\n \n SLES 11+       i586: install \"kernel-pae\"\n                x86-64: install \"kernel-default\"\n\n Windows        (Does not apply, as there is no Xen PV Windows kernel)\n')\n\n=head2 Enabling virtio\n\n\"Virtio\" is the name for a set of drivers which make disk (block\ndevice), network and other guest operations work much faster on KVM.\n\nOlder versions of virt-v2v could install these drivers for certain\nLinux guests.  This version of virt-v2v does I<not> attempt to install\nnew Linux kernels or drivers, but will warn you if they are not\ninstalled already.\n\nIn order to enable virtio, and hence improve performance of the guest\nafter conversion, you should ensure that the B<minimum> versions of\npackages are installed I<before> conversion, by consulting the table\nbelow.\n\n RHEL 4         kernel >= 2.5.9-89.EL\n                lvm2 >= 2.02.42-5.el4\n                device-mapper >= 1.02.28-2.el4\n                selinux-policy-targeted >= 1.17.30-2.152.el4\n                policycoreutils >= 1.18.1-4.13\n \n RHEL 5         kernel >= 2.6.18-128.el5\n                lvm2 >= 2.02.40-6.el5\n                selinux-policy-targeted >= 2.4.6-203.el5\n \n RHEL 6+        All versions support virtio\n \n Fedora         All versions support virtio\n \n SLES 11+       All versions support virtio\n \n SLES 10        kernel >= 2.6.16.60-0.85.1\n \n OpenSUSE 11+   All versions support virtio\n \n OpenSUSE 10    kernel >= 2.6.25.5-1.1\n\n Debian 6+      All versions support virtio\n\n Ubuntu 10.04+  All versions support virtio\n\n Windows        Drivers are installed from the ISO or directory pointed\n                to by the \"VIRTIO_WIN\" environment variable if present.\n                If the \"VIRTIO_WIN\" environment variable is absent\n                (which is the recommended setting), then drivers are\n                searched for in /usr/share/virtio-win, as installed\n                by the virtio-win RPM.\n\n\n=head2 RHEL 4: SELinux relabel appears to hang forever\n\nIn RHEL E<le> 4.7 there was a bug which causes SELinux relabelling\nto appear to hang forever at:\n\n *** Warning -- SELinux relabel is required. ***\n *** Disabling security enforcement.         ***\n *** Relabeling could take a very long time, ***\n *** depending on file system size.          ***\n\nIn reality it is waiting for you to press a key (but there is no\nvisual indication of this).  You can either hit the C<[Return]> key,\nat which point the guest will finish relabelling and reboot, or you\ncan install policycoreutils E<ge> 1.18.1-4.13 before starting the v2v\nconversion.  See also\nL<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\n\n=head2 RHEL 8: dracut network-legacy error\n\nIn RHEL 8, a conversion fails with:\n\n dracut: dracut module 'network-legacy' cannot be found or installed\n\nThis is caused by an issue with a dracut update during the RHEL 8\nlifecycle.  You can fix it by either installing the C<dhclient>\npackage, or by removing the file\nF</etc/dracut.conf.d/50-network-legacy.conf>.  Either operation should\nbe done inside the guest before conversion.  For more information, see:\n\nL<https://access.redhat.com/articles/7112814>\n\n=head2 Linux: \"rename: /sysroot/etc/resolv.conf\" failure\n\nIn a Linux guest, you see an error such as this:\n\n virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\n\nThis can be caused because the file F</etc/resolv.conf> in the guest\nhas the L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.\nYou can use the L<chattr(1)> command before converting the guest:\n\n chattr -i /etc/resolv.conf\n\nand then restore it (I<+i>) after conversion.\n\n=head2 Debian/Ubuntu: \"warning: could not determine a way to update the configuration of Grub2\"\n\nCurrently, virt-v2v has no way to set the default kernel in Debian\nand Ubuntu guests using GRUB 2 as bootloader.  This means that\nvirt-v2v will not change the default kernel used for booting, even\nin case it is not the best kernel available on the guest.\nA recommended procedure is, before using virt-v2v, to check that the\nboot kernel is the best kernel available in the guest (for example\nby making sure the guest is up-to-date).\n\n=head2 Debian: \"vsyscall attempted with vsyscall=none\"\n\nWhen run on a recent Debian host virt-v2v may fail to convert guests\nwhich were created before 2013.  In the debugging output you will see\na crash message similar to:\n\n vsyscall attempted with vsyscall=none ip:...\n segfault at ...\n\nThis is caused because Debian removed support for running old binaries\nwhich used the legacy vsyscall page to call into the kernel.\n\nYou can work around this problem by running this command before\nrunning virt-v2v:\n\n export LIBGUESTFS_APPEND=\"vsyscall=emulate\"\n\nFor more information, see L<https://bugzilla.redhat.com/1592061>\n\n=head2 Windows: System disk on a Dynamic Disk is not supported\n\nIf the Windows system disk (the drive containing C<\\windows>) is\nlocated on a Dynamic Disk then it cannot be converted.  Data disks —\nthat is, disks which are part of the guest but do not contain parts of\nthe Windows operating system — may be Dynamic Disks.\n\nSee L<https://bugzilla.redhat.com/2140548>.\n\n=head2 Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\n\nGuests which use the Windows E<ge> 8 \"Fast Startup\" feature (or guests\nwhich are hibernated) cannot be converted with virt-v2v.  You will see\nan error:\n\n virt-v2v: error: unable to mount the disk image for writing. This has\n probably happened because Windows Hibernation or Fast Restart is being\n used in this guest. You have to disable this (in the guest) in order\n to use virt-v2v.\n\nAs the message says, you need to boot the guest and disable the \"Fast\nStartup\" feature (Control Panel → Power Options → Choose what the\npower buttons do → Change settings that are currently unavailable →\nTurn on fast startup), and shut down the guest, and then you will be\nable to convert it.\n\nFor more information, see:\nL<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 FAST STARTUP>.\n\n=head2 Windows: Boot failure: 0x0000007B\n\nThis boot failure is caused by Windows being unable to find or load\nthe right disk driver (eg. F<viostor.sys>).  If you experience this\nerror, here are some things to check:\n\n=over 4\n\n=item *\n\nFirst ensure that the guest boots on the source hypervisor before\nconversion.\n\n=item *\n\nCheck you have the Windows virtio drivers available in\nF</usr/share/virtio-win>, and that virt-v2v did not print any warning\nabout not being able to install virtio drivers.\n\nOn S<Red Hat Enterprise Linux 7>, you will need to install the signed\ndrivers available in the C<virtio-win> package.  If you do not have\naccess to the signed drivers, then you will probably need to disable\ndriver signing in the boot menus.\n\n=item *\n\nCheck that you are presenting a virtio-blk interface (B<not>\nvirtio-scsi and B<not> ide) to the guest.  On the qemu/KVM command\nline you should see something similar to this:\n\n ... -drive file=windows-sda,if=virtio ...\n\nIn libvirt XML, you should see:\n\n <target dev='vda' bus='virtio'/>\n\n=item *\n\nCheck that Windows Group Policy does not prevent the driver from being\ninstalled or used.  Try deleting Windows Group Policy before\nconversion.\n\n=item *\n\nCheck there is no anti-virus or other software which implements Group\nPolicy-like prohibitions on installing or using new drivers.\n\n=item *\n\nEnable boot debugging and check the F<viostor.sys> driver is being\nloaded.\n\n=back\n\n=head2 OpenStack and Windows reactivation\n\nOpenStack does not offer stable device / PCI addresses to guests.\nEvery time it creates or starts a guest, it regenerates the libvirt\nXML for that guest from scratch.  The libvirt XML will have no\nE<lt>addressE<gt> fields.  Libvirt will then assign addresses to\ndevices, in a predictable manner.  Addresses may change if any of the\nfollowing are true:\n\n=over 4\n\n=item *\n\nA new disk or network device has been added or removed from the guest.\n\n=item *\n\nThe version of OpenStack or (possibly) libvirt has changed.\n\n=back\n\nBecause Windows does not like \"hardware\" changes of this kind, it may\ntrigger Windows reactivation.\n\nThis can also prevent booting with a 7B error [see previous section]\nif the guest has group policy containing\nC<Device Installation Restrictions>.\n\n=head2 Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\n\nLater versions of the Windows virtio drivers are signed using SHA-2\ncertificates (instead of SHA-1).  The original shipping Windows 7 and\nWindows Server 2008 R2 did not understand SHA-2 certificates and so\nthe Windows virtio drivers will not install properly.\n\nTo fix this you must apply SHA-2 Code Signing Support from:\nL<https://docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929>\nbefore converting the guest.\n\nFor further information see:\nL<https://bugzilla.redhat.com/show_bug.cgi?id=1624878>\n\n=head2 After conversion, Windows guest cannot be upgraded\n\nAfter successful conversion, the Windows guest cannot be upgraded to a\nlater release of Windows (eg. from Windows Server 2016 to 2019).\n\nAnother symptom is that the C<pnputil /enum-drivers> command cannot\nlist all drivers.  A few drivers are shown and then the command\ncrashes with the error:\n\n Failed to enumerate driver packages: The parameter is incorrect.\n\nThis is caused by the C<guestor_tmp> temporary driver that we\npreinstall during conversion so that Windows can see the boot device.\nBecause only minimal changes are made to the Registry to make this\nwork, Windows later gets confused when it sees these partial Registry\nentries.\n\nThe fix is to delete the Registry entries, after conversion but before\ntrying to upgrade Windows.  This can be achieved using\nL<virt-win-reg(1)>.\n\nThe Windows guest should be shut down.\n\nThe following C<.reg> file should be merged into the Windows Registry:\nL<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-guestor.reg>\n\n # virt-win-reg --merge WindowsGuest remove-guestor.reg\n\nThen the Windows guest can be booted and used / upgraded as normal.\n\nAlternatively, a WinPE environment can be used to remove the Registry\nentries.\n\nFor further information see:\nL<https://issues.redhat.com/browse/MTV-2256>\n\n=head2 Windows: \"Activation of partially decrypted BITLK device is not supported\"\n\nThis error from L<cryptsetup(8)> may occur for Windows 11 guests that\nhave a virtual TPM.  Even if Bitlocker is not activated, the disk is\nstill encrypted, and so a I<--key> parameter is still required.\nHowever it may not be possible to retrieve the key from the TPM.\n\nA workaround is to turn on Bitlocker in the Bitlocker Drive Encryption\nsettings in the Control Panel.  The Bitlocker key must be passed to\nvirt-v2v on the command line.\n\nFor further information see:\nL<https://issues.redhat.com/browse/RHEL-70840>\nand\nL<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\n\n=head2 Windows: \"Enter the recovery key for this drive\"\n\nAfter conversion, you may be presented with a Windows boot screen showing:\n\n BitLocker recovery\n Enter the recovery key for this drive\n [|___________________]\n\n(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\n\nThis happens when the Windows BitLocker disk encryption key is\ncontained in the VMware Virtual Trusted Platform Module (vTPM).  The\nvTPM is working I<exactly as designed>.  It is preventing the\nencrypted disk from being moved from one machine to another by storing\nthe encryption key in trusted storage on the source.  By design, we\ncannot access or move this key to the target.\n\nTo start the VM you will need to enter the BitLocker recovery key.\nThis will also register the disk against the new vTPM on the target,\nso it should only be necessary to do this once.\n\nFor help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\n\n=head2 Linux: Guests with LUKS encryption and TPM fail to boot after conversion\n\nLinux guests (such as Ubuntu) that use LUKS-encrypted disks with keys\nsealed to a Trusted Platform Module (TPM) will fail to boot after\nvirt-v2v conversion.  This is because the TPM is working I<exactly as\ndesigned>: it prevents the encrypted disk from being used on a\ndifferent machine.  After conversion, the guest runs on a new KVM host\nwith a different vTPM, so the TPM-sealed key is no longer valid.\n\nTo convert such a guest, a passphrase-based LUKS keyslot must exist\nso that virt-v2v can unlock the disk using the I<--key> option.  If\nthe guest only has a TPM-sealed key, you must add a passphrase keyslot\nbefore conversion.  Do not remove the TPM binding on the source VM as\nit must remain bootable in case the conversion fails.\n\nThe following commands should be run inside the source guest while it\nis still running on the source hypervisor (where the TPM is valid).\nIn these examples C</dev/sda3> is the LUKS partition; substitute the\nappropriate device for your guest.\n\nIf the guest uses B<clevis> for TPM2 binding (e.g. Ubuntu 22.04),\nfirst recover the sealed passphrase, then add a new keyslot:\n\n clevis luks list -d /dev/sda3\n clevis luks pass -d /dev/sda3 -s SLOT > /tmp/recovered-key\n cryptsetup luksAddKey /dev/sda3 --key-file /tmp/recovered-key\n\nIf the guest uses B<systemd-cryptenroll> (e.g. Ubuntu 24.04+),\nC<systemd-cryptenroll> does not expose the sealed passphrase, so you\nmust supply the original installation passphrase when adding a new\nkeyslot:\n\n cryptsetup luksDump /dev/sda3    # verify tpm2 token is present\n cryptsetup luksAddKey /dev/sda3\n\nThen convert with virt-v2v, passing the passphrase you enrolled above:\n\n virt-v2v [...] --key all:key:PASSPHRASE\n\nAfter conversion, the old TPM binding will no longer be valid.  Boot\nthe converted guest and remove the stale binding:\n\n clevis luks unbind -d /dev/sda3 -s SLOT -f       # clevis\n systemd-cryptenroll --wipe-slot=tpm2 /dev/sda3   # systemd-cryptenroll\n\nIf you want to re-seal LUKS against the new KVM vTPM, you can then\nrun C<clevis luks bind -d /dev/sda3 tpm2 '{}'> or\nC<systemd-cryptenroll --tpm2-device=auto /dev/sda3> inside the\nconverted guest.\n\nFor further information see:\nL<https://issues.redhat.com/browse/RHEL-85154>\n\n=head2 Networks and bridges\n\nGuests are usually connected to one or more networks, and when\nconverted to the target hypervisor you usually want to reconnect those\nnetworks at the destination.  The options I<--network>, I<--bridge>\nand I<--mac> allow you to do that.\n\nIf you are unsure of what networks and bridges are in use on the\nsource hypervisor, then you can examine the source metadata (libvirt\nXML, vCenter information, etc.).  Or you can run virt-v2v with the\nI<--print-source> option which causes virt-v2v to print out the\ninformation it has about the guest on the source and then exit.\n\nIn the I<--print-source> output you will see a section showing the\nguest’s Network Interface Cards (NICs):\n\n $ virt-v2v [-i ...] --print-source name\n [...]\n NICs:\n     Network \"default\" mac: 52:54:00:d0:cf:0e\n\nBridges are special classes of network devices which are attached to a\nnamed external network on the source hypervisor, for example:\n\n $ virt-v2v [-i ...] --print-source name\n [...]\n NICs:\n     Bridge \"br0\"\n\nTo map a specific source bridge to a target network, for example\nC<br0> on the source to C<ovirtmgmt> on the target, use:\n\n virt-v2v [...] --bridge br0:ovirtmgmt\n\nTo map every bridge to a target network, use:\n\n virt-v2v [...] --bridge ovirtmgmt\n\n=head3 Fine-grained mapping of guest NICs\n\nThe I<--mac> option gives you more control over the mapping, letting\nyou map single NICs to either networks or bridges on the target.  For\nexample a source guest with two NICs could map them individually to\ntwo networks called C<mgmt> and C<clientdata> like this:\n\n $ virt-v2v [...] \\\n    --mac 52:54:00:d0:cf:0e:network:mgmt \\\n    --mac 52:54:00:d0:cf:0f:network:clientdata\n\nNote that virt-v2v does not have the ability to change a guest’s MAC\naddress.  The MAC address is part of the guest metadata and must\nremain the same on source and target hypervisors.  Most guests will\nuse the MAC address to set up persistent associations between NICs and\ninternal names (like C<eth0>), with firewall settings, or even for\nother purposes like software licensing.\n\n=head2 Minimal XML for -i libvirtxml option\n\nWhen using the I<-i libvirtxml> option, you have to supply some\nlibvirt XML.  Writing this from scratch is hard, so the template below\nis helpful.\n\nB<Note this should only be used for testing and/or where you know what\nyou're doing!>  If you have libvirt metadata for the guest, always use\nthat instead.\n\n <domain type='kvm'>\n   <name> NAME </name>\n   <memory>1048576</memory>\n   <vcpu>2</vcpu>\n   <os>\n     <type>hvm</type>\n     <boot dev='hd'/>\n   </os>\n   <features>\n     <acpi/>\n     <apic/>\n     <pae/>\n   </features>\n   <devices>\n     <disk type='file' device='disk'>\n       <driver name='qemu' type='raw'/>\n       <source file='/path/to/disk/image'/>\n       <target dev='hda' bus='ide'/>\n       <checksum method='sha256' fail='error'>123123...</checksum>\n     </disk>\n     <interface type='network'>\n       <mac address='52:54:00:01:02:03'/>\n       <source network='default'/>\n       <model type='rtl8139'/>\n     </interface>\n   </devices>\n </domain>\n\n=head2 Machine readable output\n\nThe I<--machine-readable> option can be used to make the output more\nmachine friendly, which is useful when calling virt-v2v from\nother programs, GUIs etc.\n\nThere are two ways to use this option.\n\nFirstly use the option on its own to query the capabilities of the\nvirt-v2v binary.  Typical output looks like this:\n\n $ virt-v2v --machine-readable\n virt-v2v\n libguestfs-rewrite\n colours-option\n input:disk\n [...]\n output:local\n [...]\n convert:linux\n convert:windows\n\nA list of features is printed, one per line, and the program exits\nwith status 0.\n\nThe C<input:> and C<output:> features refer to I<-i> and I<-o> (input\nand output mode) options supported by this binary.  The C<convert:>\nfeatures refer to guest types that this binary knows how to convert.\n\nSecondly use the option in conjunction with other options to make the\nregular program output more machine friendly.\n\nAt the moment this means:\n\n=over 4\n\n=item 1.\n\nProgress bar messages can be parsed from stdout by looking for this\nregular expression:\n\n ^[0-9]+/[0-9]+$\n\n=item 2.\n\nThe calling program should treat messages sent to stdout (except for\nprogress bar messages) as status messages.  They can be logged and/or\ndisplayed to the user.\n\n=item 3.\n\nThe calling program should treat messages sent to stderr as error\nmessages.  In addition, virt-v2v exits with a non-zero status\ncode if there was a fatal error.\n\n=back\n\nVirt-v2v E<le> 0.9.1 did not support the I<--machine-readable>\noption at all.  The option was added when virt-v2v was rewritten in 2014.\n\nIt is possible to specify a format string for controlling the output;\nsee L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\n\n=head2 Starting the libvirt system instance\n\n Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\n Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\n\nIf you have just installed libvirt and virt-v2v, then you may see the\nerrors above.  This is caused by libvirt daemons that provide various\nservices not running straight after installation.  (This may depend on\nyour distribution and vendor presets).\n\nTo fix this on systemd-based distributions, do:\n\n systemctl isolate multi-user.target\n\nSee also L<https://bugzilla.redhat.com/2182024>.\n\n=head1 FILES\n\n=over 4\n\n=item F</usr/share/virtio-win>\n\n(Optional)\n\nIf this directory is present, then virtio drivers for Windows guests\nwill be found from this directory and installed in the guest during\nconversion.\n\n=back\n\n=head1 ENVIRONMENT VARIABLES\n\n=over 4\n\n=item C<VIRT_V2V_TMPDIR>\n\n=item C<LIBGUESTFS_CACHEDIR>\n\nLocation of the temporary directory used for the potentially large\ntemporary overlay file.  If neither environment variable is set then\nF</var/tmp> is used.\n\nTo reliably ensure large temporary files are cleaned up (for example\nin case virt-v2v crashes) you should create a randomly named directory\nunder F</var/tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory,\nthen when virt-v2v exits remove the directory.\n\nSee the L</Disk space> section above.\n\n=item C<VIRT_TOOLS_DATA_DIR>\n\nThis can point to the directory containing data files used for Windows\nconversion.\n\nNormally you do not need to set this.  If not set, a compiled-in\ndefault will be used (something like F</usr/share/virt-tools>).\n\nThis directory may contain the following files:\n\n=over 4\n\n=item F<rhsrvany.exe>\n\n(Required when doing conversions of Windows guests)\n\nThis is the RHSrvAny Windows binary, used to install a \"firstboot\"\nscript in the guest during conversion of Windows guests.\n\nSee also: C<https://github.com/rwmjones/rhsrvany>\n\n=item F<pnp_wait.exe>\n\n(Recommended when doing conversions of Windows guests)\n\nThis tool waits for newly installed Windows devices to become\navailable before trying to configure them, for example to set network\nconfiguration.  It is part of the RHSrvAny project.\n\n=item F<pvvxsvc.exe>\n\nThis is a Windows binary shipped with SUSE VMDP, used to install a\n\"firstboot\" script in Windows guests.  It is an alternative to\nRHSrvAny.\n\n=back\n\n=item C<VIRTIO_WIN>\n\nThis is an override for where virtio drivers for Windows are searched\nfor.  It can be a directory I<or> point to F<virtio-win.iso> (CD ROM\nimage containing drivers).\n\nIf unset, then we look for drivers via whichever of these methods\nsucceeds first:\n\n=over 4\n\n=item F</usr/share/virtio-win/virtio-win.iso>\n\nThe ISO containing virtio drivers for Windows.\n\n=item F</usr/share/virtio-win>\n\nThe exploded tree of virtio drivers for Windows.\n\n=back\n\nSee L</Enabling virtio>.\n\n=back\n\nFor other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\n\n=head1 OTHER TOOLS\n\n=over 4\n\n=item L<engine-image-uploader(8)>\n\nVariously called C<engine-image-uploader>, C<ovirt-image-uploader> or\nC<rhevm-image-uploader>, this tool allows you to copy a guest from one\noVirt Export Storage Domain to another.  It only permits importing a\nguest that was previously exported from another oVirt instance.\n\n=item L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\n\nThis script can be used to import guests that already run on KVM to\noVirt.  For more information, see this blog posting by the author of\nvirt-v2v:\n\nL<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-rhev/#content>\n\n=back\n\n=head1 SEE ALSO\n\nL<virt-p2v(1)>,\nL<virt-v2v-inspector(1)>,\nL<virt-v2v-in-place(1)>,\nL<virt-v2v-open(1)>,\nL<virt-customize(1)>,\nL<virt-df(1)>,\nL<virt-filesystems(1)>,\nL<virt-inspector(1)>,\nL<virt-sparsify(1)>,\nL<virt-sysprep(1)>,\nL<virt-win-reg(1)>,\nL<guestfs(3)>,\nL<guestfish(1)>,\nL<qemu-img(1)>,\nL<engine-image-uploader(8)>,\nL<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>,\nL<nbdkit(1)>,\nL<nbdkit-vddk-plugin(1)>,\nL<http://libguestfs.org/>.\n\n=head1 AUTHORS\n\nMatthew Booth\n\nCédric Bosdonnat\n\nLaszlo Ersek\n\nTomáš Golembiovský\n\nShahar Havivi\n\nRichard W.M. Jones\n\nRoman Kagan\n\nMike Latimer\n\nNir Soffer\n\nPino Toscano\n\nXiaodai Wang\n\nMing Xie\n\nTingting Zheng\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "docs/vm-generation-id-across-hypervisors.txt",
    "content": "VM Generation ID is a hypervisor feature which exposes a 128 bit (16 byte)\nrandom string of bytes to the guest.  The generation ID lets the guest\nknow when it has been cloned, and this is mainly useful for Windows\nbecause various security features of Windows rely on unique UUIDs and\ndon't work if the guest is cloned.  Guests can use the random string\n(which is NOT itself a UUID) to generate new UUIDs after cloning.\n\nThe main spec is very light on details, but it's here:\nhttp://go.microsoft.com/fwlink/?LinkId=260709\n\nThis file documents how the VM Generation ID feature is implemented\nacross multiple hypervisors that support it.\n\n\nInside the guest\n----------------------------------------------------------------------\n\nFor Windows guests the easiest way to view the VM generation ID is\nusing VMGENID.EXE.  You can download the binary and source here:\n\nhttps://bugzilla.redhat.com/show_bug.cgi?id=1598350#c3\nhttps://docs.microsoft.com/en-gb/windows/win32/hyperv_v2/virtual-machine-generation-identifier?redirectedfrom=MSDN\n\nVMGENID.EXE prints the low 64 bit int followed by the high 64 bit int,\nboth in hex, eg:\n\n8987940a09512cc5:e81510634ff550b9\n\nFor Linux guests at the time of writing (late 2021) there is no\nupstream driver.  For qemu guests you can view the VM generation ID\nusing these commands:\n\n# hexdump -C /sys/firmware/qemu_fw_cfg/by_name/etc/vmgenid_addr/raw\n00000000  28 f0 ff 7f 00 00 00 00                           |(.......|\n00000008\n\nTake the bytes printed (a raw physical memory address in little endian\nformat), reverse them, and insert them into this command:\n\n# dd if=/dev/mem bs=1 skip=$(( 0x7ffff028 )) count=16 | hexdump -C\n16+0 records in\n16+0 records out\n16 bytes copied, 6.0392e-05 s, 265 kB/s\n00000000  44 33 22 11 66 55 88 77  99 aa bb cc dd ee ff 00  |D3\".fU.w........|\n00000010\n\nwhich prints the raw 16 byte VM generation ID as it appears in guest\nphysical memory.\n\n\nBytes in memory vs Windows guest driver\n----------------------------------------------------------------------\n\nAll hypervisors that implement this feature write 16 bytes into guest\nphysical memory.  Different guest drivers could then treat this\ndifferently.  This section documents what the Windows driver does.\n\nIf the bytes in guest RAM are:\n\n 11 22 33 44 55 66 77 88   99 aa bb cc dd ee ff 00\n\nThe Windows guest driver treats this as two little endian 64 bit\nintegers called \"low\" and \"high\":\n\n low = 0x8877665544332211\n high = 0x00ffeeddccbbaa99\n\nVMGENID.EXE prints:\n\n8877665544332211:[00]ffeeddccbbaa99\n\n(The [00] is not printed because VMGENID.EXE does not zero-extend.  I\nadded this for clarity)\n\n\nMicrosoft Hyper-V\n----------------------------------------------------------------------\n\nIn Hyper-V <= 2012 guest metadata is stored in XML.  In later versions\nthe XML was replaced by a binary vmcx file.  The same data is stored\nin both, but you'll need to use hexdump to read the binary file.\n\nIn XML:\n\n<generation_id type=\"string\">805a287a250989e4fe6f6992be334a43</generation_id>\n\nThe same in the vmcx file:\n\n000056b0  00 00 0e 67 65 6e 65 72  61 74 69 6f 6e 5f 69 64  |...generation_id|\n000056c0  00 40 00 00 00 38 00 30  00 35 00 61 00 32 00 38  |     8 0 5 a 2 8|\n000056d0  00 37 00 61 00 32 00 35  00 30 00 39 00 38 00 39  |.7.a.2.5.0.9.8.9|\n000056e0  00 65 00 34 00 66 00 65  00 36 00 66 00 36 00 39  |.e.4.f.e.6.f.6.9|\n000056f0  00 39 00 32 00 62 00 65  00 33 00 33 00 34 00 61  |.9.2.b.e.3.3.4.a|\n00005700  00 34 00 33 00 00 00 00  00 00 00 00 00 00 00 00  |.4.3............|\n\nIn a Windows guest VMGENID.EXE prints:\n\nfe6f6992be334a43:805a287a250989e4\n\nNotice that the hypervisor metadata is storing the high 64 bit word\n(little endian) followed by the low 64 bit word (little endian).\n\n\nVMware ESXi\n----------------------------------------------------------------------\n\nVM generation ID can be found in the guest.vmx file as two 64 bit\nlittle-endian signed decimal integers, eg:\n\nvm.genid = \"-8536691797830587195\"\nvm.genidX = \"-1723453263670062919\"\n\nTo convert them to the more normal hex format, use these Python\nstatements:\n\n>>> print(\"%x\" % (2**64-8536691797830587195))\n8987940a09512cc5\n>>> print(\"%x\" % (2**64-1723453263670062919))\ne81510634ff550b9\n\nIn a Windows guest, VMGENID.EXE prints:\n\n8987940a09512cc5:e81510634ff550b9\n\nNote that vm.genid corresponds to what the Windows driver calls the\nlow 64 bit int, and vm.genidX to the high int.\n\n\nQEMU\n----------------------------------------------------------------------\n\nUnfortunately QEMU made a significant mistake when implementing this\nfeature.  Because the string is 128 bits long, they decided it must be\na UUID (as you can see above there is no evidence that Microsoft who\nwrote the original spec thought it was).  Following from this\nassumption, they stated that the \"UUID\" must be supplied to qemu in\nbig endian format and must be byteswapped when writing it to guest\nmemory as the virtual device is assumed to always be little-endian\n(even for BE guests).\n\nTo further add to the confusion, byte swapping of UUIDs is not\nstraightforward.  Only some fields are byte swapped.\n\nqemu uses a -device vmgenid parameter to specify the \"UUID\":\n\n-device vmgenid,guid=11223344-5566-7788-99aa-bbccddeeff00,id=vmgenid0\n\nBecause of the byte swapping this appears inside the guest as:\n\n44 33 22 11 66 55 88 77   99 aa bb cc dd ee ff 00\n\nIn order to get a predictable byte order, you must do your own\nmangling which is then further mangled by qemu with the effect that\nboth manglings cancel out.  This ordering:\n\n-device vmgenid,guid=44332211-6655-8877-99aa-bbccddeeff00,id=vmgenid0\n\nwill result in guest physical memory containing:\n\n11 22 33 44 55 66 77 88   99 aa bb cc dd ee ff 00\n\nIn a Windows guest, VMGENID.EXE prints:\n\n8877665544332211:[00]ffeeddccbbaa99\n\n(The [00] is not printed because VMGENID.EXE does not zero-extend.  I\nadded this for clarity)\n\n\nLibvirt\n----------------------------------------------------------------------\n\nUnfortunately libvirt took the mistaken QEMU UUID concept and ran with it.\nLibvirt XML is written:\n\n<genid>44332211-6655-8877-99aa-bbccddeeff00</genid>\n\nwhich will result in the following bytes being written to guest memory:\n\n11 22 33 44 55 66 77 88   99 aa bb cc dd ee ff 00\n\n\nReferences\n----------------------------------------------------------------------\n\nMain specification: http://go.microsoft.com/fwlink/?LinkId=260709\n\nThreads about qemu and libvirt implementations:\nhttps://lists.nongnu.org/archive/html/qemu-devel/2018-07/threads.html#01505\nhttps://listman.redhat.com/archives/libvir-list/2021-September/thread.html#00931\n\nQEMU documentation and implementation:\nhttps://gitlab.com/qemu-project/qemu/-/blob/master/docs/specs/vmgenid.txt\nhttps://gitlab.com/qemu-project/qemu/-/blob/master/hw/acpi/vmgenid.c\n\nLatest attempt to get a Linux driver upstream:\nhttps://lore.kernel.org/linux-doc/3E05451B-A9CD-4719-99D0-72750A304044@amazon.com/\n"
  },
  {
    "path": "gnulib/lib/Makefile.am",
    "content": "# libguestfs\n# Copyright (C) 2017-2021 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# This directory contains some dependencies originally from gnulib.\n# The aim is for everything in this directory to eventually go away,\n# probably being moved to common/utils.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nnoinst_LTLIBRARIES = libgnu.la\nlibgnu_la_SOURCES = \\\n\tbitrotate.h \\\n\tc-ctype.h \\\n\tgetprogname.h \\\n\thash.c \\\n\thash.h \\\n\tignore-value.h \\\n\txalloc-oversized.h \\\n\txstrtol.c \\\n\txstrtol.h \\\n\txstrtoll.c \\\n\txstrtoul.c \\\n\txstrtoull.c \\\n\txstrtoumax.c\nlibutils_la_CFLAGS = \\\n\t$(WARN_CFLAGS) $(WERROR_CFLAGS) \\\n\t$(GCC_VISIBILITY_HIDDEN)\n"
  },
  {
    "path": "gnulib/lib/bitrotate.h",
    "content": "/* bitrotate.h - Rotate bits in integers\n   Copyright (C) 2008-2021 Free Software Foundation, Inc.\n\n   (NB: I modified the original GPL boilerplate here to LGPLv2+.  This\n   is because of the weird way that gnulib uses licenses, where the\n   real license is covered in the modules/X file.  The real license\n   for this file is LGPLv2+, not GPL.  - RWMJ)\n\n   This library is free software; you can redistribute it and/or\n   modify it under the terms of the GNU Lesser General Public\n   License as published by the Free Software Foundation; either\n   version 2 of the License, or (at your option) any later version.\n\n   This library is distributed in the hope that it will be useful,\n   but WITHOUT ANY WARRANTY; without even the implied warranty of\n   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n   Lesser General Public License for more details.\n\n   You should have received a copy of the GNU Lesser General Public\n   License along with this library; if not, write to the Free Software\n   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n/* Written by Simon Josefsson <simon@josefsson.org>, 2008. */\n\n#ifndef _GL_BITROTATE_H\n#define _GL_BITROTATE_H\n\n#include <limits.h>\n#include <stdint.h>\n#include <sys/types.h>\n\n#ifdef UINT64_MAX\n/* Given an unsigned 64-bit argument X, return the value corresponding\n   to rotating the bits N steps to the left.  N must be between 1 and\n   63 inclusive. */\nstatic inline uint64_t\nrotl64 (uint64_t x, int n)\n{\n  return ((x << n) | (x >> (64 - n))) & UINT64_MAX;\n}\n\n/* Given an unsigned 64-bit argument X, return the value corresponding\n   to rotating the bits N steps to the right.  N must be between 1 to\n   63 inclusive.*/\nstatic inline uint64_t\nrotr64 (uint64_t x, int n)\n{\n  return ((x >> n) | (x << (64 - n))) & UINT64_MAX;\n}\n#endif\n\n/* Given an unsigned 32-bit argument X, return the value corresponding\n   to rotating the bits N steps to the left.  N must be between 1 and\n   31 inclusive. */\nstatic inline uint32_t\nrotl32 (uint32_t x, int n)\n{\n  return ((x << n) | (x >> (32 - n))) & UINT32_MAX;\n}\n\n/* Given an unsigned 32-bit argument X, return the value corresponding\n   to rotating the bits N steps to the right.  N must be between 1 to\n   31 inclusive.*/\nstatic inline uint32_t\nrotr32 (uint32_t x, int n)\n{\n  return ((x >> n) | (x << (32 - n))) & UINT32_MAX;\n}\n\n/* Given a size_t argument X, return the value corresponding\n   to rotating the bits N steps to the left.  N must be between 1 and\n   (CHAR_BIT * sizeof (size_t) - 1) inclusive.  */\nstatic inline size_t\nrotl_sz (size_t x, int n)\n{\n  return ((x << n) | (x >> ((CHAR_BIT * sizeof x) - n))) & SIZE_MAX;\n}\n\n/* Given a size_t argument X, return the value corresponding\n   to rotating the bits N steps to the right.  N must be between 1 to\n   (CHAR_BIT * sizeof (size_t) - 1) inclusive.  */\nstatic inline size_t\nrotr_sz (size_t x, int n)\n{\n  return ((x >> n) | (x << ((CHAR_BIT * sizeof x) - n))) & SIZE_MAX;\n}\n\n/* Given an unsigned 16-bit argument X, return the value corresponding\n   to rotating the bits N steps to the left.  N must be between 1 to\n   15 inclusive, but on most relevant targets N can also be 0 and 16\n   because 'int' is at least 32 bits and the arguments must widen\n   before shifting. */\nstatic inline uint16_t\nrotl16 (uint16_t x, int n)\n{\n  return (((unsigned int) x << n) | ((unsigned int) x >> (16 - n)))\n         & UINT16_MAX;\n}\n\n/* Given an unsigned 16-bit argument X, return the value corresponding\n   to rotating the bits N steps to the right.  N must be in 1 to 15\n   inclusive, but on most relevant targets N can also be 0 and 16\n   because 'int' is at least 32 bits and the arguments must widen\n   before shifting. */\nstatic inline uint16_t\nrotr16 (uint16_t x, int n)\n{\n  return (((unsigned int) x >> n) | ((unsigned int) x << (16 - n)))\n         & UINT16_MAX;\n}\n\n/* Given an unsigned 8-bit argument X, return the value corresponding\n   to rotating the bits N steps to the left.  N must be between 1 to 7\n   inclusive, but on most relevant targets N can also be 0 and 8\n   because 'int' is at least 32 bits and the arguments must widen\n   before shifting. */\nstatic inline uint8_t\nrotl8 (uint8_t x, int n)\n{\n  return (((unsigned int) x << n) | ((unsigned int) x >> (8 - n))) & UINT8_MAX;\n}\n\n/* Given an unsigned 8-bit argument X, return the value corresponding\n   to rotating the bits N steps to the right.  N must be in 1 to 7\n   inclusive, but on most relevant targets N can also be 0 and 8\n   because 'int' is at least 32 bits and the arguments must widen\n   before shifting. */\nstatic inline uint8_t\nrotr8 (uint8_t x, int n)\n{\n  return (((unsigned int) x >> n) | ((unsigned int) x << (8 - n))) & UINT8_MAX;\n}\n\n#endif /* _GL_BITROTATE_H */\n"
  },
  {
    "path": "gnulib/lib/c-ctype.h",
    "content": "/* Character handling in C locale.\n\n   These functions work like the corresponding functions in <ctype.h>,\n   except that they have the C (POSIX) locale hardwired, whereas the\n   <ctype.h> functions' behaviour depends on the current locale set via\n   setlocale.\n\n   Copyright (C) 2000-2003, 2006, 2008-2021 Free Software Foundation, Inc.\n\n   (NB: I modified the original GPL boilerplate here to LGPLv2+.  This\n   is because of the weird way that gnulib uses licenses, where the\n   real license is covered in the modules/X file.  The real license\n   for this file is LGPLv2+, not GPL.  - RWMJ)\n\n   This library is free software; you can redistribute it and/or\n   modify it under the terms of the GNU Lesser General Public\n   License as published by the Free Software Foundation; either\n   version 2 of the License, or (at your option) any later version.\n\n   This library is distributed in the hope that it will be useful,\n   but WITHOUT ANY WARRANTY; without even the implied warranty of\n   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n   Lesser General Public License for more details.\n\n   You should have received a copy of the GNU Lesser General Public\n   License along with this library; if not, write to the Free Software\n   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n#ifndef C_CTYPE_H\n#define C_CTYPE_H\n\n#include <stdbool.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n\n/* The functions defined in this file assume the \"C\" locale and a character\n   set without diacritics (ASCII-US or EBCDIC-US or something like that).\n   Even if the \"C\" locale on a particular system is an extension of the ASCII\n   character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it\n   is ISO-8859-1), the functions in this file recognize only the ASCII\n   characters.  */\n\n\n#if (' ' == 32) && ('!' == 33) && ('\"' == 34) && ('#' == 35) \\\n    && ('%' == 37) && ('&' == 38) && ('\\'' == 39) && ('(' == 40) \\\n    && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \\\n    && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \\\n    && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \\\n    && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \\\n    && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \\\n    && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \\\n    && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \\\n    && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \\\n    && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \\\n    && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \\\n    && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \\\n    && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \\\n    && ('Z' == 90) && ('[' == 91) && ('\\\\' == 92) && (']' == 93) \\\n    && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \\\n    && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \\\n    && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \\\n    && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \\\n    && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \\\n    && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \\\n    && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \\\n    && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)\n/* The character set is ASCII or one of its variants or extensions, not EBCDIC.\n   Testing the value of '\\n' and '\\r' is not relevant.  */\n# define C_CTYPE_ASCII 1\n#elif ! (' ' == '\\x40' && '0' == '\\xf0'                     \\\n         && 'A' == '\\xc1' && 'J' == '\\xd1' && 'S' == '\\xe2' \\\n         && 'a' == '\\x81' && 'j' == '\\x91' && 's' == '\\xa2')\n# error \"Only ASCII and EBCDIC are supported\"\n#endif\n\n#if 'A' < 0\n# error \"EBCDIC and char is signed -- not supported\"\n#endif\n\n/* Cases for control characters.  */\n\n#define _C_CTYPE_CNTRL \\\n   case '\\a': case '\\b': case '\\f': case '\\n': \\\n   case '\\r': case '\\t': case '\\v': \\\n   _C_CTYPE_OTHER_CNTRL\n\n/* ASCII control characters other than those with \\-letter escapes.  */\n\n#if C_CTYPE_ASCII\n# define _C_CTYPE_OTHER_CNTRL \\\n    case '\\x00': case '\\x01': case '\\x02': case '\\x03': \\\n    case '\\x04': case '\\x05': case '\\x06': case '\\x0e': \\\n    case '\\x0f': case '\\x10': case '\\x11': case '\\x12': \\\n    case '\\x13': case '\\x14': case '\\x15': case '\\x16': \\\n    case '\\x17': case '\\x18': case '\\x19': case '\\x1a': \\\n    case '\\x1b': case '\\x1c': case '\\x1d': case '\\x1e': \\\n    case '\\x1f': case '\\x7f'\n#else\n   /* Use EBCDIC code page 1047's assignments for ASCII control chars;\n      assume all EBCDIC code pages agree about these assignments.  */\n# define _C_CTYPE_OTHER_CNTRL \\\n    case '\\x00': case '\\x01': case '\\x02': case '\\x03': \\\n    case '\\x07': case '\\x0e': case '\\x0f': case '\\x10': \\\n    case '\\x11': case '\\x12': case '\\x13': case '\\x18': \\\n    case '\\x19': case '\\x1c': case '\\x1d': case '\\x1e': \\\n    case '\\x1f': case '\\x26': case '\\x27': case '\\x2d': \\\n    case '\\x2e': case '\\x32': case '\\x37': case '\\x3c': \\\n    case '\\x3d': case '\\x3f'\n#endif\n\n/* Cases for lowercase hex letters, and lowercase letters, all offset by N.  */\n\n#define _C_CTYPE_LOWER_A_THRU_F_N(N) \\\n   case 'a' + (N): case 'b' + (N): case 'c' + (N): case 'd' + (N): \\\n   case 'e' + (N): case 'f' + (N)\n#define _C_CTYPE_LOWER_N(N) \\\n   _C_CTYPE_LOWER_A_THRU_F_N(N): \\\n   case 'g' + (N): case 'h' + (N): case 'i' + (N): case 'j' + (N): \\\n   case 'k' + (N): case 'l' + (N): case 'm' + (N): case 'n' + (N): \\\n   case 'o' + (N): case 'p' + (N): case 'q' + (N): case 'r' + (N): \\\n   case 's' + (N): case 't' + (N): case 'u' + (N): case 'v' + (N): \\\n   case 'w' + (N): case 'x' + (N): case 'y' + (N): case 'z' + (N)\n\n/* Cases for hex letters, digits, lower, punct, and upper.  */\n\n#define _C_CTYPE_A_THRU_F \\\n   _C_CTYPE_LOWER_A_THRU_F_N (0): \\\n   _C_CTYPE_LOWER_A_THRU_F_N ('A' - 'a')\n#define _C_CTYPE_DIGIT                     \\\n   case '0': case '1': case '2': case '3': \\\n   case '4': case '5': case '6': case '7': \\\n   case '8': case '9'\n#define _C_CTYPE_LOWER _C_CTYPE_LOWER_N (0)\n#define _C_CTYPE_PUNCT \\\n   case '!': case '\"': case '#': case '$':  \\\n   case '%': case '&': case '\\'': case '(': \\\n   case ')': case '*': case '+': case ',':  \\\n   case '-': case '.': case '/': case ':':  \\\n   case ';': case '<': case '=': case '>':  \\\n   case '?': case '@': case '[': case '\\\\': \\\n   case ']': case '^': case '_': case '`':  \\\n   case '{': case '|': case '}': case '~'\n#define _C_CTYPE_UPPER _C_CTYPE_LOWER_N ('A' - 'a')\n\n\n/* Function definitions.  */\n\n/* Unlike the functions in <ctype.h>, which require an argument in the range\n   of the 'unsigned char' type, the functions here operate on values that are\n   in the 'unsigned char' range or in the 'char' range.  In other words,\n   when you have a 'char' value, you need to cast it before using it as\n   argument to a <ctype.h> function:\n\n         const char *s = ...;\n         if (isalpha ((unsigned char) *s)) ...\n\n   but you don't need to cast it for the functions defined in this file:\n\n         const char *s = ...;\n         if (c_isalpha (*s)) ...\n */\n\nstatic inline bool\nc_isalnum (int c)\n{\n  switch (c)\n    {\n    _C_CTYPE_DIGIT:\n    _C_CTYPE_LOWER:\n    _C_CTYPE_UPPER:\n      return true;\n    default:\n      return false;\n    }\n}\n\nstatic inline bool\nc_isalpha (int c)\n{\n  switch (c)\n    {\n    _C_CTYPE_LOWER:\n    _C_CTYPE_UPPER:\n      return true;\n    default:\n      return false;\n    }\n}\n\n/* The function isascii is not locale dependent.\n   Its use in EBCDIC is questionable. */\nstatic inline bool\nc_isascii (int c)\n{\n  switch (c)\n    {\n    case ' ':\n    _C_CTYPE_CNTRL:\n    _C_CTYPE_DIGIT:\n    _C_CTYPE_LOWER:\n    _C_CTYPE_PUNCT:\n    _C_CTYPE_UPPER:\n      return true;\n    default:\n      return false;\n    }\n}\n\nstatic inline bool\nc_isblank (int c)\n{\n  return c == ' ' || c == '\\t';\n}\n\nstatic inline bool\nc_iscntrl (int c)\n{\n  switch (c)\n    {\n    _C_CTYPE_CNTRL:\n      return true;\n    default:\n      return false;\n    }\n}\n\nstatic inline bool\nc_isdigit (int c)\n{\n  switch (c)\n    {\n    _C_CTYPE_DIGIT:\n      return true;\n    default:\n      return false;\n    }\n}\n\nstatic inline bool\nc_isgraph (int c)\n{\n  switch (c)\n    {\n    _C_CTYPE_DIGIT:\n    _C_CTYPE_LOWER:\n    _C_CTYPE_PUNCT:\n    _C_CTYPE_UPPER:\n      return true;\n    default:\n      return false;\n    }\n}\n\nstatic inline bool\nc_islower (int c)\n{\n  switch (c)\n    {\n    _C_CTYPE_LOWER:\n      return true;\n    default:\n      return false;\n    }\n}\n\nstatic inline bool\nc_isprint (int c)\n{\n  switch (c)\n    {\n    case ' ':\n    _C_CTYPE_DIGIT:\n    _C_CTYPE_LOWER:\n    _C_CTYPE_PUNCT:\n    _C_CTYPE_UPPER:\n      return true;\n    default:\n      return false;\n    }\n}\n\nstatic inline bool\nc_ispunct (int c)\n{\n  switch (c)\n    {\n    _C_CTYPE_PUNCT:\n      return true;\n    default:\n      return false;\n    }\n}\n\nstatic inline bool\nc_isspace (int c)\n{\n  switch (c)\n    {\n    case ' ': case '\\t': case '\\n': case '\\v': case '\\f': case '\\r':\n      return true;\n    default:\n      return false;\n    }\n}\n\nstatic inline bool\nc_isupper (int c)\n{\n  switch (c)\n    {\n    _C_CTYPE_UPPER:\n      return true;\n    default:\n      return false;\n    }\n}\n\nstatic inline bool\nc_isxdigit (int c)\n{\n  switch (c)\n    {\n    _C_CTYPE_DIGIT:\n    _C_CTYPE_A_THRU_F:\n      return true;\n    default:\n      return false;\n    }\n}\n\nstatic inline int\nc_tolower (int c)\n{\n  switch (c)\n    {\n    _C_CTYPE_UPPER:\n      return c - 'A' + 'a';\n    default:\n      return c;\n    }\n}\n\nstatic inline int\nc_toupper (int c)\n{\n  switch (c)\n    {\n    _C_CTYPE_LOWER:\n      return c - 'a' + 'A';\n    default:\n      return c;\n    }\n}\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif /* C_CTYPE_H */\n"
  },
  {
    "path": "gnulib/lib/getprogname.h",
    "content": "/* libguestfs\n * Copyright (C) 2013-2020 Red Hat Inc.\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n#ifndef GUESTFS_GETPROGNAME\n#define GUESTFS_GETPROGNAME\n\n#include <errno.h>\n\nstatic inline char const *\ngetprogname (void)\n{\n  return program_invocation_short_name;\n}\n\n#endif /* GUESTFS_GETPROGNAME */\n"
  },
  {
    "path": "gnulib/lib/hash.c",
    "content": "/* hash - hashing table processing.\n\n   Copyright (C) 1998-2004, 2006-2007, 2009-2021 Free Software Foundation, Inc.\n\n   Written by Jim Meyering, 1992.\n\n   (NB: I modified the original GPL boilerplate here to LGPLv2+.  This\n   is because of the weird way that gnulib uses licenses, where the\n   real license is covered in the modules/X file.  The real license\n   for this file is LGPLv2+, not GPL.  - RWMJ)\n\n   This library is free software; you can redistribute it and/or\n   modify it under the terms of the GNU Lesser General Public\n   License as published by the Free Software Foundation; either\n   version 2 of the License, or (at your option) any later version.\n\n   This library is distributed in the hope that it will be useful,\n   but WITHOUT ANY WARRANTY; without even the implied warranty of\n   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n   Lesser General Public License for more details.\n\n   You should have received a copy of the GNU Lesser General Public\n   License along with this library; if not, write to the Free Software\n   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n/* A generic hash table package.  */\n\n/* Define USE_OBSTACK to 1 if you want the allocator to use obstacks instead\n   of malloc.  If you change USE_OBSTACK, you have to recompile!  */\n\n#include <config.h>\n\n#include \"hash.h\"\n\n#include \"bitrotate.h\"\n#include \"xalloc-oversized.h\"\n\n#include <stdint.h>\n#include <stdio.h>\n#include <stdlib.h>\n\n#if USE_OBSTACK\n# include \"obstack.h\"\n# ifndef obstack_chunk_alloc\n#  define obstack_chunk_alloc malloc\n# endif\n# ifndef obstack_chunk_free\n#  define obstack_chunk_free free\n# endif\n#endif\n\nstruct hash_entry\n  {\n    void *data;\n    struct hash_entry *next;\n  };\n\nstruct hash_table\n  {\n    /* The array of buckets starts at BUCKET and extends to BUCKET_LIMIT-1,\n       for a possibility of N_BUCKETS.  Among those, N_BUCKETS_USED buckets\n       are not empty, there are N_ENTRIES active entries in the table.  */\n    struct hash_entry *bucket;\n    struct hash_entry const *bucket_limit;\n    size_t n_buckets;\n    size_t n_buckets_used;\n    size_t n_entries;\n\n    /* Tuning arguments, kept in a physically separate structure.  */\n    const Hash_tuning *tuning;\n\n    /* Three functions are given to 'hash_initialize', see the documentation\n       block for this function.  In a word, HASHER randomizes a user entry\n       into a number up from 0 up to some maximum minus 1; COMPARATOR returns\n       true if two user entries compare equally; and DATA_FREER is the cleanup\n       function for a user entry.  */\n    Hash_hasher hasher;\n    Hash_comparator comparator;\n    Hash_data_freer data_freer;\n\n    /* A linked list of freed struct hash_entry structs.  */\n    struct hash_entry *free_entry_list;\n\n#if USE_OBSTACK\n    /* Whenever obstacks are used, it is possible to allocate all overflowed\n       entries into a single stack, so they all can be freed in a single\n       operation.  It is not clear if the speedup is worth the trouble.  */\n    struct obstack entry_stack;\n#endif\n  };\n\n/* A hash table contains many internal entries, each holding a pointer to\n   some user-provided data (also called a user entry).  An entry indistinctly\n   refers to both the internal entry and its associated user entry.  A user\n   entry contents may be hashed by a randomization function (the hashing\n   function, or just \"hasher\" for short) into a number (or \"slot\") between 0\n   and the current table size.  At each slot position in the hash table,\n   starts a linked chain of entries for which the user data all hash to this\n   slot.  A bucket is the collection of all entries hashing to the same slot.\n\n   A good \"hasher\" function will distribute entries rather evenly in buckets.\n   In the ideal case, the length of each bucket is roughly the number of\n   entries divided by the table size.  Finding the slot for a data is usually\n   done in constant time by the \"hasher\", and the later finding of a precise\n   entry is linear in time with the size of the bucket.  Consequently, a\n   larger hash table size (that is, a larger number of buckets) is prone to\n   yielding shorter chains, *given* the \"hasher\" function behaves properly.\n\n   Long buckets slow down the lookup algorithm.  One might use big hash table\n   sizes in hope to reduce the average length of buckets, but this might\n   become inordinate, as unused slots in the hash table take some space.  The\n   best bet is to make sure you are using a good \"hasher\" function (beware\n   that those are not that easy to write! :-), and to use a table size\n   larger than the actual number of entries.  */\n\n/* If an insertion makes the ratio of nonempty buckets to table size larger\n   than the growth threshold (a number between 0.0 and 1.0), then increase\n   the table size by multiplying by the growth factor (a number greater than\n   1.0).  The growth threshold defaults to 0.8, and the growth factor\n   defaults to 1.414, meaning that the table will have doubled its size\n   every second time 80% of the buckets get used.  */\n#define DEFAULT_GROWTH_THRESHOLD 0.8f\n#define DEFAULT_GROWTH_FACTOR 1.414f\n\n/* If a deletion empties a bucket and causes the ratio of used buckets to\n   table size to become smaller than the shrink threshold (a number between\n   0.0 and 1.0), then shrink the table by multiplying by the shrink factor (a\n   number greater than the shrink threshold but smaller than 1.0).  The shrink\n   threshold and factor default to 0.0 and 1.0, meaning that the table never\n   shrinks.  */\n#define DEFAULT_SHRINK_THRESHOLD 0.0f\n#define DEFAULT_SHRINK_FACTOR 1.0f\n\n/* Use this to initialize or reset a TUNING structure to\n   some sensible values. */\nstatic const Hash_tuning default_tuning =\n  {\n    DEFAULT_SHRINK_THRESHOLD,\n    DEFAULT_SHRINK_FACTOR,\n    DEFAULT_GROWTH_THRESHOLD,\n    DEFAULT_GROWTH_FACTOR,\n    false\n  };\n\n/* Information and lookup.  */\n\nsize_t\nhash_get_n_buckets (const Hash_table *table)\n{\n  return table->n_buckets;\n}\n\nsize_t\nhash_get_n_buckets_used (const Hash_table *table)\n{\n  return table->n_buckets_used;\n}\n\nsize_t\nhash_get_n_entries (const Hash_table *table)\n{\n  return table->n_entries;\n}\n\nsize_t\nhash_get_max_bucket_length (const Hash_table *table)\n{\n  struct hash_entry const *bucket;\n  size_t max_bucket_length = 0;\n\n  for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)\n    {\n      if (bucket->data)\n        {\n          struct hash_entry const *cursor = bucket;\n          size_t bucket_length = 1;\n\n          while (cursor = cursor->next, cursor)\n            bucket_length++;\n\n          if (bucket_length > max_bucket_length)\n            max_bucket_length = bucket_length;\n        }\n    }\n\n  return max_bucket_length;\n}\n\nbool\nhash_table_ok (const Hash_table *table)\n{\n  struct hash_entry const *bucket;\n  size_t n_buckets_used = 0;\n  size_t n_entries = 0;\n\n  for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)\n    {\n      if (bucket->data)\n        {\n          struct hash_entry const *cursor = bucket;\n\n          /* Count bucket head.  */\n          n_buckets_used++;\n          n_entries++;\n\n          /* Count bucket overflow.  */\n          while (cursor = cursor->next, cursor)\n            n_entries++;\n        }\n    }\n\n  if (n_buckets_used == table->n_buckets_used && n_entries == table->n_entries)\n    return true;\n\n  return false;\n}\n\nvoid\nhash_print_statistics (const Hash_table *table, FILE *stream)\n{\n  size_t n_entries = hash_get_n_entries (table);\n  size_t n_buckets = hash_get_n_buckets (table);\n  size_t n_buckets_used = hash_get_n_buckets_used (table);\n  size_t max_bucket_length = hash_get_max_bucket_length (table);\n\n  fprintf (stream, \"# entries:         %lu\\n\", (unsigned long int) n_entries);\n  fprintf (stream, \"# buckets:         %lu\\n\", (unsigned long int) n_buckets);\n  fprintf (stream, \"# buckets used:    %lu (%.2f%%)\\n\",\n           (unsigned long int) n_buckets_used,\n           (100.0 * n_buckets_used) / n_buckets);\n  fprintf (stream, \"max bucket length: %lu\\n\",\n           (unsigned long int) max_bucket_length);\n}\n\n/* Hash KEY and return a pointer to the selected bucket.\n   If TABLE->hasher misbehaves, abort.  */\nstatic struct hash_entry *\nsafe_hasher (const Hash_table *table, const void *key)\n{\n  size_t n = table->hasher (key, table->n_buckets);\n  if (! (n < table->n_buckets))\n    abort ();\n  return table->bucket + n;\n}\n\nvoid *\nhash_lookup (const Hash_table *table, const void *entry)\n{\n  struct hash_entry const *bucket = safe_hasher (table, entry);\n  struct hash_entry const *cursor;\n\n  if (bucket->data == NULL)\n    return NULL;\n\n  for (cursor = bucket; cursor; cursor = cursor->next)\n    if (entry == cursor->data || table->comparator (entry, cursor->data))\n      return cursor->data;\n\n  return NULL;\n}\n\n/* Walking.  */\n\nvoid *\nhash_get_first (const Hash_table *table)\n{\n  struct hash_entry const *bucket;\n\n  if (table->n_entries == 0)\n    return NULL;\n\n  for (bucket = table->bucket; ; bucket++)\n    if (! (bucket < table->bucket_limit))\n      abort ();\n    else if (bucket->data)\n      return bucket->data;\n}\n\nvoid *\nhash_get_next (const Hash_table *table, const void *entry)\n{\n  struct hash_entry const *bucket = safe_hasher (table, entry);\n  struct hash_entry const *cursor;\n\n  /* Find next entry in the same bucket.  */\n  cursor = bucket;\n  do\n    {\n      if (cursor->data == entry && cursor->next)\n        return cursor->next->data;\n      cursor = cursor->next;\n    }\n  while (cursor != NULL);\n\n  /* Find first entry in any subsequent bucket.  */\n  while (++bucket < table->bucket_limit)\n    if (bucket->data)\n      return bucket->data;\n\n  /* None found.  */\n  return NULL;\n}\n\nsize_t\nhash_get_entries (const Hash_table *table, void **buffer,\n                  size_t buffer_size)\n{\n  size_t counter = 0;\n  struct hash_entry const *bucket;\n  struct hash_entry const *cursor;\n\n  for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)\n    {\n      if (bucket->data)\n        {\n          for (cursor = bucket; cursor; cursor = cursor->next)\n            {\n              if (counter >= buffer_size)\n                return counter;\n              buffer[counter++] = cursor->data;\n            }\n        }\n    }\n\n  return counter;\n}\n\nsize_t\nhash_do_for_each (const Hash_table *table, Hash_processor processor,\n                  void *processor_data)\n{\n  size_t counter = 0;\n  struct hash_entry const *bucket;\n  struct hash_entry const *cursor;\n\n  for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)\n    {\n      if (bucket->data)\n        {\n          for (cursor = bucket; cursor; cursor = cursor->next)\n            {\n              if (! processor (cursor->data, processor_data))\n                return counter;\n              counter++;\n            }\n        }\n    }\n\n  return counter;\n}\n\n/* Allocation and clean-up.  */\n\n#if USE_DIFF_HASH\n\n/* About hashings, Paul Eggert writes to me (FP), on 1994-01-01: \"Please see\n   B. J. McKenzie, R. Harries & T. Bell, Selecting a hashing algorithm,\n   Software--practice & experience 20, 2 (Feb 1990), 209-224.  Good hash\n   algorithms tend to be domain-specific, so what's good for [diffutils'] io.c\n   may not be good for your application.\"  */\n\nsize_t\nhash_string (const char *string, size_t n_buckets)\n{\n# define HASH_ONE_CHAR(Value, Byte) \\\n  ((Byte) + rotl_sz (Value, 7))\n\n  size_t value = 0;\n  unsigned char ch;\n\n  for (; (ch = *string); string++)\n    value = HASH_ONE_CHAR (value, ch);\n  return value % n_buckets;\n\n# undef HASH_ONE_CHAR\n}\n\n#else /* not USE_DIFF_HASH */\n\n/* This one comes from 'recode', and performs a bit better than the above as\n   per a few experiments.  It is inspired from a hashing routine found in the\n   very old Cyber 'snoop', itself written in typical Greg Mansfield style.\n   (By the way, what happened to this excellent man?  Is he still alive?)  */\n\nsize_t\nhash_string (const char *string, size_t n_buckets)\n{\n  size_t value = 0;\n  unsigned char ch;\n\n  for (; (ch = *string); string++)\n    value = (value * 31 + ch) % n_buckets;\n  return value;\n}\n\n#endif /* not USE_DIFF_HASH */\n\n/* Return true if CANDIDATE is a prime number.  CANDIDATE should be an odd\n   number at least equal to 11.  */\n\nstatic bool\nis_prime (size_t candidate)\n{\n  size_t divisor = 3;\n  size_t square = divisor * divisor;\n\n  while (square < candidate && (candidate % divisor))\n    {\n      divisor++;\n      square += 4 * divisor;\n      divisor++;\n    }\n\n  return (candidate % divisor ? true : false);\n}\n\n/* Round a given CANDIDATE number up to the nearest prime, and return that\n   prime.  Primes lower than 10 are merely skipped.  */\n\nstatic size_t\nnext_prime (size_t candidate)\n{\n  /* Skip small primes.  */\n  if (candidate < 10)\n    candidate = 10;\n\n  /* Make it definitely odd.  */\n  candidate |= 1;\n\n  while (SIZE_MAX != candidate && !is_prime (candidate))\n    candidate += 2;\n\n  return candidate;\n}\n\nvoid\nhash_reset_tuning (Hash_tuning *tuning)\n{\n  *tuning = default_tuning;\n}\n\n/* If the user passes a NULL hasher, we hash the raw pointer.  */\nstatic size_t\nraw_hasher (const void *data, size_t n)\n{\n  /* When hashing unique pointers, it is often the case that they were\n     generated by malloc and thus have the property that the low-order\n     bits are 0.  As this tends to give poorer performance with small\n     tables, we rotate the pointer value before performing division,\n     in an attempt to improve hash quality.  */\n  size_t val = rotr_sz ((size_t) data, 3);\n  return val % n;\n}\n\n/* If the user passes a NULL comparator, we use pointer comparison.  */\nstatic bool\nraw_comparator (const void *a, const void *b)\n{\n  return a == b;\n}\n\n\n/* For the given hash TABLE, check the user supplied tuning structure for\n   reasonable values, and return true if there is no gross error with it.\n   Otherwise, definitively reset the TUNING field to some acceptable default\n   in the hash table (that is, the user loses the right of further modifying\n   tuning arguments), and return false.  */\n\nstatic bool\ncheck_tuning (Hash_table *table)\n{\n  const Hash_tuning *tuning = table->tuning;\n  float epsilon;\n  if (tuning == &default_tuning)\n    return true;\n\n  /* Be a bit stricter than mathematics would require, so that\n     rounding errors in size calculations do not cause allocations to\n     fail to grow or shrink as they should.  The smallest allocation\n     is 11 (due to next_prime's algorithm), so an epsilon of 0.1\n     should be good enough.  */\n  epsilon = 0.1f;\n\n  if (epsilon < tuning->growth_threshold\n      && tuning->growth_threshold < 1 - epsilon\n      && 1 + epsilon < tuning->growth_factor\n      && 0 <= tuning->shrink_threshold\n      && tuning->shrink_threshold + epsilon < tuning->shrink_factor\n      && tuning->shrink_factor <= 1\n      && tuning->shrink_threshold + epsilon < tuning->growth_threshold)\n    return true;\n\n  table->tuning = &default_tuning;\n  return false;\n}\n\n/* Compute the size of the bucket array for the given CANDIDATE and\n   TUNING, or return 0 if there is no possible way to allocate that\n   many entries.  */\n\nstatic size_t\ncompute_bucket_size (size_t candidate, const Hash_tuning *tuning)\n{\n  if (!tuning->is_n_buckets)\n    {\n      float new_candidate = candidate / tuning->growth_threshold;\n      if ((float) SIZE_MAX <= new_candidate)\n        return 0;\n      candidate = new_candidate;\n    }\n  candidate = next_prime (candidate);\n  if (xalloc_oversized (candidate, sizeof (struct hash_entry *)))\n    return 0;\n  return candidate;\n}\n\nHash_table *\nhash_initialize (size_t candidate, const Hash_tuning *tuning,\n                 Hash_hasher hasher, Hash_comparator comparator,\n                 Hash_data_freer data_freer)\n{\n  Hash_table *table;\n\n  if (hasher == NULL)\n    hasher = raw_hasher;\n  if (comparator == NULL)\n    comparator = raw_comparator;\n\n  table = malloc (sizeof *table);\n  if (table == NULL)\n    return NULL;\n\n  if (!tuning)\n    tuning = &default_tuning;\n  table->tuning = tuning;\n  if (!check_tuning (table))\n    {\n      /* Fail if the tuning options are invalid.  This is the only occasion\n         when the user gets some feedback about it.  Once the table is created,\n         if the user provides invalid tuning options, we silently revert to\n         using the defaults, and ignore further request to change the tuning\n         options.  */\n      goto fail;\n    }\n\n  table->n_buckets = compute_bucket_size (candidate, tuning);\n  if (!table->n_buckets)\n    goto fail;\n\n  table->bucket = calloc (table->n_buckets, sizeof *table->bucket);\n  if (table->bucket == NULL)\n    goto fail;\n  table->bucket_limit = table->bucket + table->n_buckets;\n  table->n_buckets_used = 0;\n  table->n_entries = 0;\n\n  table->hasher = hasher;\n  table->comparator = comparator;\n  table->data_freer = data_freer;\n\n  table->free_entry_list = NULL;\n#if USE_OBSTACK\n  obstack_init (&table->entry_stack);\n#endif\n  return table;\n\n fail:\n  free (table);\n  return NULL;\n}\n\nvoid\nhash_clear (Hash_table *table)\n{\n  struct hash_entry *bucket;\n\n  for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)\n    {\n      if (bucket->data)\n        {\n          struct hash_entry *cursor;\n          struct hash_entry *next;\n\n          /* Free the bucket overflow.  */\n          for (cursor = bucket->next; cursor; cursor = next)\n            {\n              if (table->data_freer)\n                table->data_freer (cursor->data);\n              cursor->data = NULL;\n\n              next = cursor->next;\n              /* Relinking is done one entry at a time, as it is to be expected\n                 that overflows are either rare or short.  */\n              cursor->next = table->free_entry_list;\n              table->free_entry_list = cursor;\n            }\n\n          /* Free the bucket head.  */\n          if (table->data_freer)\n            table->data_freer (bucket->data);\n          bucket->data = NULL;\n          bucket->next = NULL;\n        }\n    }\n\n  table->n_buckets_used = 0;\n  table->n_entries = 0;\n}\n\nvoid\nhash_free (Hash_table *table)\n{\n  struct hash_entry *bucket;\n  struct hash_entry *cursor;\n  struct hash_entry *next;\n\n  /* Call the user data_freer function.  */\n  if (table->data_freer && table->n_entries)\n    {\n      for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)\n        {\n          if (bucket->data)\n            {\n              for (cursor = bucket; cursor; cursor = cursor->next)\n                table->data_freer (cursor->data);\n            }\n        }\n    }\n\n#if USE_OBSTACK\n\n  obstack_free (&table->entry_stack, NULL);\n\n#else\n\n  /* Free all bucket overflowed entries.  */\n  for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)\n    {\n      for (cursor = bucket->next; cursor; cursor = next)\n        {\n          next = cursor->next;\n          free (cursor);\n        }\n    }\n\n  /* Also reclaim the internal list of previously freed entries.  */\n  for (cursor = table->free_entry_list; cursor; cursor = next)\n    {\n      next = cursor->next;\n      free (cursor);\n    }\n\n#endif\n\n  /* Free the remainder of the hash table structure.  */\n  free (table->bucket);\n  free (table);\n}\n\n/* Insertion and deletion.  */\n\n/* Get a new hash entry for a bucket overflow, possibly by recycling a\n   previously freed one.  If this is not possible, allocate a new one.  */\n\nstatic struct hash_entry *\nallocate_entry (Hash_table *table)\n{\n  struct hash_entry *new;\n\n  if (table->free_entry_list)\n    {\n      new = table->free_entry_list;\n      table->free_entry_list = new->next;\n    }\n  else\n    {\n#if USE_OBSTACK\n      new = obstack_alloc (&table->entry_stack, sizeof *new);\n#else\n      new = malloc (sizeof *new);\n#endif\n    }\n\n  return new;\n}\n\n/* Free a hash entry which was part of some bucket overflow,\n   saving it for later recycling.  */\n\nstatic void\nfree_entry (Hash_table *table, struct hash_entry *entry)\n{\n  entry->data = NULL;\n  entry->next = table->free_entry_list;\n  table->free_entry_list = entry;\n}\n\n/* This private function is used to help with insertion and deletion.  When\n   ENTRY matches an entry in the table, return a pointer to the corresponding\n   user data and set *BUCKET_HEAD to the head of the selected bucket.\n   Otherwise, return NULL.  When DELETE is true and ENTRY matches an entry in\n   the table, unlink the matching entry.  */\n\nstatic void *\nhash_find_entry (Hash_table *table, const void *entry,\n                 struct hash_entry **bucket_head, bool delete)\n{\n  struct hash_entry *bucket = safe_hasher (table, entry);\n  struct hash_entry *cursor;\n\n  *bucket_head = bucket;\n\n  /* Test for empty bucket.  */\n  if (bucket->data == NULL)\n    return NULL;\n\n  /* See if the entry is the first in the bucket.  */\n  if (entry == bucket->data || table->comparator (entry, bucket->data))\n    {\n      void *data = bucket->data;\n\n      if (delete)\n        {\n          if (bucket->next)\n            {\n              struct hash_entry *next = bucket->next;\n\n              /* Bump the first overflow entry into the bucket head, then save\n                 the previous first overflow entry for later recycling.  */\n              *bucket = *next;\n              free_entry (table, next);\n            }\n          else\n            {\n              bucket->data = NULL;\n            }\n        }\n\n      return data;\n    }\n\n  /* Scan the bucket overflow.  */\n  for (cursor = bucket; cursor->next; cursor = cursor->next)\n    {\n      if (entry == cursor->next->data\n          || table->comparator (entry, cursor->next->data))\n        {\n          void *data = cursor->next->data;\n\n          if (delete)\n            {\n              struct hash_entry *next = cursor->next;\n\n              /* Unlink the entry to delete, then save the freed entry for later\n                 recycling.  */\n              cursor->next = next->next;\n              free_entry (table, next);\n            }\n\n          return data;\n        }\n    }\n\n  /* No entry found.  */\n  return NULL;\n}\n\n/* Internal helper, to move entries from SRC to DST.  Both tables must\n   share the same free entry list.  If SAFE, only move overflow\n   entries, saving bucket heads for later, so that no allocations will\n   occur.  Return false if the free entry list is exhausted and an\n   allocation fails.  */\n\nstatic bool\ntransfer_entries (Hash_table *dst, Hash_table *src, bool safe)\n{\n  struct hash_entry *bucket;\n  struct hash_entry *cursor;\n  struct hash_entry *next;\n  for (bucket = src->bucket; bucket < src->bucket_limit; bucket++)\n    if (bucket->data)\n      {\n        void *data;\n        struct hash_entry *new_bucket;\n\n        /* Within each bucket, transfer overflow entries first and\n           then the bucket head, to minimize memory pressure.  After\n           all, the only time we might allocate is when moving the\n           bucket head, but moving overflow entries first may create\n           free entries that can be recycled by the time we finally\n           get to the bucket head.  */\n        for (cursor = bucket->next; cursor; cursor = next)\n          {\n            data = cursor->data;\n            new_bucket = safe_hasher (dst, data);\n\n            next = cursor->next;\n\n            if (new_bucket->data)\n              {\n                /* Merely relink an existing entry, when moving from a\n                   bucket overflow into a bucket overflow.  */\n                cursor->next = new_bucket->next;\n                new_bucket->next = cursor;\n              }\n            else\n              {\n                /* Free an existing entry, when moving from a bucket\n                   overflow into a bucket header.  */\n                new_bucket->data = data;\n                dst->n_buckets_used++;\n                free_entry (dst, cursor);\n              }\n          }\n        /* Now move the bucket head.  Be sure that if we fail due to\n           allocation failure that the src table is in a consistent\n           state.  */\n        data = bucket->data;\n        bucket->next = NULL;\n        if (safe)\n          continue;\n        new_bucket = safe_hasher (dst, data);\n\n        if (new_bucket->data)\n          {\n            /* Allocate or recycle an entry, when moving from a bucket\n               header into a bucket overflow.  */\n            struct hash_entry *new_entry = allocate_entry (dst);\n\n            if (new_entry == NULL)\n              return false;\n\n            new_entry->data = data;\n            new_entry->next = new_bucket->next;\n            new_bucket->next = new_entry;\n          }\n        else\n          {\n            /* Move from one bucket header to another.  */\n            new_bucket->data = data;\n            dst->n_buckets_used++;\n          }\n        bucket->data = NULL;\n        src->n_buckets_used--;\n      }\n  return true;\n}\n\nbool\nhash_rehash (Hash_table *table, size_t candidate)\n{\n  Hash_table storage;\n  Hash_table *new_table;\n  size_t new_size = compute_bucket_size (candidate, table->tuning);\n\n  if (!new_size)\n    return false;\n  if (new_size == table->n_buckets)\n    return true;\n  new_table = &storage;\n  new_table->bucket = calloc (new_size, sizeof *new_table->bucket);\n  if (new_table->bucket == NULL)\n    return false;\n  new_table->n_buckets = new_size;\n  new_table->bucket_limit = new_table->bucket + new_size;\n  new_table->n_buckets_used = 0;\n  new_table->n_entries = 0;\n  new_table->tuning = table->tuning;\n  new_table->hasher = table->hasher;\n  new_table->comparator = table->comparator;\n  new_table->data_freer = table->data_freer;\n\n  /* In order for the transfer to successfully complete, we need\n     additional overflow entries when distinct buckets in the old\n     table collide into a common bucket in the new table.  The worst\n     case possible is a hasher that gives a good spread with the old\n     size, but returns a constant with the new size; if we were to\n     guarantee table->n_buckets_used-1 free entries in advance, then\n     the transfer would be guaranteed to not allocate memory.\n     However, for large tables, a guarantee of no further allocation\n     introduces a lot of extra memory pressure, all for an unlikely\n     corner case (most rehashes reduce, rather than increase, the\n     number of overflow entries needed).  So, we instead ensure that\n     the transfer process can be reversed if we hit a memory\n     allocation failure mid-transfer.  */\n\n  /* Merely reuse the extra old space into the new table.  */\n#if USE_OBSTACK\n  new_table->entry_stack = table->entry_stack;\n#endif\n  new_table->free_entry_list = table->free_entry_list;\n\n  if (transfer_entries (new_table, table, false))\n    {\n      /* Entries transferred successfully; tie up the loose ends.  */\n      free (table->bucket);\n      table->bucket = new_table->bucket;\n      table->bucket_limit = new_table->bucket_limit;\n      table->n_buckets = new_table->n_buckets;\n      table->n_buckets_used = new_table->n_buckets_used;\n      table->free_entry_list = new_table->free_entry_list;\n      /* table->n_entries and table->entry_stack already hold their value.  */\n      return true;\n    }\n\n  /* We've allocated new_table->bucket (and possibly some entries),\n     exhausted the free list, and moved some but not all entries into\n     new_table.  We must undo the partial move before returning\n     failure.  The only way to get into this situation is if new_table\n     uses fewer buckets than the old table, so we will reclaim some\n     free entries as overflows in the new table are put back into\n     distinct buckets in the old table.\n\n     There are some pathological cases where a single pass through the\n     table requires more intermediate overflow entries than using two\n     passes.  Two passes give worse cache performance and takes\n     longer, but at this point, we're already out of memory, so slow\n     and safe is better than failure.  */\n  table->free_entry_list = new_table->free_entry_list;\n  if (! (transfer_entries (table, new_table, true)\n         && transfer_entries (table, new_table, false)))\n    abort ();\n  /* table->n_entries already holds its value.  */\n  free (new_table->bucket);\n  return false;\n}\n\nint\nhash_insert_if_absent (Hash_table *table, void const *entry,\n                       void const **matched_ent)\n{\n  void *data;\n  struct hash_entry *bucket;\n\n  /* The caller cannot insert a NULL entry, since hash_lookup returns NULL\n     to indicate \"not found\", and hash_find_entry uses \"bucket->data == NULL\"\n     to indicate an empty bucket.  */\n  if (! entry)\n    abort ();\n\n  /* If there's a matching entry already in the table, return that.  */\n  if ((data = hash_find_entry (table, entry, &bucket, false)) != NULL)\n    {\n      if (matched_ent)\n        *matched_ent = data;\n      return 0;\n    }\n\n  /* If the growth threshold of the buckets in use has been reached, increase\n     the table size and rehash.  There's no point in checking the number of\n     entries:  if the hashing function is ill-conditioned, rehashing is not\n     likely to improve it.  */\n\n  if (table->n_buckets_used\n      > table->tuning->growth_threshold * table->n_buckets)\n    {\n      /* Check more fully, before starting real work.  If tuning arguments\n         became invalid, the second check will rely on proper defaults.  */\n      check_tuning (table);\n      if (table->n_buckets_used\n          > table->tuning->growth_threshold * table->n_buckets)\n        {\n          const Hash_tuning *tuning = table->tuning;\n          float candidate =\n            (tuning->is_n_buckets\n             ? (table->n_buckets * tuning->growth_factor)\n             : (table->n_buckets * tuning->growth_factor\n                * tuning->growth_threshold));\n\n          if ((float) SIZE_MAX <= candidate)\n            return -1;\n\n          /* If the rehash fails, arrange to return NULL.  */\n          if (!hash_rehash (table, candidate))\n            return -1;\n\n          /* Update the bucket we are interested in.  */\n          if (hash_find_entry (table, entry, &bucket, false) != NULL)\n            abort ();\n        }\n    }\n\n  /* ENTRY is not matched, it should be inserted.  */\n\n  if (bucket->data)\n    {\n      struct hash_entry *new_entry = allocate_entry (table);\n\n      if (new_entry == NULL)\n        return -1;\n\n      /* Add ENTRY in the overflow of the bucket.  */\n\n      new_entry->data = (void *) entry;\n      new_entry->next = bucket->next;\n      bucket->next = new_entry;\n      table->n_entries++;\n      return 1;\n    }\n\n  /* Add ENTRY right in the bucket head.  */\n\n  bucket->data = (void *) entry;\n  table->n_entries++;\n  table->n_buckets_used++;\n\n  return 1;\n}\n\nvoid *\nhash_insert (Hash_table *table, void const *entry)\n{\n  void const *matched_ent;\n  int err = hash_insert_if_absent (table, entry, &matched_ent);\n  return (err == -1\n          ? NULL\n          : (void *) (err == 0 ? matched_ent : entry));\n}\n\nvoid *\nhash_remove (Hash_table *table, const void *entry)\n{\n  void *data;\n  struct hash_entry *bucket;\n\n  data = hash_find_entry (table, entry, &bucket, true);\n  if (!data)\n    return NULL;\n\n  table->n_entries--;\n  if (!bucket->data)\n    {\n      table->n_buckets_used--;\n\n      /* If the shrink threshold of the buckets in use has been reached,\n         rehash into a smaller table.  */\n\n      if (table->n_buckets_used\n          < table->tuning->shrink_threshold * table->n_buckets)\n        {\n          /* Check more fully, before starting real work.  If tuning arguments\n             became invalid, the second check will rely on proper defaults.  */\n          check_tuning (table);\n          if (table->n_buckets_used\n              < table->tuning->shrink_threshold * table->n_buckets)\n            {\n              const Hash_tuning *tuning = table->tuning;\n              size_t candidate =\n                (tuning->is_n_buckets\n                 ? table->n_buckets * tuning->shrink_factor\n                 : (table->n_buckets * tuning->shrink_factor\n                    * tuning->growth_threshold));\n\n              if (!hash_rehash (table, candidate))\n                {\n                  /* Failure to allocate memory in an attempt to\n                     shrink the table is not fatal.  But since memory\n                     is low, we can at least be kind and free any\n                     spare entries, rather than keeping them tied up\n                     in the free entry list.  */\n#if ! USE_OBSTACK\n                  struct hash_entry *cursor = table->free_entry_list;\n                  struct hash_entry *next;\n                  while (cursor)\n                    {\n                      next = cursor->next;\n                      free (cursor);\n                      cursor = next;\n                    }\n                  table->free_entry_list = NULL;\n#endif\n                }\n            }\n        }\n    }\n\n  return data;\n}\n\nvoid *\nhash_delete (Hash_table *table, const void *entry)\n{\n  return hash_remove (table, entry);\n}\n\n/* Testing.  */\n\n#if TESTING\n\nvoid\nhash_print (const Hash_table *table)\n{\n  struct hash_entry *bucket = (struct hash_entry *) table->bucket;\n\n  for ( ; bucket < table->bucket_limit; bucket++)\n    {\n      struct hash_entry *cursor;\n\n      if (bucket)\n        printf (\"%lu:\\n\", (unsigned long int) (bucket - table->bucket));\n\n      for (cursor = bucket; cursor; cursor = cursor->next)\n        {\n          char const *s = cursor->data;\n          /* FIXME */\n          if (s)\n            printf (\"  %s\\n\", s);\n        }\n    }\n}\n\n#endif /* TESTING */\n"
  },
  {
    "path": "gnulib/lib/hash.h",
    "content": "/* hash - hashing table processing.\n   Copyright (C) 1998-1999, 2001, 2003, 2009-2021 Free Software Foundation,\n   Inc.\n   Written by Jim Meyering <meyering@ascend.com>, 1998.\n\n   (NB: I modified the original GPL boilerplate here to LGPLv2+.  This\n   is because of the weird way that gnulib uses licenses, where the\n   real license is covered in the modules/X file.  The real license\n   for this file is LGPLv2+, not GPL.  - RWMJ)\n\n   This library is free software; you can redistribute it and/or\n   modify it under the terms of the GNU Lesser General Public\n   License as published by the Free Software Foundation; either\n   version 2 of the License, or (at your option) any later version.\n\n   This library is distributed in the hope that it will be useful,\n   but WITHOUT ANY WARRANTY; without even the implied warranty of\n   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n   Lesser General Public License for more details.\n\n   You should have received a copy of the GNU Lesser General Public\n   License along with this library; if not, write to the Free Software\n   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n/* A generic hash table package.  */\n\n/* Make sure USE_OBSTACK is defined to 1 if you want the allocator to use\n   obstacks instead of malloc, and recompile 'hash.c' with same setting.  */\n\n#ifndef HASH_H_\n# define HASH_H_\n\n# include <stdio.h>\n# include <stdbool.h>\n\n# ifdef __cplusplus\nextern \"C\" {\n# endif\n\nstruct hash_tuning\n  {\n    /* This structure is mainly used for 'hash_initialize', see the block\n       documentation of 'hash_reset_tuning' for more complete comments.  */\n\n    float shrink_threshold;     /* ratio of used buckets to trigger a shrink */\n    float shrink_factor;        /* ratio of new smaller size to original size */\n    float growth_threshold;     /* ratio of used buckets to trigger a growth */\n    float growth_factor;        /* ratio of new bigger size to original size */\n    bool is_n_buckets;          /* if CANDIDATE really means table size */\n  };\n\ntypedef struct hash_tuning Hash_tuning;\n\nstruct hash_table;\n\ntypedef struct hash_table Hash_table;\n\n/*\n * Information and lookup.\n */\n\n/* The following few functions provide information about the overall hash\n   table organization: the number of entries, number of buckets and maximum\n   length of buckets.  */\n\n/* Return the number of buckets in the hash table.  The table size, the total\n   number of buckets (used plus unused), or the maximum number of slots, are\n   the same quantity.  */\nextern size_t hash_get_n_buckets (const Hash_table *table);\n\n/* Return the number of slots in use (non-empty buckets).  */\nextern size_t hash_get_n_buckets_used (const Hash_table *table);\n\n/* Return the number of active entries.  */\nextern size_t hash_get_n_entries (const Hash_table *table);\n\n/* Return the length of the longest chain (bucket).  */\nextern size_t hash_get_max_bucket_length (const Hash_table *table);\n\n/* Do a mild validation of a hash table, by traversing it and checking two\n   statistics.  */\nextern bool hash_table_ok (const Hash_table *table);\n\nextern void hash_print_statistics (const Hash_table *table, FILE *stream);\n\n/* If ENTRY matches an entry already in the hash table, return the\n   entry from the table.  Otherwise, return NULL.  */\nextern void *hash_lookup (const Hash_table *table, const void *entry);\n\n/*\n * Walking.\n */\n\n/* The functions in this page traverse the hash table and process the\n   contained entries.  For the traversal to work properly, the hash table\n   should not be resized nor modified while any particular entry is being\n   processed.  In particular, entries should not be added, and an entry\n   may be removed only if there is no shrink threshold and the entry being\n   removed has already been passed to hash_get_next.  */\n\n/* Return the first data in the table, or NULL if the table is empty.  */\nextern void *hash_get_first (const Hash_table *table);\n\n/* Return the user data for the entry following ENTRY, where ENTRY has been\n   returned by a previous call to either 'hash_get_first' or 'hash_get_next'.\n   Return NULL if there are no more entries.  */\nextern void *hash_get_next (const Hash_table *table, const void *entry);\n\n/* Fill BUFFER with pointers to active user entries in the hash table, then\n   return the number of pointers copied.  Do not copy more than BUFFER_SIZE\n   pointers.  */\nextern size_t hash_get_entries (const Hash_table *table, void **buffer,\n                                size_t buffer_size);\n\ntypedef bool (*Hash_processor) (void *entry, void *processor_data);\n\n/* Call a PROCESSOR function for each entry of a hash table, and return the\n   number of entries for which the processor function returned success.  A\n   pointer to some PROCESSOR_DATA which will be made available to each call to\n   the processor function.  The PROCESSOR accepts two arguments: the first is\n   the user entry being walked into, the second is the value of PROCESSOR_DATA\n   as received.  The walking continue for as long as the PROCESSOR function\n   returns nonzero.  When it returns zero, the walking is interrupted.  */\nextern size_t hash_do_for_each (const Hash_table *table,\n                                Hash_processor processor, void *processor_data);\n\n/*\n * Allocation and clean-up.\n */\n\n/* Return a hash index for a NUL-terminated STRING between 0 and N_BUCKETS-1.\n   This is a convenience routine for constructing other hashing functions.  */\nextern size_t hash_string (const char *string, size_t n_buckets);\n\nextern void hash_reset_tuning (Hash_tuning *tuning);\n\ntypedef size_t (*Hash_hasher) (const void *entry, size_t table_size);\ntypedef bool (*Hash_comparator) (const void *entry1, const void *entry2);\ntypedef void (*Hash_data_freer) (void *entry);\n\n/* Allocate and return a new hash table, or NULL upon failure.  The initial\n   number of buckets is automatically selected so as to _guarantee_ that you\n   may insert at least CANDIDATE different user entries before any growth of\n   the hash table size occurs.  So, if have a reasonably tight a-priori upper\n   bound on the number of entries you intend to insert in the hash table, you\n   may save some table memory and insertion time, by specifying it here.  If\n   the IS_N_BUCKETS field of the TUNING structure is true, the CANDIDATE\n   argument has its meaning changed to the wanted number of buckets.\n\n   TUNING points to a structure of user-supplied values, in case some fine\n   tuning is wanted over the default behavior of the hasher.  If TUNING is\n   NULL, the default tuning parameters are used instead.  If TUNING is\n   provided but the values requested are out of bounds or might cause\n   rounding errors, return NULL.\n\n   The user-supplied HASHER function, when not NULL, accepts two\n   arguments ENTRY and TABLE_SIZE.  It computes, by hashing ENTRY contents, a\n   slot number for that entry which should be in the range 0..TABLE_SIZE-1.\n   This slot number is then returned.\n\n   The user-supplied COMPARATOR function, when not NULL, accepts two\n   arguments pointing to user data, it then returns true for a pair of entries\n   that compare equal, or false otherwise.  This function is internally called\n   on entries which are already known to hash to the same bucket index,\n   but which are distinct pointers.\n\n   The user-supplied DATA_FREER function, when not NULL, may be later called\n   with the user data as an argument, just before the entry containing the\n   data gets freed.  This happens from within 'hash_free' or 'hash_clear'.\n   You should specify this function only if you want these functions to free\n   all of your 'data' data.  This is typically the case when your data is\n   simply an auxiliary struct that you have malloc'd to aggregate several\n   values.  */\nextern Hash_table *hash_initialize (size_t candidate,\n                                    const Hash_tuning *tuning,\n                                    Hash_hasher hasher,\n                                    Hash_comparator comparator,\n                                    Hash_data_freer data_freer);\n\n/* Same as hash_initialize, but invokes xalloc_die on memory exhaustion.  */\n/* This function is defined by module 'xhash'.  */\nextern Hash_table *hash_xinitialize (size_t candidate,\n                                     const Hash_tuning *tuning,\n                                     Hash_hasher hasher,\n                                     Hash_comparator comparator,\n                                     Hash_data_freer data_freer);\n\n/* Make all buckets empty, placing any chained entries on the free list.\n   Apply the user-specified function data_freer (if any) to the data of any\n   affected entries.  */\nextern void hash_clear (Hash_table *table);\n\n/* Reclaim all storage associated with a hash table.  If a data_freer\n   function has been supplied by the user when the hash table was created,\n   this function applies it to the data of each entry before freeing that\n   entry.  */\nextern void hash_free (Hash_table *table);\n\n/*\n * Insertion and deletion.\n */\n\n/* For an already existing hash table, change the number of buckets through\n   specifying CANDIDATE.  The contents of the hash table are preserved.  The\n   new number of buckets is automatically selected so as to _guarantee_ that\n   the table may receive at least CANDIDATE different user entries, including\n   those already in the table, before any other growth of the hash table size\n   occurs.  If TUNING->IS_N_BUCKETS is true, then CANDIDATE specifies the\n   exact number of buckets desired.  Return true iff the rehash succeeded.  */\nextern bool hash_rehash (Hash_table *table, size_t candidate);\n\n/* If ENTRY matches an entry already in the hash table, return the pointer\n   to the entry from the table.  Otherwise, insert ENTRY and return ENTRY.\n   Return NULL if the storage required for insertion cannot be allocated.\n   This implementation does not support duplicate entries or insertion of\n   NULL.  */\nextern void *hash_insert (Hash_table *table, const void *entry);\n\n/* Same as hash_insert, but invokes xalloc_die on memory exhaustion.  */\n/* This function is defined by module 'xhash'.  */\nextern void *hash_xinsert (Hash_table *table, const void *entry);\n\n/* Insert ENTRY into hash TABLE if there is not already a matching entry.\n\n   Return -1 upon memory allocation failure.\n   Return 1 if insertion succeeded.\n   Return 0 if there is already a matching entry in the table,\n   and in that case, if MATCHED_ENT is non-NULL, set *MATCHED_ENT\n   to that entry.\n\n   This interface is easier to use than hash_insert when you must\n   distinguish between the latter two cases.  More importantly,\n   hash_insert is unusable for some types of ENTRY values.  When using\n   hash_insert, the only way to distinguish those cases is to compare\n   the return value and ENTRY.  That works only when you can have two\n   different ENTRY values that point to data that compares \"equal\".  Thus,\n   when the ENTRY value is a simple scalar, you must use\n   hash_insert_if_absent.  ENTRY must not be NULL.  */\nextern int hash_insert_if_absent (Hash_table *table, const void *entry,\n                                  const void **matched_ent);\n\n/* If ENTRY is already in the table, remove it and return the just-deleted\n   data (the user may want to deallocate its storage).  If ENTRY is not in the\n   table, don't modify the table and return NULL.  */\nextern void *hash_remove (Hash_table *table, const void *entry);\n\n/* Same as hash_remove.  This interface is deprecated.\n   FIXME: Remove in 2022.  */\nextern void *hash_delete (Hash_table *table, const void *entry);\n\n# ifdef __cplusplus\n}\n# endif\n\n#endif\n"
  },
  {
    "path": "gnulib/lib/ignore-value.h",
    "content": "/* ignore a function return without a compiler warning.  -*- coding: utf-8 -*-\n\n   Copyright (C) 2008-2021 Free Software Foundation, Inc.\n\n   (NB: I modified the original GPL boilerplate here to LGPLv2+.  This\n   is because of the weird way that gnulib uses licenses, where the\n   real license is covered in the modules/X file.  The real license\n   for this file is LGPLv2+, not GPL.  - RWMJ)\n\n   This library is free software; you can redistribute it and/or\n   modify it under the terms of the GNU Lesser General Public\n   License as published by the Free Software Foundation; either\n   version 2 of the License, or (at your option) any later version.\n\n   This library is distributed in the hope that it will be useful,\n   but WITHOUT ANY WARRANTY; without even the implied warranty of\n   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n   Lesser General Public License for more details.\n\n   You should have received a copy of the GNU Lesser General Public\n   License along with this library; if not, write to the Free Software\n   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n/* Written by Jim Meyering, Eric Blake and Pádraig Brady.  */\n\n/* Use \"ignore_value\" to avoid a warning when using a function declared with\n   gcc's warn_unused_result attribute, but for which you really do want to\n   ignore the result.  Traditionally, people have used a \"(void)\" cast to\n   indicate that a function's return value is deliberately unused.  However,\n   if the function is declared with __attribute__((warn_unused_result)),\n   gcc issues a warning even with the cast.\n\n   Caution: most of the time, you really should heed gcc's warning, and\n   check the return value.  However, in those exceptional cases in which\n   you're sure you know what you're doing, use this function.\n\n   For the record, here's one of the ignorable warnings:\n   \"copy.c:233: warning: ignoring return value of 'fchown',\n   declared with attribute warn_unused_result\".  */\n\n#ifndef _GL_IGNORE_VALUE_H\n#define _GL_IGNORE_VALUE_H\n\n/* Normally casting an expression to void discards its value, but GCC\n   versions 3.4 and newer have __attribute__ ((__warn_unused_result__))\n   which may cause unwanted diagnostics in that case.  Use __typeof__\n   and __extension__ to work around the problem, if the workaround is\n   known to be needed.\n   The workaround is not needed with clang.  */\n#if (3 < __GNUC__ + (4 <= __GNUC_MINOR__)) && !defined __clang__\n# define ignore_value(x) \\\n    (__extension__ ({ __typeof__ (x) __x = (x); (void) __x; }))\n#else\n# define ignore_value(x) ((void) (x))\n#endif\n\n#endif\n"
  },
  {
    "path": "gnulib/lib/xalloc-oversized.h",
    "content": "/* xalloc-oversized.h -- memory allocation size checking\n\n   Copyright (C) 1990-2000, 2003-2004, 2006-2021 Free Software Foundation, Inc.\n\n   (NB: I modified the original GPL boilerplate here to LGPLv2+.  This\n   is because of the weird way that gnulib uses licenses, where the\n   real license is covered in the modules/X file.  The real license\n   for this file is LGPLv2+, not GPL.  - RWMJ)\n\n   This library is free software; you can redistribute it and/or\n   modify it under the terms of the GNU Lesser General Public\n   License as published by the Free Software Foundation; either\n   version 2 of the License, or (at your option) any later version.\n\n   This library is distributed in the hope that it will be useful,\n   but WITHOUT ANY WARRANTY; without even the implied warranty of\n   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n   Lesser General Public License for more details.\n\n   You should have received a copy of the GNU Lesser General Public\n   License along with this library; if not, write to the Free Software\n   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n#ifndef XALLOC_OVERSIZED_H_\n#define XALLOC_OVERSIZED_H_\n\n#include <stddef.h>\n#include <stdint.h>\n\n/* True if N * S would overflow in a size_t calculation,\n   or would generate a value larger than PTRDIFF_MAX.\n   This expands to a constant expression if N and S are both constants.\n   By gnulib convention, SIZE_MAX represents overflow in size\n   calculations, so the conservative size_t-based dividend to use here\n   is SIZE_MAX - 1.  */\n#define __xalloc_oversized(n, s) \\\n  ((size_t) (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) < (n))\n\n#if PTRDIFF_MAX < SIZE_MAX\ntypedef ptrdiff_t __xalloc_count_type;\n#else\ntypedef size_t __xalloc_count_type;\n#endif\n\n/* Return 1 if an array of N objects, each of size S, cannot exist\n   reliably due to size or ptrdiff_t arithmetic overflow.  S must be\n   positive and N must be nonnegative.  This is a macro, not a\n   function, so that it works correctly even when SIZE_MAX < N.  */\n\n#if 7 <= __GNUC__ && !defined __clang__\n# define xalloc_oversized(n, s) \\\n   __builtin_mul_overflow_p (n, s, (__xalloc_count_type) 1)\n#elif 5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__\n# define xalloc_oversized(n, s) \\\n   (__builtin_constant_p (n) && __builtin_constant_p (s) \\\n    ? __xalloc_oversized (n, s) \\\n    : ({ __xalloc_count_type __xalloc_count; \\\n         __builtin_mul_overflow (n, s, &__xalloc_count); }))\n\n/* Other compilers use integer division; this may be slower but is\n   more portable.  */\n#else\n# define xalloc_oversized(n, s) __xalloc_oversized (n, s)\n#endif\n\n#endif /* !XALLOC_OVERSIZED_H_ */\n"
  },
  {
    "path": "gnulib/lib/xstrtol.c",
    "content": "/* A more useful interface to strtol.\n\n   Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2021 Free Software\n   Foundation, Inc.\n\n   This program is free software: you can redistribute it and/or modify\n   it under the terms of the GNU General Public License as published by\n   the Free Software Foundation; either version 3 of the License, or\n   (at your option) any later version.\n\n   This program is distributed in the hope that it will be useful,\n   but WITHOUT ANY WARRANTY; without even the implied warranty of\n   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n   GNU General Public License for more details.\n\n   You should have received a copy of the GNU General Public License\n   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */\n\n/* Written by Jim Meyering. */\n\n#ifndef __strtol\n# define __strtol strtol\n# define __strtol_t long int\n# define __xstrtol xstrtol\n# define STRTOL_T_MINIMUM LONG_MIN\n# define STRTOL_T_MAXIMUM LONG_MAX\n#endif\n\n#include <config.h>\n\n#include \"xstrtol.h\"\n\n/* Some pre-ANSI implementations (e.g. SunOS 4)\n   need stderr defined if assertion checking is enabled.  */\n#include <stdio.h>\n\n#include <ctype.h>\n#include <errno.h>\n#include <limits.h>\n#include <stdlib.h>\n#include <string.h>\n#include <assert.h>\n\n#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))\n\nstatic strtol_error\nbkm_scale (__strtol_t *x, int scale_factor)\n{\n  if (TYPE_SIGNED (__strtol_t) && *x < STRTOL_T_MINIMUM / scale_factor)\n    {\n      *x = STRTOL_T_MINIMUM;\n      return LONGINT_OVERFLOW;\n    }\n  if (STRTOL_T_MAXIMUM / scale_factor < *x)\n    {\n      *x = STRTOL_T_MAXIMUM;\n      return LONGINT_OVERFLOW;\n    }\n  *x *= scale_factor;\n  return LONGINT_OK;\n}\n\nstatic strtol_error\nbkm_scale_by_power (__strtol_t *x, int base, int power)\n{\n  strtol_error err = LONGINT_OK;\n  while (power--)\n    err |= bkm_scale (x, base);\n  return err;\n}\n\n/* FIXME: comment.  */\n\nstrtol_error\n__xstrtol (const char *s, char **ptr, int strtol_base,\n           __strtol_t *val, const char *valid_suffixes)\n{\n  char *t_ptr;\n  char **p;\n  __strtol_t tmp;\n  strtol_error err = LONGINT_OK;\n\n  assert (0 <= strtol_base && strtol_base <= 36);\n\n  p = (ptr ? ptr : &t_ptr);\n\n  errno = 0;\n\n  if (! TYPE_SIGNED (__strtol_t))\n    {\n      const char *q = s;\n      unsigned char ch = *q;\n      while (isspace (ch))\n        ch = *++q;\n      if (ch == '-')\n        return LONGINT_INVALID;\n    }\n\n  tmp = __strtol (s, p, strtol_base);\n\n  if (*p == s)\n    {\n      /* If there is no number but there is a valid suffix, assume the\n         number is 1.  The string is invalid otherwise.  */\n      if (valid_suffixes && **p && strchr (valid_suffixes, **p))\n        tmp = 1;\n      else\n        return LONGINT_INVALID;\n    }\n  else if (errno != 0)\n    {\n      if (errno != ERANGE)\n        return LONGINT_INVALID;\n      err = LONGINT_OVERFLOW;\n    }\n\n  /* Let valid_suffixes == NULL mean \"allow any suffix\".  */\n  /* FIXME: update all callers except the ones that allow suffixes\n     after the number, changing last parameter NULL to \"\".  */\n  if (!valid_suffixes)\n    {\n      *val = tmp;\n      return err;\n    }\n\n  if (**p != '\\0')\n    {\n      int base = 1024;\n      int suffixes = 1;\n      strtol_error overflow;\n\n      if (!strchr (valid_suffixes, **p))\n        {\n          *val = tmp;\n          return err | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n\n      switch (**p)\n        {\n        case 'E': case 'G': case 'g': case 'k': case 'K': case 'M': case 'm':\n        case 'P': case 'T': case 't': case 'Y': case 'Z':\n\n          /* The \"valid suffix\" '0' is a special flag meaning that\n             an optional second suffix is allowed, which can change\n             the base.  A suffix \"B\" (e.g. \"100MB\") stands for a power\n             of 1000, whereas a suffix \"iB\" (e.g. \"100MiB\") stands for\n             a power of 1024.  If no suffix (e.g. \"100M\"), assume\n             power-of-1024.  */\n\n          if (strchr (valid_suffixes, '0'))\n            switch (p[0][1])\n              {\n              case 'i':\n                if (p[0][2] == 'B')\n                  suffixes += 2;\n                break;\n\n              case 'B':\n              case 'D': /* 'D' is obsolescent */\n                base = 1000;\n                suffixes++;\n                break;\n              }\n        }\n\n      switch (**p)\n        {\n        case 'b':\n          overflow = bkm_scale (&tmp, 512);\n          break;\n\n        case 'B':\n          /* This obsolescent first suffix is distinct from the 'B'\n             second suffix above.  E.g., 'tar -L 1000B' means change\n             the tape after writing 1000 KiB of data.  */\n          overflow = bkm_scale (&tmp, 1024);\n          break;\n\n        case 'c':\n          overflow = LONGINT_OK;\n          break;\n\n        case 'E': /* exa or exbi */\n          overflow = bkm_scale_by_power (&tmp, base, 6);\n          break;\n\n        case 'G': /* giga or gibi */\n        case 'g': /* 'g' is undocumented; for compatibility only */\n          overflow = bkm_scale_by_power (&tmp, base, 3);\n          break;\n\n        case 'k': /* kilo */\n        case 'K': /* kibi */\n          overflow = bkm_scale_by_power (&tmp, base, 1);\n          break;\n\n        case 'M': /* mega or mebi */\n        case 'm': /* 'm' is undocumented; for compatibility only */\n          overflow = bkm_scale_by_power (&tmp, base, 2);\n          break;\n\n        case 'P': /* peta or pebi */\n          overflow = bkm_scale_by_power (&tmp, base, 5);\n          break;\n\n        case 'T': /* tera or tebi */\n        case 't': /* 't' is undocumented; for compatibility only */\n          overflow = bkm_scale_by_power (&tmp, base, 4);\n          break;\n\n        case 'w':\n          overflow = bkm_scale (&tmp, 2);\n          break;\n\n        case 'Y': /* yotta or 2**80 */\n          overflow = bkm_scale_by_power (&tmp, base, 8);\n          break;\n\n        case 'Z': /* zetta or 2**70 */\n          overflow = bkm_scale_by_power (&tmp, base, 7);\n          break;\n\n        default:\n          *val = tmp;\n          return err | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n\n      err |= overflow;\n      *p += suffixes;\n      if (**p)\n        err |= LONGINT_INVALID_SUFFIX_CHAR;\n    }\n\n  *val = tmp;\n  return err;\n}\n"
  },
  {
    "path": "gnulib/lib/xstrtol.h",
    "content": "/* A more useful interface to strtol.\n\n   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2021 Free Software\n   Foundation, Inc.\n\n   This program is free software: you can redistribute it and/or modify\n   it under the terms of the GNU General Public License as published by\n   the Free Software Foundation; either version 3 of the License, or\n   (at your option) any later version.\n\n   This program is distributed in the hope that it will be useful,\n   but WITHOUT ANY WARRANTY; without even the implied warranty of\n   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n   GNU General Public License for more details.\n\n   You should have received a copy of the GNU General Public License\n   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */\n\n#ifndef XSTRTOL_H_\n# define XSTRTOL_H_ 1\n\n# include <inttypes.h>\n\n# ifndef _STRTOL_ERROR\nenum strtol_error\n  {\n    LONGINT_OK = 0,\n\n    /* These two values can be ORed together, to indicate that both\n       errors occurred.  */\n    LONGINT_OVERFLOW = 1,\n    LONGINT_INVALID_SUFFIX_CHAR = 2,\n\n    LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW = (LONGINT_INVALID_SUFFIX_CHAR\n                                                 | LONGINT_OVERFLOW),\n    LONGINT_INVALID = 4\n  };\ntypedef enum strtol_error strtol_error;\n# endif\n\n# define _DECLARE_XSTRTOL(name, type) \\\n  strtol_error name (const char *, char **, int, type *, const char *);\n_DECLARE_XSTRTOL (xstrtol, long int)\n_DECLARE_XSTRTOL (xstrtoul, unsigned long int)\n_DECLARE_XSTRTOL (xstrtoll, long long int)\n_DECLARE_XSTRTOL (xstrtoull, unsigned long long int)\n_DECLARE_XSTRTOL (xstrtoimax, intmax_t)\n_DECLARE_XSTRTOL (xstrtoumax, uintmax_t)\n\n#endif /* not XSTRTOL_H_ */\n"
  },
  {
    "path": "gnulib/lib/xstrtoll.c",
    "content": "/* Note the license of this file is \"GPL\".  It is used in the daemon\n * and in guestfish which have a compatible license.\n */\n\n#define __strtol strtoll\n#define __strtol_t long long int\n#define __xstrtol xstrtoll\n#define STRTOL_T_MINIMUM LLONG_MIN\n#define STRTOL_T_MAXIMUM LLONG_MAX\n#include \"xstrtol.c\"\n"
  },
  {
    "path": "gnulib/lib/xstrtoul.c",
    "content": "#define __strtol strtoul\n#define __strtol_t unsigned long int\n#define __xstrtol xstrtoul\n#define STRTOL_T_MINIMUM 0\n#define STRTOL_T_MAXIMUM ULONG_MAX\n#include \"xstrtol.c\"\n"
  },
  {
    "path": "gnulib/lib/xstrtoull.c",
    "content": "#define __strtol strtoull\n#define __strtol_t unsigned long long int\n#define __xstrtol xstrtoull\n#define STRTOL_T_MINIMUM 0\n#define STRTOL_T_MAXIMUM ULLONG_MAX\n#include \"xstrtol.c\"\n"
  },
  {
    "path": "gnulib/lib/xstrtoumax.c",
    "content": "#define __strtol strtoumax\n#define __strtol_t uintmax_t\n#define __xstrtol xstrtoumax\n#define STRTOL_T_MINIMUM 0\n#define STRTOL_T_MAXIMUM UINTMAX_MAX\n#include \"xstrtol.c\"\n"
  },
  {
    "path": "in-place/Makefile.am",
    "content": "# libguestfs virt-v2v-in-place tool\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nEXTRA_DIST = \\\n\ttest-docs.sh \\\n\t$(SOURCES_MLI) \\\n\t$(SOURCES_ML) \\\n\t$(SOURCES_C) \\\n\tvirt-v2v-in-place.pod \\\n\t$(NULL)\n\nSOURCES_MLI = \\\n\tin_place.mli\n\nSOURCES_ML = \\\n\tin_place.ml\n\nSOURCES_C = \\\n\tdummy.c\n\nbin_PROGRAMS = virt-v2v-in-place\n\nvirt_v2v_in_place_SOURCES = $(SOURCES_C)\nvirt_v2v_in_place_CPPFLAGS = \\\n\t-DCAML_NAME_SPACE \\\n\t-I. \\\n\t-I$(top_builddir) \\\n\t-I$(shell $(OCAMLC) -where) \\\n\t-I$(top_srcdir)/lib \\\n\t$(NULL)\nvirt_v2v_in_place_CFLAGS = \\\n\t-pthread \\\n\t$(WARN_CFLAGS) $(WERROR_CFLAGS) \\\n\t$(LIBGUESTFS_CFLAGS) \\\n\t$(LIBVIRT_CFLAGS) \\\n\t$(NULL)\n\nBOBJECTS = $(SOURCES_ML:.ml=.cmo)\nXOBJECTS = $(BOBJECTS:.cmo=.cmx)\n\nOCAMLPACKAGES = \\\n\t-package str,unix,guestfs,libvirt,nbd \\\n\t-I $(top_builddir)/common/utils/.libs \\\n\t-I $(top_builddir)/common/qemuopts/.libs \\\n\t-I $(top_builddir)/gnulib/lib/.libs \\\n\t-I $(top_builddir)/lib \\\n\t-I $(top_builddir)/input \\\n\t-I $(top_builddir)/convert \\\n\t-I $(top_builddir)/inspector \\\n\t-I $(top_builddir)/common/mlstdutils \\\n\t-I $(top_builddir)/common/mlutils \\\n\t-I $(top_builddir)/common/mlgettext \\\n\t-I $(top_builddir)/common/mlpcre \\\n\t-I $(top_builddir)/common/mlxml \\\n\t-I $(top_builddir)/common/mltools \\\n\t-I $(top_builddir)/common/mlcustomize \\\n\t-I $(top_builddir)/common/mldrivers \\\n\t$(NULL)\nif HAVE_OCAML_PKG_GETTEXT\nOCAMLPACKAGES += -package gettext-stub\nendif\n\nOCAMLCLIBS = \\\n\t-pthread \\\n\t-lqemuopts \\\n\t$(LIBGUESTFS_LIBS) \\\n\t$(LIBVIRT_LIBS) \\\n\t$(LIBCRYPT_LIBS) \\\n\t$(LIBXML2_LIBS) \\\n\t$(JSON_C_LIBS) \\\n\t$(LIBOSINFO_LIBS) \\\n\t$(LIBINTL) \\\n\t$(LIBNBD_LIBS) \\\n\t-lgnu \\\n\t$(NULL)\n\nOCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)'\n\nif !HAVE_OCAMLOPT\nOBJECTS = $(BOBJECTS)\nelse\nOBJECTS = $(XOBJECTS)\nendif\n\nOCAMLLINKFLAGS = \\\n\tmlstdutils.$(MLARCHIVE) \\\n\tmlgettext.$(MLARCHIVE) \\\n\tmlpcre.$(MLARCHIVE) \\\n\tmlxml.$(MLARCHIVE) \\\n\tmlcutils.$(MLARCHIVE) \\\n\tmltools.$(MLARCHIVE) \\\n\tmllibvirt.$(MLARCHIVE) \\\n\tmlcustomize.$(MLARCHIVE) \\\n\tmldrivers.$(MLARCHIVE) \\\n\tmlv2vlib.$(MLARCHIVE) \\\n\tmlconvert.$(MLARCHIVE) \\\n\tmlinput.$(MLARCHIVE) \\\n\tcreate_inspector_xml.$(MLOBJECT) \\\n\t$(LINK_CUSTOM_OCAMLC_ONLY) \\\n\t$(NULL)\n\nvirt_v2v_in_place_DEPENDENCIES = \\\n\t$(OBJECTS) \\\n\t$(top_builddir)/input/mlinput.$(MLARCHIVE) \\\n\t$(top_builddir)/convert/mlconvert.$(MLARCHIVE) \\\n\t$(top_builddir)/lib/mlv2vlib.$(MLARCHIVE) \\\n\t$(top_srcdir)/ocaml-link.sh \\\n\t$(NULL)\nvirt_v2v_in_place_LINK = \\\n\t$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \\\n\t  $(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \\\n\t  $(OBJECTS) -o $@\n\n# Data directory.\n\nvirttoolsdatadir = $(datadir)/virt-tools\n\n# Dependencies.\n.depend: \\\n\t$(srcdir)/*.mli \\\n\t$(srcdir)/*.ml \\\n\t$(filter %.ml,$(BUILT_SOURCES))\n\t$(top_builddir)/ocaml-dep.sh $^\n-include .depend\n\n# Manual pages.\n\nman_MANS = virt-v2v-in-place.1\nnoinst_DATA = $(top_builddir)/website/virt-v2v-in-place.1.html\n\n# Man page is preprocessed with m4 for conditional sections.\nPP_M4 = \\\n\tm4 \\\n\t-D ENABLE_BLOCK_DRIVER=$(ENABLE_BLOCK_DRIVER) \\\n\t-D ENABLE_XEN=$(ENABLE_XEN) \\\n\t-D ENABLE_GLANCE=$(ENABLE_GLANCE) \\\n\t-D ENABLE_OVIRT=$(ENABLE_OVIRT) \\\n\t$(NULL)\n\nvirt-v2v-in-place.1 $(top_builddir)/website/virt-v2v-in-place.1.html: stamp-virt-v2v-in-place.pod\n\nstamp-virt-v2v-in-place.pod: virt-v2v-in-place.pod\n\t$(PODWRAPPER) \\\n\t  --pp \"$(PP_M4)\" \\\n\t  --man virt-v2v-in-place.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-in-place.1.html \\\n\t  --path $(top_srcdir)/common/options \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nTESTS_ENVIRONMENT = $(top_builddir)/run --test\nTESTS = test-docs.sh\n"
  },
  {
    "path": "in-place/dummy.c",
    "content": "/* Dummy source, to be used for OCaml-based tools with no C sources. */\nenum { foo = 1 };\n"
  },
  {
    "path": "in-place/in_place.ml",
    "content": "(* virt-v2v-in-place\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\nopen Common_gettext.Gettext\nopen Getopt.OptionName\n\nopen Types\nopen Utils\n\nopen Create_inspector_xml\n\ntype output_xml_option =\n  | No_output_xml | Output_xml_to_stdout\n  | Output_xml_to_file of string\n\n(* Matches --mac command line parameters. *)\nlet mac_re = PCRE.compile \"^([[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}):(network|bridge|ip):(.*)$\"\nlet mac_ip_re = PCRE.compile \"^([[:xdigit:]]|:|\\\\.)+$\"\n\nlet rec main () =\n  let set_string_option_once optname optref arg =\n    match !optref with\n    | Some _ ->\n       error (f_\"%s option used more than once on the command line\") optname\n    | None ->\n       optref := Some arg\n  in\n\n  let bandwidth = ref None in\n  let bandwidth_file = ref None in\n  let block_driver = ref None in\n  let input_conn = ref None in\n  let input_format = ref None in\n  let input_password = ref None in\n\n  let input_options = ref [] in\n  let io_query = ref false in\n  let set_input_option_compat k v =\n    List.push_back input_options (k, v)\n  in\n  let set_input_option option =\n    if option = \"?\" then io_query := true\n    else (\n      let k, v = String.split \"=\" option in\n      set_input_option_compat k v\n    )\n  in\n\n  let memsize = ref None in\n  let set_memsize arg = memsize := Some arg in\n  let smp = ref None in\n  let set_smp arg = smp := Some arg in\n\n  let network_map = Networks.create () in\n\n  let output_xml = ref No_output_xml in\n  let set_output_xml_option filename =\n    if filename = \"-\" then output_xml := Output_xml_to_stdout\n    else output_xml := Output_xml_to_file filename\n  in\n\n  let static_ips = ref [] in\n  let rec add_network str =\n    match String.split \":\" str with\n    | \"\", \"\" ->\n       error (f_\"invalid -n/--network parameter\")\n    | out, \"\" | \"\", out ->\n       Networks.add_default_network network_map out\n    | in_, out ->\n       Networks.add_network network_map in_ out\n  and add_bridge str =\n    match String.split \":\" str with\n    | \"\", \"\" ->\n       error (f_\"invalid -b/--bridge parameter\")\n    | out, \"\" | \"\", out ->\n       Networks.add_default_bridge network_map out\n    | in_, out ->\n       Networks.add_bridge network_map in_ out\n  and add_mac str =\n    if not (PCRE.matches mac_re str) then\n      error (f_\"cannot parse --mac \\\"%s\\\" parameter\") str;\n    let mac = PCRE.sub 1 and out = PCRE.sub 3 in\n    match PCRE.sub 2 with\n    | \"network\" ->\n       Networks.add_mac network_map mac Network out\n    | \"bridge\" ->\n       Networks.add_mac network_map mac Bridge out\n    | \"ip\" ->\n       (match String.nsplit \",\" out with\n        | [] -> error (f_\"invalid --mac ip option\")\n        | [ip] -> add_static_ip mac ip \"\" \"\" []\n        | [ip; gw] -> add_static_ip mac ip gw \"\" []\n        | ip :: gw :: len :: nameservers ->\n           add_static_ip mac ip gw len nameservers\n       )\n    | _ -> assert false\n  and add_static_ip if_mac_addr if_ip_address if_default_gateway\n                    if_prefix_length_str if_nameservers =\n    (* Check the IP addresses and prefix length are sensible.  This\n     * is only a very simple test that they are sane, since IP addresses\n     * come in too many valid forms to check thoroughly.\n     *)\n    let rec error_unless_ip_addr what addr =\n      if not (PCRE.matches mac_ip_re addr) then\n        error (f_\"cannot parse --mac ip %s: doesn’t look like “%s” is \\\n                  an IP address\") what addr\n    in\n    error_unless_ip_addr \"ipaddr\" if_ip_address;\n    let if_default_gateway =\n      match if_default_gateway with \"\" -> None | gw -> Some gw in\n    Option.iter (error_unless_ip_addr \"gw\") if_default_gateway;\n    List.iter (error_unless_ip_addr \"nameserver\") if_nameservers;\n    let if_prefix_length =\n      match if_prefix_length_str with\n      | \"\" -> None\n      | len ->\n         let len =\n           try int_of_string len with\n           | Failure _ -> error (f_\"cannot parse --mac ip prefix length \\\n                                    field as an integer: %s\") len in\n         if len < 0 || len > 128 then\n           error (f_\"--mac ip prefix length field is out of range\");\n         Some len in\n    List.push_back static_ips\n      { if_mac_addr; if_ip_address; if_default_gateway;\n        if_prefix_length; if_nameservers }\n  in\n\n  let root_choice = ref default_root_choice in\n  let set_root_choice = Types.set_root_choice root_choice in\n\n  (* Other options that we handle here. *)\n  let no_fstrim = ref false in\n  let print_source = ref false in\n\n  let input_modes =\n    Select_input.input_modes |>\n    List.map Select_input.string_of_input_mode |>\n    String.concat \"|\" in\n  let input_mode = ref None in\n  let set_input_mode mode =\n    if !input_mode <> None then\n      error (f_\"%s option used more than once on the command line\") \"-i\";\n    input_mode := Some (Select_input.input_mode_of_string mode)\n  in\n\n  let argspec = ref [\n    [ S 'b'; L\"bridge\" ], Getopt.String (\"in:out\", add_bridge),\n                                    s_\"Map bridge ‘in’ to ‘out’\";\n    [ S 'i' ],       Getopt.String (input_modes, set_input_mode),\n                                    s_\"Set input mode (default: libvirt)\";\n    [ M\"ic\" ],       Getopt.String (\"uri\", set_string_option_once \"-ic\" input_conn),\n                                    s_\"Libvirt URI\";\n    [ M\"if\" ],       Getopt.String (\"format\", set_string_option_once \"-if\" input_format),\n                                    s_\"Input format\";\n    [ M\"io\" ],       Getopt.String (\"option[=value]\", set_input_option),\n                                    s_\"Set option for input mode\";\n    [ M\"ip\" ],       Getopt.String (\"filename\", set_string_option_once \"-ip\" input_password),\n                                    s_\"Use password from file to connect to input hypervisor\";\n    [ L\"mac\" ],      Getopt.String (\"mac:network|bridge|ip:out\", add_mac),\n                                    s_\"Map NIC to network or bridge or assign static IP\";\n    [ S 'm'; L\"memsize\" ], Getopt.Int (\"mb\", set_memsize),\n                                    s_\"Set memory size\";\n    [ S 'n'; L\"network\" ], Getopt.String (\"in:out\", add_network),\n                                    s_\"Map network ‘in’ to ‘out’\";\n    [ S 'O' ],       Getopt.String (\"output.xml\", set_output_xml_option),\n                                    s_\"Set the output filename\";\n    [ L\"no-fstrim\" ],  Getopt.Set no_fstrim,\n                                    s_\"Don't trim filesystems before conversion\";\n    [ L\"print-source\" ], Getopt.Set print_source,\n                                    s_\"Print source and stop\";\n    [ L\"root\" ],     Getopt.String (\"ask|... \", set_root_choice),\n                                    s_\"How to choose root filesystem\";\n    [ L\"smp\" ],      Getopt.Int (\"vcpus\", set_smp),\n                                    s_\"Set number of vCPUs\";\n  ] in\n\n  if Config.enable_block_driver then\n    List.push_front\n      ([ L\"block-driver\" ],\n       Getopt.String (\"driver\", set_string_option_once \"--block-driver\" block_driver),\n       s_\"Prefer 'virtio-blk' or 'virtio-scsi'\")\n      argspec;\n\n  (* Append virt-customize options. *)\n  let customize_argspec, get_customize_ops =\n    Customize_cmdline.argspec ~v2v:true () in\n  let customize_argspec =\n    List.map (fun (spec, _, _) -> spec) customize_argspec in\n  List.push_back_list argspec customize_argspec;\n  let argspec = !argspec in\n\n  let args = ref [] in\n  let anon_fun s = List.push_front s args in\n  let usage_msg =\n    sprintf (f_\"\\\n%s: convert a guest to use KVM in-place\n\nNote this program modifies the guest in-place with no backup.\nNormally you should use virt-v2v.\n\nvirt-v2v-in-place -i libvirtxml guest-domain.xml\n\nvirt-v2v-in-place -i disk disk.img\n\nA short summary of the options is given below.  For detailed help please\nread the man page virt-v2v-in-place(1).\n\")\n      prog in\n\n  let opthandle = create_standard_options argspec ~anon_fun ~key_opts:true ~machine_readable:true usage_msg in\n  Getopt.parse opthandle.getopt;\n\n  (* Print the version, easier than asking users to tell us. *)\n  debug \"info: %s: %s %s (%s)\"\n        prog Config.package_name Config.package_version_full\n        Config.host_cpu;\n\n  (* Print the libvirt version if debugging. *)\n  if verbose () then (\n    let major, minor, release = Libvirt_utils.libvirt_get_version () in\n    debug \"info: libvirt version: %d.%d.%d\" major minor release\n  );\n\n  (* Create the v2v directory to control conversion. *)\n  let v2vdir = create_v2v_directory () in\n\n  (* Dereference the arguments. *)\n  let args = List.rev !args in\n  let block_driver =\n    match !block_driver with\n    | None | Some \"virtio-blk\" -> Virtio_blk\n    | Some \"virtio-scsi\" -> Virtio_SCSI\n    | Some driver ->\n       error (f_\"unknown block driver ‘--block-driver %s’\") driver in\n  let customize_ops = get_customize_ops () in\n  let input_conn = !input_conn in\n  let input_mode = !input_mode in\n  let no_fstrim = !no_fstrim in\n  let memsize = !memsize in\n  let output_xml = !output_xml in\n  let print_source = !print_source in\n  let root_choice = !root_choice in\n  let smp = !smp in\n  let static_ips = !static_ips in\n\n  (* No arguments and machine-readable mode?  Print out some facts\n   * about what this binary supports.\n   *)\n  (match args, machine_readable () with\n   | [], Some { pr } ->\n      pr \"virt-v2v-in-place\\n\";\n      pr \"virt-v2v-in-place-2.0\\n\";\n      pr \"libguestfs-rewrite\\n\";\n      pr \"colours-option\\n\";\n      pr \"in-place\\n\";\n      pr \"io\\n\";\n      pr \"mac-option\\n\";\n      pr \"mac-ip-option\\n\";\n      pr \"customize-ops\\n\";\n      pr \"output-xml-option\\n\";\n      if Config.enable_block_driver then\n        pr \"block-driver-option\\n\";\n      Select_input.input_modes |>\n        List.map Select_input.string_of_input_mode |>\n        List.iter (pr \"input:%s\\n\");\n      pr \"convert:linux\\n\";\n      pr \"convert:windows\\n\";\n      List.iter (pr \"ovf:%s\\n\") Create_ovf.ovf_flavours;\n      exit 0\n   | _, _ -> ()\n  );\n\n  (* Select the input module. *)\n  let (module Input_module) =\n    Select_input.select_input\n      ~allow_remote:false (* forbid remote inputs *)\n      input_mode input_conn\n      None (* no -it option *) in\n\n  let input_options = {\n    Input.bandwidth =\n      (match !bandwidth, !bandwidth_file with\n       | None, None -> None\n       | Some rate, None -> Some (StaticBandwidth rate)\n       | rate, Some filename -> Some (DynamicBandwidth (rate, filename)));\n    input_conn = input_conn;\n    input_format = !input_format;\n    input_options = !input_options;\n    input_password = !input_password;\n    input_transport = None;\n    read_only = false; (* No protective overlay on the source. *)\n  } in\n\n  (* If -io ? then we want to query input options supported in this mode. *)\n  if !io_query then (\n    Input_module.query_input_options ();\n    exit 0\n  );\n\n  (* Get the conversion options. *)\n  let conv_options = {\n    Convert.block_driver = block_driver;\n    keep_serial_console = true;\n    ks = opthandle.ks;\n    memsize;\n    network_map;\n    root_choice;\n    smp;\n    static_ips;\n    customize_ops;\n    no_fstrim;\n  } in\n\n  (* Before starting the input module, check there is sufficient\n   * free space in the temporary directory on the host.\n   *)\n  check_host_free_space ();\n\n  (* Start the input module (runs an NBD server in the background). *)\n  message (f_\"Setting up the source: %s\")\n    (Input_module.to_string input_options args);\n  let source, input_disks = Input_module.setup v2vdir input_options args in\n\n  (* If --print-source then print the source metadata and exit. *)\n  if print_source then (\n    printf (f_\"Source guest information (--print-source option):\\n\");\n    printf \"\\n\";\n    printf \"%s\\n\" (Types.string_of_source source);\n    exit 0\n  );\n\n  (* Do the conversion. *)\n  with_open_out (v2vdir // \"convert\") (fun _ -> ());\n  let inspect, target_meta = Convert.convert input_disks conv_options source in\n  unlink (v2vdir // \"convert\");\n\n  (* Debug the v2vdir. *)\n  if verbose () then (\n    let cmd = sprintf \"ls -alZ %s 1>&2\" (quote v2vdir) in\n    ignore (Sys.command cmd)\n  );\n\n  (* Write the post-conversion metadata, if asked. *)\n  let chan =\n    match output_xml with\n    | No_output_xml -> None\n    | Output_xml_to_stdout -> Some Stdlib.stdout\n    | Output_xml_to_file filename -> Some (open_out filename) in\n  Option.iter (\n    fun chan ->\n      let doc = create_inspector_xml input_disks inspect target_meta in\n      DOM.doc_to_chan chan doc;\n      Stdlib.flush chan\n  ) chan;\n\n  message (f_\"Finishing off\");\n  (* As the last thing, write a file indicating success before\n   * we exit (so before we kill the helpers).  The helpers may\n   * use the presence or absence of the file to determine if\n   * on-success or on-fail cleanup is required.\n   *)\n  with_open_out (v2vdir // \"done\") (fun _ -> ())\n\n(* Conversion can fail or hang if there is insufficient free space in\n * the large temporary directory.  Some input modules use large_tmpdir\n * to unpack OVAs or store qcow2 overlays and some output modules\n * use it to store temporary files.  In addition the  500 MB guestfs\n * appliance may be created there.  (RHBZ#1316479, RHBZ#2051394)\n *)\nand check_host_free_space () =\n  let free_space = StatVFS.free_space (StatVFS.statvfs large_tmpdir) in\n  debug \"check_host_free_space: large_tmpdir=%s free_space=%Ld\"\n        large_tmpdir free_space;\n  if free_space < 1_073_741_824L then\n    error (f_\"insufficient free space in the conversion server temporary \\\n              directory %s (%s).\\n\\nEither free up space in that directory, \\\n              or set the LIBGUESTFS_CACHEDIR environment variable to point \\\n              to another directory with more than 1GB of free space.\\n\\n\\\n              See also the virt-v2v(1) manual, section \\\"Minimum free \\\n              space check in the host\\\".\")\n          large_tmpdir (human_size free_space)\n\nlet () = run_main_and_handle_errors main\n"
  },
  {
    "path": "in-place/in_place.mli",
    "content": "(* virt-v2v-in-place\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(* virt-v2v-in-place main program.\n   Nothing is exported. *)\n"
  },
  {
    "path": "in-place/test-docs.sh",
    "content": "#!/bin/bash -\n# libguestfs\n# Copyright (C) 2016-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nsource ../tests/functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\n$srcdir/../podcheck.pl virt-v2v-in-place.pod virt-v2v-in-place \\\n  --path $srcdir/../common/options \\\n  --ignore=\\\n--ic,\\\n--if,\\\n--io,\\\n--ip,\\\n--it,\\\n--oa,\\\n--oc,\\\n--of,\\\n--on,\\\n--oo,\\\n--op,\\\n--os,\\\n$virt_customize_options\n"
  },
  {
    "path": "in-place/virt-v2v-in-place.pod",
    "content": "=head1 NAME\n\nvirt-v2v-in-place - Convert a guest to use KVM in-place\n\n=head1 SYNOPSIS\n\n virt-v2v-in-place -i disk [other -i* options]\n                   [virt-customize options]\n                   filename\n                   [-O output.xml]\n\n virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\n                   [virt-customize options]\n                   guest\n                   [-O output.xml]\n\n=head1 DESCRIPTION\n\nVirt-v2v-in-place converts a single guest from a foreign hypervisor to\nrun on KVM.  It does this conversion in place, modifying the original\ndisk.\n\nThis manual page only documents the differences between this tool and\nvirt-v2v.  You should read L<virt-v2v(1)> first.\n\n=head2 Selecting the input disk\n\nYou normally run virt-v2v with one or more I<-i*> options controlling\nthe input mode.  Virt-v2v-in-place can only convert guests stored in\nlocal files.\n\nThis command will do an in-place conversion of F<filename.img>:\n\n virt-v2v-in-place -i disk filename.img\n\nIf the guest has been copied to local libvirt then:\n\n virt-v2v-in-place -i libvirt guest\n\n=head2 Output XML\n\nOptionally use the I<-O> option to write post-conversion metadata\nabout the guest to an XML file.  This is in the same format as\nL<virt-v2v-inspector(1)>.  This can be used, for example, to find out\nwhat operating system and firmware was found inside the guest during\nconversion.\n\n=head2 Exit code\n\nIf virt-v2v-in-place fails it will return a non-zero (error) exit\ncode.  In this case, the disk image will be in an B<unknown, possibly\ncorrupted state>.\n\nIf the image contains important information you should ensure you have\na backup before trying a virt-v2v-in-place conversion.  And you should\ncheck the exit code is zero before using the disk image after a\nconversion.\n\n=head1 EXAMPLES\n\n=head1 OPTIONS\n\n=over 4\n\n=item B<--help>\n\nDisplay help.\n\n=item B<-b> ...\n\n=item B<--bridge> ...\n\nSee I<--network> below.\n\nifelse(ENABLE_BLOCK_DRIVER, yes, `\n\n=item B<--block-driver> B<virtio-blk>\n\n=item B<--block-driver> B<virtio-scsi>\n\nWhen choosing a block driver for Windows guests, prefer C<virtio-blk> or\nC<virtio-scsi>.  The default is C<virtio-blk>.\n\nNote this has no effect for Linux guests at the moment.  That may be\nadded in future.\n')\n\n=item B<--colors>\n\n=item B<--colours>\n\nUse ANSI colour sequences to colourize messages.  This is the default\nwhen the output is a tty.  If the output of the program is redirected\nto a file, ANSI colour sequences are disabled unless you use this\noption.\n\n=item B<--echo-keys>\n\nWhen prompting for keys and passphrases, virt-v2v normally turns\nechoing off so you cannot see what you are typing.  If you are not\nworried about Tempest attacks and there is no one else in the room you\ncan specify this flag to see what you are typing.\n\nNote this options only applies to keys and passphrases for encrypted\ndevices and partitions, not for passwords used to connect to remote\nservers.\n\n=item B<-i> B<disk>\n\nSet the input method to I<disk>.\n\nIn this mode you can read a virtual machine disk image with no\nmetadata.  virt-v2v tries to guess the best default metadata.  This is\nusually adequate but you can get finer control (eg. of memory and\nvCPUs) by using I<-i libvirtxml> instead.  Only guests that use a single\ndisk can be imported this way.\n\n=item B<-i> B<libvirt>\n\nSet the input method to I<libvirt>.  This is the default.\n\nIn this mode you have to specify a libvirt guest name or UUID on the\ncommand line.  You may also specify a libvirt connection URI (see\nI<-ic>).\n\n=item B<-i> B<libvirtxml>\n\nSet the input method to I<libvirtxml>.\n\nIn this mode you have to pass a libvirt XML file on the command line.\nThis file is read in order to get metadata about the source guest\n(such as its name, amount of memory), and also to locate the input\ndisks.  See L</Minimal XML for -i libvirtxml option> below.\n\n=item B<-i> B<local>\n\nThis is the same as I<-i disk>.\n\n=item B<-ic> libvirtURI\n\nSpecify a libvirt connection URI to use when reading the guest.  This\nis only used when S<I<-i libvirt>>.\n\nOnly local libvirt connections to locally stored disks can be used.\n\n=item B<-if> format\n\nFor I<-i disk> only, this specifies the format of the input disk\nimage.  For other input methods you should specify the input\nformat in the metadata.\n\n=item B<-io> OPTION=VALUE\n\nSet input option(s) related to the current input mode or transport.\nTo display short help on what options are available you can use:\n\n virt-v2v-in-place -it disk -io \"?\"\n\n=item B<-ip> filename\n\nSupply a file containing a password to be used when connecting to the\nsource.  If this is omitted then the input hypervisor may ask for the\npassword interactively.  Note the file should contain the whole\npassword, B<without any trailing newline>, and for security the file\nshould have mode C<0600> so that others cannot read it.\n\n__INCLUDE:key-option.pod__\n\n__INCLUDE:keys-from-stdin-option.pod__\n\nNote I<--keys-from-stdin> only applies to keys and passphrases for\nencrypted devices and partitions, not for passwords used to connect to\nremote servers.\n\n=item B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\n\n=item B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\n\nMap source NIC MAC address to a network or bridge.\n\nSee L<virt-v2v(1)/Networks and bridges>.\n\n=item B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\n\nForce a particular interface (controlled by its MAC address) to have a\nstatic IP address after boot.\n\nThe fields in the parameter are: C<ipaddr> is the IP address.  C<gw>\nis the optional gateway IP address.  C<len> is the subnet mask length\n(an integer).  The final parameters are zero or more nameserver IP\naddresses.\n\nThis option can be supplied zero or more times.\n\nYou only need to use this option for certain broken guests such as\nWindows which are unable to preserve MAC to static IP address mappings\nautomatically.  You don't need to use it if Windows is using DHCP.  It\nis currently ignored for Linux guests since they do not have this\nproblem.\n\n=item B<--machine-readable>\n\n=item B<--machine-readable>=format\n\nThis option is used to make the output more machine friendly\nwhen being parsed by other programs.  See\nL<virt-v2v(1)/Machine readable output>.\n\n=item B<-m> MB\n\n=item B<--memsize> MB\n\nChange the amount of memory allocated when doing the conversion.\nVirt-v2v-in-place will usually choose a suitable default.  Increase\nthis if you see that the conversion step is running out of memory.\n\n=item B<-n> in:out\n\n=item B<-n> out\n\n=item B<--network> in:out\n\n=item B<--network> out\n\n=item B<-b> in:out\n\n=item B<-b> out\n\n=item B<--bridge> in:out\n\n=item B<--bridge> out\n\nMap network (or bridge) called C<in> to network (or bridge) called\nC<out>.  If no C<in:> prefix is given, all other networks (or bridges)\nare mapped to C<out>.\n\nSee L<virt-v2v(1)/Networks and bridges>.\n\n=item B<--no-fstrim>\n\nDo not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\n\n=item B<-O> output.xml\n\n=item B<-O ->\n\nIf this option is present, write post-conversion metadata about the\nguest to the named XML file, or to stdout if I<-O -> is used.  This is\nin the same format as L<virt-v2v-inspector(1)>.\n\n=item B<--print-source>\n\nPrint information about the source guest and stop.  This option is\nuseful when you are setting up network and bridge maps.\nSee L<virt-v2v(1)/Networks and bridges>.\n\n=item B<-q>\n\n=item B<--quiet>\n\nThis disables progress bars and other unnecessary output.\n\n=item B<--root> ...\n\nChoose the root filesystem to be converted.  See the documentation of\nthis option in L<virt-v2v(1)>.\n\n=item B<--smp> N\n\nChange the number of virtual CPUs used when doing the conversion.\nVirt-v2v-in-place will usually choose a suitable default.\n\nIncreasing this beyond 8 may improve conversion performance, if your\nhost has sufficient physical CPUs.  You may also need to increase the\nmemory size (I<--memsize> option).\n\n=item B<-v>\n\n=item B<--verbose>\n\nEnable verbose messages for debugging.\n\n=item B<-V>\n\n=item B<--version>\n\nDisplay version number and exit.\n\n=item B<--wrap>\n\nWrap error, warning, and informative messages.  This is the default\nwhen the output is a tty.  If the output of the program is redirected\nto a file, wrapping is disabled unless you use this option.\n\n=item B<-x>\n\nEnable tracing of libguestfs API calls.\n\n=back\n\n=head2 Minimal XML for -i libvirtxml option\n\nWhen using the I<-i libvirtxml> option, you have to supply some\nlibvirt XML.  Writing this from scratch is hard, so the template below\nis helpful.\n\nB<Note this should only be used for testing and/or where you know what\nyou're doing!>  If you have libvirt metadata for the guest, always use\nthat instead.\n\n <domain type='kvm'>\n   <name> NAME </name>\n   <memory>1048576</memory>\n   <vcpu>2</vcpu>\n   <os>\n     <type>hvm</type>\n     <boot dev='hd'/>\n   </os>\n   <features>\n     <acpi/>\n     <apic/>\n     <pae/>\n   </features>\n   <devices>\n     <disk type='file' device='disk'>\n       <driver name='qemu' type='raw'/>\n       <source file='/path/to/disk/image'/>\n       <target dev='hda' bus='ide'/>\n       <checksum method='sha256' fail='error'>123123...</checksum>\n     </disk>\n     <interface type='network'>\n       <mac address='52:54:00:01:02:03'/>\n       <source network='default'/>\n       <model type='rtl8139'/>\n     </interface>\n   </devices>\n </domain>\n\n=head2 Disk checksum\n\nThe optional E<lt>checksumE<gt> field specifies the expected hash of\nthe corresponding disk.  It can be specified by management tools in\norder to do end-to-end data integrity checks.\n\nNote this is the checksum of the raw format content of the disk.  If\nthe disk is in a container format (eg. qcow2) it is the checksum of\nthe content, I<not> of the container.\n\nThe checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\n\nThe fail attribute can be C<error> to fail the conversion if the\nchecksum does not match; C<warn> to print a warning but continue;\nC<ignore> to ignore the checksum and not even compute it; or C<print>\nto print the actual checksum and continue.  The default is\nC<fail=warn>.\n\nComputing the checksum of a remote (eg HTTP) source can be slow and\nexpensive.\n\n=head1 FILES\n\nFiles used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\n\n=head1 ENVIRONMENT VARIABLES\n\nEnvironment variables used are the same as for virt-v2v.  See\nL<virt-v2v(1)/ENVIRONMENT VARIABLES>.\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>,\nL<virt-p2v(1)>,\nL<guestfs(3)>,\nL<guestfish(1)>,\nL<qemu-img(1)>,\nL<nbdkit(1)>,\nL<http://libguestfs.org/>.\n\n=head1 AUTHORS\n\nMatthew Booth\n\nCédric Bosdonnat\n\nLaszlo Ersek\n\nTomáš Golembiovský\n\nShahar Havivi\n\nRichard W.M. Jones\n\nRoman Kagan\n\nMike Latimer\n\nNir Soffer\n\nPino Toscano\n\nXiaodai Wang\n\nMing Xie\n\nTingting Zheng\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "input/Makefile.am",
    "content": "# helper-v2v-input tool\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nEXTRA_DIST = \\\n\t$(SOURCES_MLI) \\\n\t$(SOURCES_ML) \\\n\t$(NULL)\n\nSOURCES_MLI = \\\n\tinput.mli \\\n\tinput_disk.mli \\\n\tinput_libvirt.mli \\\n\tinput_ova.mli \\\n\tinput_vcenter_https.mli \\\n\tinput_vddk.mli \\\n\tinput_vmx.mli \\\n\tinput_xen_ssh.mli \\\n\tnbdkit_curl.mli \\\n\tnbdkit_ssh.mli \\\n\tOVA.mli \\\n\tOVF.mli \\\n\tparse_domain_from_vmx.mli \\\n\tparse_libvirt_xml.mli \\\n\tVMX.mli \\\n\tselect_input.mli \\\n\tssh.mli \\\n\tvCenter.mli \\\n\t$(NULL)\n\nSOURCES_ML = \\\n\tparse_libvirt_xml.ml \\\n\tOVF.ml \\\n\tOVA.ml \\\n\tnbdkit_curl.ml \\\n\tnbdkit_ssh.ml \\\n\tssh.ml \\\n\tVMX.ml \\\n\tparse_domain_from_vmx.ml \\\n\tvCenter.ml \\\n\tinput.ml \\\n\tinput_disk.ml \\\n\tinput_libvirt.ml \\\n\tinput_ova.ml \\\n\tinput_vcenter_https.ml \\\n\tinput_vddk.ml \\\n\tinput_vmx.ml \\\n\tinput_xen_ssh.ml \\\n\tselect_input.ml \\\n\t$(NULL)\n\n# We pretend that we're building a C library.  automake handles the\n# compilation of the C sources for us.  At the end we take the C\n# objects and OCaml objects and link them into the OCaml library.\n# This C library is never used.\n\nnoinst_LIBRARIES = libmlinput.a\n\nif !HAVE_OCAMLOPT\nMLINPUT_CMA = mlinput.cma\nelse\nMLINPUT_CMA = mlinput.cmxa\nendif\n\nnoinst_DATA = $(MLINPUT_CMA)\n\nlibmlinput_a_SOURCES = dummy.c\nlibmlinput_a_CPPFLAGS = \\\n\t-DCAML_NAME_SPACE \\\n\t-I. \\\n\t-I$(top_builddir) \\\n\t-I$(shell $(OCAMLC) -where) \\\n\t-I$(top_srcdir)/lib \\\n\t$(NULL)\nlibmlinput_a_CFLAGS = \\\n\t-pthread \\\n\t-fPIC \\\n\t$(WARN_CFLAGS) $(WERROR_CFLAGS) \\\n\t$(LIBGUESTFS_CFLAGS) \\\n\t$(NULL)\n\nBOBJECTS = $(SOURCES_ML:.ml=.cmo)\nXOBJECTS = $(BOBJECTS:.cmo=.cmx)\n\nOCAMLPACKAGES = \\\n\t-package str,unix,guestfs,libvirt,nbd \\\n\t-I $(top_builddir)/common/utils/.libs \\\n\t-I $(top_builddir)/gnulib/lib/.libs \\\n\t-I $(top_builddir)/lib \\\n\t-I $(top_builddir)/common/mlstdutils \\\n\t-I $(top_builddir)/common/mlutils \\\n\t-I $(top_builddir)/common/mlgettext \\\n\t-I $(top_builddir)/common/mlpcre \\\n\t-I $(top_builddir)/common/mltools \\\n\t-I $(top_builddir)/common/mlxml \\\n\t$(NULL)\nif HAVE_OCAML_PKG_GETTEXT\nOCAMLPACKAGES += -package gettext-stub\nendif\n\nOCAMLCLIBS = \\\n\t-pthread \\\n\t$(LIBGUESTFS_LIBS) \\\n\t$(LIBXML2_LIBS) \\\n\t-lgnu \\\n\t$(NULL)\n\nOCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)'\n\nif !HAVE_OCAMLOPT\nOBJECTS = $(BOBJECTS)\nelse\nOBJECTS = $(XOBJECTS)\nendif\n\nOCAMLLINKFLAGS = \\\n\tmlstdutils.$(MLARCHIVE) \\\n\tmlcutils.$(MLARCHIVE) \\\n\tmlgettext.$(MLARCHIVE) \\\n\tmlpcre.$(MLARCHIVE) \\\n\tmlxml.$(MLARCHIVE) \\\n\tmltools.$(MLARCHIVE) \\\n\tmllibvirt.$(MLARCHIVE) \\\n\tmlv2vlib.$(MLARCHIVE) \\\n\t$(LINK_CUSTOM_OCAMLC_ONLY) \\\n\t$(NULL)\n\nlibmlinput_a_DEPENDENCIES = \\\n\t$(OBJECTS)\n\n$(MLINPUT_CMA): $(OBJECTS) libmlinput.a\n\t$(AM_V_GEN) $(OCAMLFIND) mklib $(OCAMLPACKAGES) \\\n\t    $(OBJECTS) $(libmlinput_a_OBJECTS) -o mlinput\n\n# Dependencies.\n.depend: \\\n\t$(srcdir)/*.mli \\\n\t$(srcdir)/*.ml\n\t$(top_builddir)/ocaml-dep.sh $^\n-include .depend\n"
  },
  {
    "path": "input/OVA.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\nopen Common_gettext.Gettext\n\nopen Utils\n\ntype t = {\n  (* Save the original OVA name, for error messages. *)\n  orig_ova : string;\n\n  (* Top directory of OVA.  If the OVA was already a directory then\n   * this is just that directory.  However in normal cases this is\n   * a temporary directory that we create, unpacking either just the\n   * OVF and MF files, or those plus the disks.  This temporary\n   * directory will be cleaned up on exit.\n   *)\n  top_dir : string;\n\n  ova_type : ova_type;\n}\n\nand ova_type =\n  (* The original OVA was a directory.  Or the OVA was fully unpacked\n   * into a temporary directory.\n   *\n   * In either case everything is available in [top_dir].\n   *)\n  | Directory\n\n  (* The original OVA was an uncompressed tar file and we are able\n   * to optimize access to the disks by keeping them in the tarball.\n   *\n   * The OVF and MF files only have been unpacked in [top_dir].\n   *)\n  | TarOptimized of string (* tarball *)\n\nlet string_of_t { orig_ova; top_dir; ova_type } =\n  sprintf \"orig_ova = %s, top_dir = %s, ova_type = %s\"\n    orig_ova top_dir\n    (match ova_type with\n     | Directory -> \"Directory\"\n     | TarOptimized tarball -> \"TarOptimized \" ^ tarball)\n\ntype file_ref =\n  | LocalFile of string\n  | TarFile of string * string\n\ntype mf_record = file_ref * Checksums.csum_t\n\nlet rec parse_ova ova =\n  (* The spec allows a directory to be specified as an ova.  This\n   * is also pretty convenient.\n   *)\n  let top_dir, ova_type =\n    if is_directory ova then ova, Directory\n    else (\n      let tmpdir =\n        let t = Mkdtemp.temp_dir ~base_dir:large_tmpdir \"ova.\" in\n        On_exit.rm_rf t;\n        t in\n\n      match detect_file_type ova with\n      | `Tar ->\n         (* Normal ovas are tar file (not compressed). *)\n\n         (* In newer QEMU we don't have to extract everything.\n          * We can access disks inside the tar archive directly.\n          *)\n         if qemu_img_supports_offset_and_size () &&\n            libvirt_supports_json_raw_driver () &&\n            (untar_metadata ova tmpdir;\n             no_disks_are_compressed ova tmpdir) then\n           tmpdir, TarOptimized ova\n         else (\n           (* If qemu/libvirt is too old or any disk is compressed\n            * then we must fall back on the slow path.\n            *)\n           untar ova tmpdir;\n           tmpdir, Directory\n         )\n\n      | `Zip ->\n         (* However, although not permitted by the spec, people ship\n          * zip files as ova too.\n          *)\n         let cmd =\n           [ \"unzip\" ] @ (if verbose () then [] else [ \"-q\" ]) @\n           [ \"-j\"; \"-d\"; tmpdir; ova ] in\n         if run_command cmd <> 0 then\n           error (f_\"error unpacking %s, see earlier error messages\") ova;\n         tmpdir, Directory\n\n      | (`GZip|`XZ) as format ->\n         (match uncompressed_type format ova with\n          | `Tar ->\n             untar ~format ova tmpdir;\n             tmpdir, Directory\n          | `Zip | `GZip | `XZ | `Unknown ->\n             error (f_\"%s: unsupported file format\\n\\nFormats which we \\\n                       currently understand for '-i ova' are: tar \\\n                       (uncompressed, compress with gzip or xz), zip\") ova\n         )\n\n      | `Unknown ->\n         error (f_\"%s: unsupported file format\\n\\nFormats which we \\\n                   currently understand for '-i ova' are: tar (uncompressed, \\\n                   compress with gzip or xz), zip\") ova\n    ) in\n\n  (* Exploded path must be absolute (RHBZ#1155121). *)\n  let top_dir = absolute_path top_dir in\n\n  (* top_dir must not end with / except if it == \"/\" (which is\n   * likely not what you want).  (RHBZ#1964324)\n   *)\n  let top_dir =\n    if top_dir = \"/\" || not (String.ends_with \"/\" top_dir) then top_dir\n    else String.sub top_dir 0 (String.length top_dir - 1) in\n\n  (* If virt-v2v is running as root, and the backend is libvirt, then\n   * we have to chmod the directory to 0755 and files to 0644\n   * so it is readable by qemu.qemu.  This is libvirt bug RHBZ#890291.\n   *)\n  if Unix.geteuid () = 0 && backend_is_libvirt () then (\n    warning (f_\"making OVA directory public readable to work around \\\n                libvirt bug https://bugzilla.redhat.com/1045069\");\n    let what =\n      match ova_type with\n      | Directory -> [ top_dir ]\n      | TarOptimized ova -> [ top_dir; ova ] in\n    let cmd = [ \"chmod\"; \"-R\"; \"go=u,go-w\" ] @ what in\n    ignore (run_command cmd)\n  );\n\n  let ova = { orig_ova = ova; top_dir; ova_type } in\n  debug \"ova: %s\" (string_of_t ova);\n  ova\n\n(* Return true if [libvirt] supports [\"json:\"] pseudo-URLs and accepts the\n * [\"raw\"] driver. Function also returns true if [libvirt] backend is not\n * used.  This didn't work in libvirt < 3.1.0.\n *)\nand libvirt_supports_json_raw_driver () =\n  if backend_is_libvirt () then (\n    let sup = Libvirt_utils.libvirt_get_version () >= (3, 1, 0) in\n    debug \"libvirt supports  \\\"raw\\\" driver in json URL: %B\" sup;\n    sup\n  )\n  else\n    true\n\n(* No disks compressed?  We need to check the OVF file. *)\nand no_disks_are_compressed ova tmpdir =\n  let t = { orig_ova = ova; top_dir = tmpdir; ova_type = Directory } in\n  let ovf = get_ovf_file t in\n  let disks = OVF.parse_disks ovf in\n  not (List.exists (fun { OVF.compressed } -> compressed) disks)\n\nand pigz_available =\n  let test = lazy (shell_command \"pigz --help >/dev/null 2>&1\" = 0) in\n  fun () -> Lazy.force test\n\nand pxz_available =\n  let test = lazy (shell_command \"pxz --help >/dev/null 2>&1\" = 0) in\n  fun () -> Lazy.force test\n\nand zcat_command_of_format = function\n  | `GZip ->\n     if pigz_available () then \"pigz -c -d\" else \"gzip -c -d\"\n  | `XZ ->\n     if pxz_available () then \"pxz -c -d\" else \"xz -c -d\"\n\n(* Untar part or all files from tar archive. If [paths] is specified it is\n * a list of paths in the tar archive.\n *)\nand untar ?format ?(paths = []) file outdir =\n  let paths = String.concat \" \" (List.map quote paths) in\n  let cmd =\n    match format with\n    | None ->\n       sprintf \"tar -xf %s -C %s %s\"\n               (quote file) (quote outdir) paths\n    | Some ((`GZip|`XZ) as format) ->\n       sprintf \"%s %s | tar -xf - -C %s %s\"\n               (zcat_command_of_format format) (quote file)\n               (quote outdir) paths in\n  if shell_command cmd <> 0 then\n    error (f_\"error unpacking %s, see earlier error messages\") file\n\n(* Untar only ovf and manifest from the archive *)\nand untar_metadata file outdir =\n  let files = external_command (sprintf \"tar -tf %s\" (Filename.quote file)) in\n  let files =\n    List.filter_map (\n      fun f ->\n        if Filename.check_suffix f \".ovf\" ||\n           Filename.check_suffix f \".mf\" then Some f\n        else None\n    ) files in\n  untar ~paths:files file outdir\n\n(* Uncompress the first few bytes of [file] and return it as\n * [(bytes, len)].\n *)\nand uncompress_head format file =\n  let cmd = sprintf \"%s %s\" (zcat_command_of_format format) (quote file) in\n  let chan_out, chan_in, chan_err = Unix.open_process_full cmd [||] in\n  let b = Bytes.create 512 in\n  let len = input chan_out b 0 (Bytes.length b) in\n  (* We're expecting the subprocess to fail because we close\n   * the pipe early, so:\n   *)\n  ignore (Unix.close_process_full (chan_out, chan_in, chan_err));\n  b, len\n\n(* Run [detect_file_type] on a compressed file, returning the\n * type of the uncompressed content (if known).\n *)\nand uncompressed_type format file =\n  let head, headlen = uncompress_head format file in\n  let tmpfile, chan = Filename.open_temp_file \"ova.file.\" \"\" in\n  output chan head 0 headlen;\n  close_out chan;\n  let ret = detect_file_type tmpfile in\n  Sys.remove tmpfile;\n  ret\n\n(* Find files in [dir] ending with [ext]. *)\nand find_files dir ext =\n  let rec loop = function\n    | [] -> []\n    | dir :: rest ->\n       let files = Array.to_list (Sys.readdir dir) in\n       (* Ignore dot-underscore-files, added when using 'tar' on some Macs. *)\n       let files =\n         List.filter (fun x -> not (String.starts_with \"._\" x)) files in\n       (* Prefix with the directory to form a path. *)\n       let files = List.map (Filename.concat dir) files in\n       let dirs, files = List.partition Sys.is_directory files in\n       (* Only files with the given extension. *)\n       let files =\n         List.filter (fun x -> Filename.check_suffix x ext) files in\n       files @ loop (rest @ dirs)\n  in\n  loop [dir]\n\nand get_ovf_file { orig_ova; top_dir } =\n  let ovf = find_files top_dir \".ovf\" in\n  match ovf with\n  | [] ->\n     error (f_\"no .ovf file was found in %s\") orig_ova\n  | [x] -> x\n  | _ :: _ ->\n     error (f_\"more than one .ovf file was found in %s\") orig_ova\n\nlet rex = PCRE.compile \"^(SHA1|SHA256)[[:space:]]*\\\\((.*)\\\\)[[:space:]]*= ([0-9a-fA-F]+)\\r?$\"\n\nlet get_manifest { top_dir; ova_type } =\n  let mf_files = find_files top_dir \".mf\" in\n  let manifest =\n    List.map (\n      fun mf ->\n        debug \"ova: processing manifest file %s\" mf;\n        (*               (1)                 (2)\n         * mf:           <top_dir>/bar.mf    <top_dir>/foo/bar.mf\n         * mf_folder:    <top_dir>           <top_dir>/foo\n         * mf_subfolder: \"\"                  foo\n         *)\n        let mf_folder = Filename.dirname mf in\n        let mf_subfolder =\n          if String.starts_with (top_dir // \"\") mf_folder then ( (* 2 *)\n            let len = String.length top_dir + 1 in\n            String.sub mf_folder len (String.length mf_folder - len)\n          )\n          else if top_dir = mf_folder then \"\" (* 1 *)\n          else assert false in\n        with_open_in mf (\n          fun chan ->\n            let ret = ref [] in\n            let rec loop () =\n              let line = input_line chan in\n              if PCRE.matches rex line then (\n                let csum_type = PCRE.sub 1\n                and filename = PCRE.sub 2\n                and expected = PCRE.sub 3 in\n                let csum = Checksums.of_string csum_type expected in\n                let file_ref =\n                  match ova_type with\n                  | Directory ->\n                     LocalFile (mf_folder // filename)\n                  | TarOptimized tar ->\n                     TarFile (tar, mf_subfolder // filename) in\n                List.push_front (file_ref, csum) ret\n              )\n              else\n                warning (f_\"unable to parse line from manifest file: %S\") line;\n              loop ()\n            in\n            (try loop () with End_of_file -> ());\n            !ret\n        )\n    ) mf_files in\n\n  List.flatten manifest\n\nlet get_file_list { top_dir; ova_type } =\n  match ova_type with\n  | Directory ->\n     let cmd = sprintf \"cd %s && find -type f\" (quote top_dir) in\n     let files = external_command cmd in\n     let files = List.sort compare files in\n     List.map (fun filename -> LocalFile (top_dir // filename)) files\n\n  | TarOptimized tar ->\n     let cmd = sprintf \"tar -tf %s\" (quote tar) in\n     let files = external_command cmd in\n     (* Don't include directories in the final list. *)\n     let files = List.filter (fun s -> not (String.ends_with \"/\" s)) files in\n     let files = List.sort compare files in\n     List.map (fun filename -> TarFile (tar, filename)) files\n\nlet resolve_href ({ top_dir; ova_type } as t) href =\n  let ovf = get_ovf_file t in\n  let ovf_folder = Filename.dirname ovf in\n\n  (* Since [href] comes from an untrusted source, we must ensure\n   * that it doesn't reference a path outside [top_dir].  An\n   * additional complication is that [href] is relative to\n   * the directory containing the OVF ([ovf_folder]).  A further\n   * complication is that the file might not exist at all.\n   *)\n  match ova_type with\n  | Directory ->\n     let filename = ovf_folder // href in\n     let real_top_dir = Realpath.realpath top_dir in\n     (try\n        let filename = Realpath.realpath filename in\n        if not (String.starts_with real_top_dir filename) then\n          error (f_\"-i ova: invalid OVA file: path ‘%s’ references a file \\\n                    outside the archive\") href;\n        Some (LocalFile filename)\n      with\n        Unix_error (ENOENT, \"realpath\", _) -> None\n     )\n\n  | TarOptimized tar ->\n     (* Security: Since the only thing we will do with the computed\n      * filename is to call get_tar_offet_and_size, it doesn't\n      * matter if the filename is bogus or references some file\n      * on the filesystem outside the tarball.  Therefore we don't\n      * need to do any sanity checking here.\n      *)\n\n     (*             (1)                 (2)\n      * ovf:        <top_dir>/bar.ovf   <top_dir>/foo/bar.ovf\n      * ovf_folder: <top_dir>           <top_dir>/foo\n      * subdir:     \"\"                  foo\n      * filename:   href                foo/href\n      *)\n     let filename =\n       if String.starts_with (top_dir // \"\") ovf_folder then ( (* 2 *)\n         let len = String.length top_dir + 1 in\n         String.sub ovf_folder len (String.length ovf_folder - len) // href\n       )\n       else if top_dir = ovf_folder then href (* 1 *)\n       else assert false in\n\n     (* Does the file exist in the tarball? *)\n     let cmd = sprintf \"tar tf %s %s >/dev/null 2>&1\"\n                       (quote tar) (quote filename) in\n     debug \"ova: testing if %s exists in %s\" filename tar;\n     if Sys.command cmd = 0 then (\n       debug \"ova: file exists\";\n       Some (TarFile (tar, filename))\n     )\n     else (\n       debug \"ova: file does not exist\";\n       None\n     )\n\nlet ws = PCRE.compile \"\\\\s+\"\nlet re_tar_message = PCRE.compile \"\\\\*\\\\* [^*]+ \\\\*\\\\*$\"\n\nlet get_tar_offet_and_size tar filename =\n  let cmd =\n    sprintf \"LANG=C tar \\\n             --no-auto-compress --quoting-style=literal --numeric-owner \\\n             -tRvf %s\"\n      (Filename.quote tar) in\n  let lines = external_command cmd in\n  let rec loop lines =\n    match lines with\n    | [] -> raise Not_found\n    | line :: lines -> (\n      (* Lines have the form:\n       * block <offset>: <perms> <owner>/<group> <size> <mdate> <mtime> <file>\n       * or:\n       * block <offset>: ** Block of NULs **\n       * block <offset>: ** End of File **\n       *)\n      if PCRE.matches re_tar_message line then\n        loop lines (* ignore \"** Block of NULs **\" etc. *)\n      else (\n        let elems = PCRE.nsplit ~max:8 ws line in\n        if List.length elems = 8 && List.hd elems = \"block\" then (\n          let elems = Array.of_list elems in\n          let offset = elems.(1) in\n          let size = elems.(4) in\n          let fname = elems.(7) in\n\n          if fname <> filename then\n            loop lines\n          else (\n            let offset =\n              try\n                (* There should be a colon at the end *)\n                let i = String.rindex offset ':' in\n                if i == (String.length offset)-1 then\n                  Int64.of_string (String.sub offset 0 i)\n                else\n                  failwith \"colon at wrong position\"\n              with Failure _ | Not_found ->\n                failwithf (f_\"invalid offset returned by tar: %S\") offset in\n\n            let size =\n              try Int64.of_string size\n              with Failure _ ->\n                failwithf (f_\"invalid size returned by tar: %S\") size in\n\n            (* Note: Offset is actually block number and there is a single\n             * block with tar header at the beginning of the file. So skip\n             * the header and convert the block number to bytes before\n             * returning.\n             *)\n            (offset +^ 1L) *^ 512L, size\n          )\n        )\n        else\n          failwithf (f_\"failed to parse line returned by tar: %S\") line\n      )\n    )\n  in\n  loop lines\n"
  },
  {
    "path": "input/OVA.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Helper functions for dealing with the OVA pseudo-format. *)\n\ntype t\n\nval parse_ova : string -> t\n(** The parameter references either an OVA file or a directory\n    containing an unpacked OVA.\n\n    The OVA is \"opened\".  If necessary, parts of the OVA are\n    unpacked into a temporary directory.  This can consume a lot\n    of space, although we are able to optimize some common cases.\n\n    This does {b not} parse or verify the OVF, MF or disks. *)\n\nval get_ovf_file : t -> string\n(** Return the filename of the OVF file from the OVA.  This will\n    be a local file (might be a temporary file) valid for the\n    lifetime of the handle.\n\n    The filename can be passed directly to\n    {!OVF.parse_ovf_from_ova}. *)\n\ntype file_ref =\n  | LocalFile of string           (** A local filename. *)\n  | TarFile of string * string    (** Tar file containing file. *)\n(** A file reference, pointing usually to a disk.  If the OVA\n    is unpacked during parsing then this points to a local file.\n    It might be a temporary file, but it is valid for the lifetime\n    of the handle.  If we are optimizing access to the OVA then\n    it might also be a reference to a file within a tarball. *)\n\ntype mf_record = file_ref * Checksums.csum_t\n(** A manifest record: (file reference, checksum of file). *)\n\nval get_manifest : t -> mf_record list\n(** Find and parse all manifest ([*.mf]) files in the OVA.\n    Parse out the filenames and checksums from these files\n    and return the full manifest as a single list.\n\n    Note the checksums are returned, but this function does not\n    verify them.  Also VMware-generated OVAs can return\n    non-existent files in this list. *)\n\nval get_file_list : t -> file_ref list\n(** List the files actually found in the OVA file.  This\n    can be different from the manifest (which is often\n    incorrect). *)\n\nval resolve_href : t -> string -> file_ref option\n(** Resolve an OVF [href] into an actual file reference.  Returns [None]\n    if the file does not exist. *)\n\nval get_tar_offet_and_size : string -> string -> int64 * int64\n(** [get_tar_offet_and_size tar filename] looks up file in the [tar]\n    archive and returns a tuple containing at which byte it starts\n    and how long the file is.\n\n    Function raises [Not_found] if there is no such file inside [tar] and\n    [Failure] if there is any error parsing the tar output. *)\n"
  },
  {
    "path": "input/OVF.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(* Parse OVF from an externally produced OVA file. *)\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\nopen Xpath_helpers\n\nopen Printf\n\ntype disk = {\n  source_disk : Types.source_disk;\n  href : string;                (* The <File href> from the OVF file. *)\n  compressed : bool;            (* If the file is gzip compressed. *)\n}\n\nlet xpathctx_of_ovf ovf_filename =\n  let doc = Xml.parse_file ovf_filename in\n\n  (* Handle namespaces. *)\n  let xpathctx = Xml.xpath_new_context doc in\n  Xml.xpath_register_ns xpathctx\n                        \"ovf\" \"http://schemas.dmtf.org/ovf/envelope/1\";\n  Xml.xpath_register_ns xpathctx\n                        \"rasd\" \"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData\";\n  Xml.xpath_register_ns xpathctx\n                        \"vmw\" \"http://www.vmware.com/schema/ovf\";\n  Xml.xpath_register_ns xpathctx\n                        \"vssd\" \"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData\";\n\n  xpathctx\n\nlet rec parse_ovf_from_ova ovf_filename =\n  let xpathctx = xpathctx_of_ovf ovf_filename in\n\n  let xpath_string = xpath_string xpathctx\n  and xpath_int = xpath_int xpathctx\n  and xpath_int64 = xpath_int64 xpathctx in\n\n  (* Search for vm name. *)\n  let name =\n    match xpath_string \"/ovf:Envelope/ovf:VirtualSystem/ovf:Name/text()\" with\n    | None | Some \"\" -> None\n    | Some _ as name -> name in\n\n  (* Search for memory. *)\n  let memory = Option.value ~default:(1024L *^ 1024L) (xpath_int64 \"/ovf:Envelope/ovf:VirtualSystem/ovf:VirtualHardwareSection/ovf:Item[rasd:ResourceType/text()=4]/rasd:VirtualQuantity/text()\") in\n  let memory = memory *^ 1024L *^ 1024L in\n\n  (* Search for number of vCPUs. *)\n  let vcpu = Option.value ~default:1 (xpath_int \"/ovf:Envelope/ovf:VirtualSystem/ovf:VirtualHardwareSection/ovf:Item[rasd:ResourceType/text()=3]/rasd:VirtualQuantity/text()\") in\n\n  (* CPU topology.  coresPerSocket is a VMware proprietary extension.\n   * I couldn't find out how hyperthreads is specified in the OVF.\n   *)\n  let cores_per_socket = xpath_int \"/ovf:Envelope/ovf:VirtualSystem/ovf:VirtualHardwareSection/ovf:Item[rasd:ResourceType/text()=3]/vmw:CoresPerSocket/text()\" in\n  let cpu_topology =\n    match cores_per_socket with\n    | None -> None\n    | Some cores_per_socket when cores_per_socket <= 0 ->\n       warning (f_\"invalid vmw:CoresPerSocket (%d) ignored\")\n               cores_per_socket;\n       None\n    | Some cores_per_socket ->\n       let sockets = vcpu / cores_per_socket in\n       if sockets <= 0 then (\n         warning (f_\"invalid vmw:CoresPerSocket < number of cores\");\n         None\n       )\n       else\n         Some { s_cpu_sockets = sockets; s_cpu_cores = cores_per_socket;\n                s_cpu_threads = 1 } in\n\n  (* BIOS or EFI firmware? *)\n  let firmware_opt = xpath_string \"/ovf:Envelope/ovf:VirtualSystem/ovf:VirtualHardwareSection/vmw:Config[@vmw:key=\\\"firmware\\\"]/@vmw:value\" in\n  let firmware =\n    match firmware_opt with\n    | Some \"efi\" -> UEFI\n    | Some \"bios\" -> BIOS\n    | None -> UnknownFirmware\n    | Some s ->\n      error (f_\"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\") s;\n  in\n\n  name, memory, vcpu, cpu_topology, firmware,\n  parse_disks xpathctx, parse_removables xpathctx, parse_nics xpathctx\n\n(* Hard disks (ResourceType = 17). *)\nand parse_disks xpathctx =\n  let xpath_string = xpath_string xpathctx\n  and xpath_int = xpath_int xpathctx in\n\n  let disks = ref [] in\n  let expr = \"/ovf:Envelope/ovf:VirtualSystem/ovf:VirtualHardwareSection/ovf:Item[rasd:ResourceType/text()=17]\" in\n  let obj = Xml.xpath_eval_expression xpathctx expr in\n  let nr_nodes = Xml.xpathobj_nr_nodes obj in\n  for i = 0 to nr_nodes-1 do\n    let n = Xml.xpathobj_node obj i in\n    Xml.xpathctx_set_current_context xpathctx n;\n\n    (* XXX We assume the OVF lists these in order.\n       let address = xpath_int \"rasd:AddressOnParent/text()\" in\n     *)\n\n    (* Find the parent controller. *)\n    let parent_id = xpath_int \"rasd:Parent/text()\" in\n    let controller =\n      match parent_id with\n      | None -> None\n      | Some id -> parent_controller xpathctx id in\n\n    Xml.xpathctx_set_current_context xpathctx n;\n    let file_id =\n      Option.value ~default:\"\" (xpath_string \"rasd:HostResource/text()\") in\n    let rex = PCRE.compile \"^(?:ovf:)?/disk/(.*)\" in\n    if PCRE.matches rex file_id then (\n      (* Chase the references through to the actual file name. *)\n      let file_id = PCRE.sub 1 in\n      let expr = sprintf \"/ovf:Envelope/ovf:DiskSection/ovf:Disk[@ovf:diskId='%s']/@ovf:fileRef\" file_id in\n      let file_ref =\n        match xpath_string expr with\n        | None -> error (f_\"error parsing disk fileRef\")\n        | Some s -> s in\n      let expr = sprintf \"/ovf:Envelope/ovf:References/ovf:File[@ovf:id='%s']/@ovf:href\" file_ref in\n      let href =\n        match xpath_string expr with\n        | None -> error (f_\"no href in ovf:File (id=%s)\") file_ref\n        | Some s -> s in\n\n      let expr = sprintf \"/ovf:Envelope/ovf:References/ovf:File[@ovf:id='%s']/@ovf:compression\" file_ref in\n      let compressed =\n        match xpath_string expr with\n        | None | Some \"identity\" -> false\n        | Some \"gzip\" -> true\n        | Some s -> error (f_\"unsupported compression in OVF: %s\") s in\n\n      let disk = {\n        source_disk = {\n          s_disk_id = i;\n          s_controller = controller;\n        };\n        href = href;\n        compressed = compressed;\n      } in\n      List.push_front disk disks;\n    ) else\n      error (f_\"could not parse disk rasd:HostResource from OVF document\")\n  done;\n  List.rev !disks\n\n(* Floppies (ResourceType = 14), CDs (ResourceType = 15) and\n * CDROMs (ResourceType = 16).  (What is the difference?)  Try hard\n * to preserve the original ordering from the OVF.\n *)\nand parse_removables xpathctx =\n  let xpath_int = xpath_int xpathctx in\n\n  let removables = ref [] in\n  let expr = \"/ovf:Envelope/ovf:VirtualSystem/ovf:VirtualHardwareSection/ovf:Item[rasd:ResourceType/text()=14 or rasd:ResourceType/text()=15 or rasd:ResourceType/text()=16]\" in\n  let obj = Xml.xpath_eval_expression xpathctx expr in\n  let nr_nodes = Xml.xpathobj_nr_nodes obj in\n  for i = 0 to nr_nodes-1 do\n    let n = Xml.xpathobj_node obj i in\n    Xml.xpathctx_set_current_context xpathctx n;\n    let id =\n      match xpath_int \"rasd:ResourceType/text()\" with\n      | None -> assert false\n      | Some (14|15|16 as i) -> i\n      | Some _ -> assert false in\n\n    let slot = xpath_int \"rasd:AddressOnParent/text()\" in\n\n    (* Find the parent controller. *)\n    let parent_id = xpath_int \"rasd:Parent/text()\" in\n    let controller =\n      match parent_id with\n      | None -> None\n      | Some id -> parent_controller xpathctx id in\n\n    let typ =\n      match id with\n      | 14 -> Floppy\n      | 15 | 16 -> CDROM\n      | _ -> assert false in\n    let disk = {\n      s_removable_type = typ;\n      s_removable_controller = controller;\n      s_removable_slot = slot;\n    } in\n    List.push_front disk removables;\n  done;\n  List.rev !removables\n\n(* Search for networks ResourceType: 10 *)\nand parse_nics xpathctx =\n  let xpath_string = xpath_string xpathctx in\n\n  let nics = ref [] in\n  let expr = \"/ovf:Envelope/ovf:VirtualSystem/ovf:VirtualHardwareSection/ovf:Item[rasd:ResourceType/text()=10]\" in\n  let obj = Xml.xpath_eval_expression xpathctx expr in\n  let nr_nodes = Xml.xpathobj_nr_nodes obj in\n  for i = 0 to nr_nodes-1 do\n    let n = Xml.xpathobj_node obj i in\n    Xml.xpathctx_set_current_context xpathctx n;\n    let vnet, vnet_type =\n      match xpath_string \"rasd:Connection/text()\" with\n      | Some connection -> connection, Bridge\n      | None -> sprintf \"eth%d\" i, Network in\n    let mac = xpath_string \"rasd:Address/text()\" in\n    let nic_model =\n      match xpath_string \"rasd:ResourceSubType/text()\" with\n      | Some \"E1000\" -> Some Source_e1000\n      | Some model -> Some (Source_other_nic (String.lowercase_ascii model))\n      | None -> None in\n    let nic = {\n      s_mac = mac;\n      s_nic_model = nic_model;\n      s_vnet = vnet;\n      s_vnet_type = vnet_type\n    } in\n    List.push_front nic nics\n  done;\n  List.rev !nics\n\n(* Helper function to return the parent controller of a disk. *)\nand parent_controller xpathctx id =\n  let xpath_int = xpath_int xpathctx in\n\n  let expr = sprintf \"/ovf:Envelope/ovf:VirtualSystem/ovf:VirtualHardwareSection/ovf:Item[rasd:InstanceID/text()=%d]/rasd:ResourceType/text()\" id in\n  let controller = xpath_int expr in\n\n  (* 5: IDE, 6: SCSI controller, 20: SATA *)\n  match controller with\n  | Some 5 -> Some Source_IDE\n  | Some 6 -> Some Source_SCSI\n  | Some 20 -> Some Source_SATA\n  | None ->\n     warning (f_\"ova disk has no parent controller, please report this as \\\n                 a bug supplying the *.ovf file extracted from the ova\");\n     None\n  | Some controller ->\n     warning (f_\"ova disk has an unknown VMware controller type (%d), please \\\n                 report this as a bug supplying the *.ovf file extracted \\\n                 from the ova\")\n             controller;\n     None\n\nlet parse_disks ovf_filename =\n  let xpathctx = xpathctx_of_ovf ovf_filename in\n  parse_disks xpathctx\n"
  },
  {
    "path": "input/OVF.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Parse OVF from an externally produced OVA file.\n\n    This is used by [-i ova] only.  OVA files are not a real standard\n    so we must make some assumptions here. *)\n\ntype disk = {\n  source_disk : Types.source_disk;\n  href : string;                (** The <File href> from the OVF file. *)\n  compressed : bool;            (** If the href is gzip compressed. *)\n}\n(** A VMDK disk from a parsed OVF. *)\n\nval parse_ovf_from_ova : string -> string option * int64 * int * Types.source_cpu_topology option * Types.source_firmware * disk list * Types.source_removable list * Types.source_nic list\n(** Parse an OVF file.\n\n    The returned tuple is\n    [name, memory, vcpu, cpu_topology, firmware,\n    disks, removables, nics] *)\n\nval parse_disks : string -> disk list\n(** As above, but returns only the disks. *)\n"
  },
  {
    "path": "input/VMX.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2017 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\n(* As far as I can tell the VMX format is totally unspecified.\n * However libvirt has a useful selection of .vmx files in the\n * sources which explore some of the darker regions of this\n * format.\n *\n * So here are some facts about VMX derived from libvirt and\n * other places:\n *\n * - Keys are compared case insensitively.  We assume here\n *   that keys are 7-bit ASCII.\n *\n * - Multiple keys with the same name are not allowed.\n *\n * - Escaping in the value string is possible using a very weird\n *   escape format: \"|22\" means the character '\\x22'.  To write\n *   a pipe character you must use \"|7C\".\n *\n * - Boolean values are written \"TRUE\", \"FALSE\", \"True\", \"true\", etc.\n *   Because of the quotes they cannot be distinguished from strings.\n *\n * - Comments (#...) and blank lines are ignored.  Some files start\n *   with a hash-bang path, but we ignore those as comments.  This\n *   parser also ignores any other line which it doesn't understand,\n *   but will print a warning.\n *\n * - Multi-line values are not permitted.\n *\n * - Keys are namespaced using dots, eg. scsi0:0.deviceType has\n *   the namespace \"scsi0:0\" and the key name \"deviceType\".\n *\n * - Using namespace.present = \"FALSE\" means that all other keys\n *   in and under the namespace are ignored.\n *\n * - You cannot have a namespace and a key with the same name, eg.\n *   this is not allowed:\n *     namespace = \"some value\"\n *     namespace.foo = \"another value\"\n *\n * - The Hashicorp packer VMX writer considers some special keys\n *   as not requiring any quotes around their values, but I'm\n *   ignoring that for now.\n *)\n\n(* This VMX file:\n *\n *   foo.a = \"abc\"\n *   foo.b = \"def\"\n *   foo.bar.c = \"abc\"\n *   foo.bar.d = \"def\"\n *\n * would be represented by this structure:\n *\n *   \"foo\" => Namespace (             # \"foo\" is a namespace\n *              \"a\" => Key \"abc\";     # \"foo.a\" is a key with value \"abc\"\n *              \"b\" => Key \"def\";\n *              \"bar\" => Namespace (  # \"foo.bar\" is another namespace\n *                         \"c\" => Key \"abc\";\n *                         \"d\" => Key \"def\";\n *                       )\n *            )\n *   ‘( => )’s represent the StringMap type.\n *)\ntype t = key StringMap.t\n\nand key =\n  | Key of string\n  | Namespace of t\n\nlet empty = StringMap.empty\n\n(* Compare two trees for equality. *)\nlet rec equal vmx1 vmx2 =\n  let cmp k1 k2 =\n    match k1, k2 with\n    | Key v1, Key v2 -> v1 = v2\n    | Key _, Namespace _ -> false\n    | Namespace _, Key _ -> false\n    | Namespace vmx1, Namespace vmx2 -> equal vmx1 vmx2\n  in\n  StringMap.equal cmp vmx1 vmx2\n\n(* Higher-order functions. *)\nlet rec select_namespaces pred vmx =\n  _select_namespaces [] pred vmx\n\nand _select_namespaces path pred vmx =\n  StringMap.fold (\n    fun k v new_vmx ->\n      let path = path @ [k] in\n      match v with\n      | Key _ -> new_vmx\n      | Namespace _ when pred path ->\n         StringMap.add k v new_vmx\n      | Namespace t ->\n         let t = _select_namespaces path pred t in\n         if not (equal t empty) then\n           StringMap.add k (Namespace t) new_vmx\n         else\n           new_vmx\n  ) vmx empty\n\nlet rec map f vmx =\n  _map [] f vmx\n\nand _map path f vmx =\n  StringMap.fold (\n    fun k v r ->\n      let path = path @ [k] in\n      match v with\n      | Key v -> r @ [ f path (Some v) ]\n      | Namespace t -> r @ [ f path None ] @ _map path f t\n  ) vmx []\n\nlet rec namespace_present vmx = function\n  | [] -> false\n  | [ns] ->\n     let ns = String.lowercase_ascii ns in\n     (try\n        let v = StringMap.find ns vmx in\n        match v with\n        | Key _ -> false\n        | Namespace _ -> true\n      with\n        Not_found -> false\n     )\n  | ns :: path ->\n     let ns = String.lowercase_ascii ns in\n     (try\n        let v = StringMap.find ns vmx in\n        match v with\n        | Key _ -> false\n        | Namespace vmx -> namespace_present vmx path\n      with\n        Not_found -> false\n     )\n\n(* Dump the vmx structure to [chan].  Used for debugging. *)\nlet rec print chan indent vmx =\n  StringMap.iter (print_key chan indent) vmx\n\nand print_key chan indent k = function\n  | Key v ->\n     output_spaces chan indent;\n     fprintf chan \"%s = \\\"%s\\\"\\n\" k v\n  | Namespace vmx ->\n     output_spaces chan indent;\n     fprintf chan \"namespace '%s':\\n\" k;\n     print chan (indent+4) vmx\n\n(* As above, but creates a string instead. *)\nlet rec to_string indent vmx =\n  StringMap.fold (fun k v str -> str ^ to_string_key indent k v) vmx \"\"\n\nand to_string_key indent k = function\n  | Key v ->\n     String.spaces indent ^ sprintf \"%s = \\\"%s\\\"\\n\" k v\n  | Namespace vmx ->\n     String.spaces indent ^ sprintf \"namespace '%s':\\n\" k ^\n       to_string (indent+4) vmx\n\n(* Access keys in the tree. *)\nlet rec get_string vmx = function\n  | [] -> None\n  | [k] ->\n     let k = String.lowercase_ascii k in\n     (try\n        let v = StringMap.find k vmx in\n        match v with\n        | Key v -> Some v\n        | Namespace _ -> None\n      with Not_found -> None\n     )\n  | ns :: path ->\n     let ns = String.lowercase_ascii ns in\n     (try\n        let v = StringMap.find ns vmx in\n        match v with\n        | Key v -> None\n        | Namespace vmx -> get_string vmx path\n      with\n        Not_found -> None\n     )\n\nlet get_int64 vmx path =\n  match get_string vmx path with\n  | None -> None\n  | Some i -> Some (Int64.of_string i)\n\nlet get_int vmx path =\n  match get_string vmx path with\n  | None -> None\n  | Some i -> Some (int_of_string i)\n\nlet rec get_bool vmx path =\n  match get_string vmx path with\n  | None -> None\n  | Some t -> Some (vmx_bool_of_string t)\n\nand vmx_bool_of_string t =\n  if String.lowercase_ascii t = \"true\" then true\n  else if String.lowercase_ascii t = \"false\" then false\n  else failwith \"bool_of_string\"\n\n(* Regular expression used to match key = \"value\" in VMX file. *)\nlet rex = PCRE.compile \"^([^ \\t=]+)\\\\s*=\\\\s*\\\"(.*)\\\"$\"\n\n(* Remove the weird escapes used in value strings.  See description above. *)\nlet remove_vmx_escapes str =\n  let len = String.length str in\n  let out = Bytes.make len '\\000' in\n  let j = ref 0 in\n\n  let rec loop i =\n    if i >= len then ()\n    else (\n      let c = String.unsafe_get str i in\n      if i <= len-3 && c = '|' then (\n        let c1 = str.[i+1] and c2 = str.[i+2] in\n        if Char.isxdigit c1 && Char.isxdigit c2 then (\n          let x = Char.hexdigit c1 * 0x10 + Char.hexdigit c2 in\n          Bytes.set out !j (Char.chr x);\n          incr j;\n          loop (i+3)\n        )\n        else (\n          Bytes.set out !j c;\n          incr j;\n          loop (i+1)\n        )\n      )\n      else (\n        Bytes.set out !j c;\n        incr j;\n        loop (i+1)\n      )\n    )\n  in\n  loop 0;\n\n  (* Truncate the output string to its real size and return it\n   * as an immutable string.\n   *)\n  Bytes.sub_string out 0 !j\n\n(* Parsing. *)\nlet rec parse_file vmx_filename =\n  (* Read the whole file as a list of lines. *)\n  let str = read_whole_file vmx_filename in\n  if verbose () then eprintf \"VMX file:\\n%s\\n\" str;\n  parse_string str\n\nand parse_string str =\n  (* Reject VMDK files early, since in virt-v2v we have seen users try\n   * to pass a .vmdk file as a .vmx file.  Luckily this is easy to\n   * do with the whole file as a string.\n   *)\n  if String.starts_with \"VMDK\" str ||\n     String.starts_with \"KDMV\" str ||\n     String.starts_with \"# Disk DescriptorFile\\n\" str then\n    error \"input file is a VMDK (disk image), but we are expecting a \\\n           VMX (VMware metadata)\";\n\n  (* Split the input into lines. *)\n  let lines = String.nsplit \"\\n\" str in\n\n  (* I've never seen any VMX file with CR-LF endings, and VMware\n   * itself is Linux-based, but to be on the safe side ...\n   *)\n  let lines = List.map (String.trimr ~test:((=) '\\r')) lines in\n\n  (* Ignore blank lines and comments. *)\n  let lines = List.filter (\n    fun line ->\n      let line = String.triml line in\n      let len = String.length line in\n      len > 0 && line.[0] != '#'\n  ) lines in\n\n  (* Parse the lines into key = \"value\". *)\n  let lines = List.filter_map (\n    fun line ->\n      if PCRE.matches rex line then (\n        let key = PCRE.sub 1 and value = PCRE.sub 2 in\n        let key = String.lowercase_ascii key in\n        let value = remove_vmx_escapes value in\n        Some (key, value)\n      )\n      else (\n        warning (f_\"vmx parser: cannot parse this line, ignoring: %s\") line;\n        None\n      )\n  ) lines in\n\n  (* Split the keys into namespace paths. *)\n  let lines =\n    List.map (fun (key, value) -> String.nsplit \".\" key, value) lines in\n\n  (* Build a tree from the flat list and return it.  This is horribly\n   * inefficient, at least O(n²), possibly even O(n².log n).  Hope\n   * there are no large VMX files!  (XXX)\n   *)\n  let vmx =\n    List.fold_left (\n      fun vmx (path, value) -> insert vmx value path\n    ) empty lines in\n\n  (* If we're verbose, dump the parsed VMX for debugging purposes. *)\n  if verbose () then (\n    eprintf \"parsed VMX tree:\\n\";\n    print stderr 0 vmx\n  );\n\n  (* Drop all present = \"FALSE\" namespaces. *)\n  let vmx = drop_not_present vmx in\n\n  vmx\n\nand insert vmx value = function\n  | [] -> assert false\n  | [k] ->\n     if StringMap.mem k vmx then (\n       warning (f_\"vmx parser: duplicate key '%s' ignored\") k;\n       vmx\n     ) else\n       StringMap.add k (Key value) vmx\n  | ns :: path ->\n     let v =\n       try\n         (match StringMap.find ns vmx with\n          | Namespace vmx -> Some vmx\n          | Key _ -> None\n         )\n       with Not_found -> None in\n     let v =\n       match v with\n       | None ->\n          (* Completely new namespace. *)\n          insert empty value path\n       | Some v ->\n          (* Insert the subkey into the previously created namespace. *)\n          insert v value path in\n     StringMap.add ns (Namespace v) vmx\n\n(* Find any \"present\" keys.  If we find present = \"FALSE\", then\n * drop the containing namespace and all subkeys and subnamespaces.\n *)\nand drop_not_present vmx =\n  StringMap.fold (\n    fun k v new_vmx ->\n      match v with\n      | Key _ ->\n         StringMap.add k v new_vmx\n      | Namespace vmx when contains_key_present_false vmx ->\n         (* drop this namespace and all sub-spaces *)\n         new_vmx\n      | Namespace v ->\n         (* recurse into sub-namespace and do the same check *)\n         let v = drop_not_present v in\n         StringMap.add k (Namespace v) new_vmx\n  ) vmx empty\n\nand contains_key_present_false vmx =\n  try\n    match StringMap.find \"present\" vmx with\n    | Key v when vmx_bool_of_string v = false -> true\n    | Key _ | Namespace _ -> false\n  with\n    Failure _ | Not_found -> false\n"
  },
  {
    "path": "input/VMX.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2017 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** A simple parser for VMware [.vmx] files. *)\n\ntype t\n\nval parse_file : string -> t\n(** [parse_file filename] parses a VMX file. *)\n\nval parse_string : string -> t\n(** [parse_string s] parses VMX from a string. *)\n\nval get_string : t -> string list -> string option\n(** Find a key and return it as a string.  If not present, returns [None].\n\n    Note that if [namespace.present = \"FALSE\"] is found in the file\n    then all keys in [namespace] and below it are ignored.  This\n    applies to all [get_*] functions. *)\n\nval get_int64 : t -> string list -> int64 option\n(** Find a key and return it as an [int64].\n    If not present, returns [None].\n\n    Raises [Failure _] if the key is present but was not parseable\n    as an integer. *)\n\nval get_int : t -> string list -> int option\n(** Find a key and return it as an [int].\n    If not present, returns [None].\n\n    Raises [Failure _] if the key is present but was not parseable\n    as an integer. *)\n\nval get_bool : t -> string list -> bool option\n(** Find a key and return it as a boolean.\n\n    You cannot return [namespace.present = \"FALSE\"] booleans this way.\n    They are processed by the parser and the namespace and anything\n    below it are removed from the tree.\n\n    Raises [Failure _] if the key is present but was not parseable\n    as a boolean. *)\n\nval namespace_present : t -> string list -> bool\n(** Returns true iff the namespace ({b note:} not key) is present. *)\n\nval select_namespaces : (string list -> bool) -> t -> t\n(** Filter the VMX file, selecting exactly namespaces (and their\n    keys) matching the predicate.  The predicate is a function which\n    is called on each {i namespace} path ({b note:} not on\n    namespace + key paths).  If the predicate matches a\n    namespace, then all sub-namespaces under that namespace are\n    selected implicitly. *)\n\nval map : (string list -> string option -> 'a) -> t -> 'a list\n(** Map all the entries in the VMX file into a list using the\n    map function.  The map function takes two arguments.  The\n    first is the path to the namespace or key, and the second\n    is the key value (or [None] if the path refers to a namespace). *)\n\nval equal : t -> t -> bool\n(** Compare two VMX files for equality.  This is mainly used for\n    testing the parser. *)\n\nval empty : t\n(** An empty VMX file. *)\n\nval print : out_channel -> int -> t -> unit\n(** [print chan indent] prints the VMX file to the output channel.\n    [indent] is the indentation applied to each line of output. *)\n\nval to_string : int -> t -> string\n(** Same as {!print} but it creates a printable (multiline) string. *)\n"
  },
  {
    "path": "input/dummy.c",
    "content": "/* Dummy source, to be used for OCaml-based tools with no C sources. */\nenum { foo = 1 };\n"
  },
  {
    "path": "input/input.ml",
    "content": "(* helper-v2v-input\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\ntype input_transport = SSH | VDDK\n\ntype options = {\n  bandwidth : Types.bandwidth option;\n  input_conn : string option;\n  input_format : string option;\n  input_options : (string * string) list;\n  input_password : string option;\n  input_transport : input_transport option;\n  read_only : bool;\n}\n\nmodule type INPUT = sig\n  val to_string : options -> string list -> string\n  val query_input_options : unit -> unit\n  val setup : string -> options -> string list ->\n              Types.source * NBD_URI.t list\nend\n"
  },
  {
    "path": "input/input.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\ntype input_transport = SSH | VDDK\n(** [-it] option on the command line *)\n\ntype options = {\n  bandwidth : Types.bandwidth option;     (* [--bandwidth] option *)\n  input_conn : string option;             (* [-ic] option *)\n  input_format : string option;           (* [-if] option *)\n  input_options : (string * string) list; (* [-io] options *)\n  input_password : string option;         (* [-ip] option *)\n  input_transport : input_transport option;(* [-it] option *)\n  read_only : bool;                       (* read-only (usually true) *)\n}\n\nmodule type INPUT = sig\n  val to_string : options -> string list -> string\n  (** [to_string options args] converts the source to a printable\n      string (for messages). *)\n\n  val query_input_options : unit -> unit\n  (** When the user passes [-io ?] this is used to print help. *)\n\n  val setup : string -> options -> string list ->\n              Types.source * NBD_URI.t list\n  (** [setup dir options args]\n\n      Set up the input mode.  Examines the source and extracts\n      source metadata ([Types.source]).  Also creates a disk pipeline\n      for each input disk and returns the list of NBD URIs. *)\nend\n"
  },
  {
    "path": "input/input_disk.ml",
    "content": "(* helper-v2v-input\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\n\nopen Input\n\nmodule Disk = struct\n  let to_string options args = String.concat \" \" (\"-i disk\" :: args)\n\n  let query_input_options () =\n    printf (f_\"No input options can be used in this mode.\\n\")\n\n  let rec setup dir options args =\n    if options.input_options <> [] then\n      error (f_\"no -io (input options) are allowed here\");\n\n    let nr_disks = List.length args in\n    if nr_disks = 0 then\n      error (f_\"-i disk: expecting a disk image (filename) \\\n                on the command line\");\n\n    (* Check nbdkit is installed. *)\n    if not (Nbdkit.is_installed ()) then\n      error (f_\"nbdkit is not installed or not working.  It is required to \\\n                use ‘-i disk’.\");\n    if not (Nbdkit.probe_plugin \"file\") then\n      error (f_\"nbdkit-file-plugin is not installed or not working\");\n    if options.read_only && not (Nbdkit.probe_filter \"cow\") then\n      error (f_\"nbdkit-cow-filter is not installed or not working\");\n\n    (* Each disk on the command line can be a local file or an NBD URI. *)\n    let is_nbd_uri =\n      let h = lazy (NBD.create ()) in\n      fun str -> NBD.is_uri (Lazy.force h) str\n    in\n\n    (* Function for detecting input format, using guestfs_disk_format. *)\n    let detect_input_format =\n      let g = lazy (open_guestfs ()) in\n      fun disk -> (Lazy.force g)#disk_format disk\n    in\n\n    (* If there are any NBD URIs on the command line, nbdkit-nbd-plugin\n     * must be available too.\n     *)\n    if List.exists is_nbd_uri args && not (Nbdkit.probe_plugin \"nbd\") then\n      error (f_\"nbdkit-nbd-plugin is not installed or not working\");\n\n    (* What name should we use for the guest?  We try to derive it from\n     * the first filename passed in.  If there are no filenames then\n     * we use \"unknown\".\n     *\n     * Users can override this using the '-on name' option.\n     *)\n    let name =\n      let rec loop = function\n        | [] ->\n(* XXX can't print this because we don't know if the user set '-on'\n           warning (f_\"-i disk: no local filenames given so we set \\\n                       the guest name to \\\"unknown\\\".  Use ‘-on name’ to \\\n                       override the guest name.\");\n*)\n           \"unknown\"\n        | x :: xs when is_nbd_uri x ->\n           loop xs\n        | x :: _ ->\n           name_from_disk x\n      in\n      loop args in\n\n    (* Convert the command line disks to NBD URIs. *)\n    let uris =\n      List.mapi (\n        fun i disk ->\n          let sockname = sprintf \"in%d\" i in\n          let socket = sprintf \"%s/%s\" dir sockname in\n          On_exit.unlink socket;\n\n          if is_nbd_uri disk then (\n            (* For nbd:// on the command line, proxy through\n             * nbdkit-nbd-plugin.  This is not ideal.  We could\n             * catch special cases here, such as nbd+unix://\n             * and convert them directly to NBD_URI objects.\n             * That would require parsing NBD URIs ourselves\n             * but would avoid needing an extra nbdkit proxy.\n             * XXX\n             *)\n            let cmd = Nbdkit.create ~name:sockname \"nbd\" in\n            if options.read_only then\n              Nbdkit.add_filter cmd \"cow\";\n            Nbdkit.add_arg cmd \"uri\" disk;\n            let _, pid = Nbdkit.run_unix socket cmd in\n\n            (* --exit-with-parent should ensure nbdkit is cleaned\n             * up when we exit, but it's not supported everywhere.\n             *)\n            On_exit.kill pid\n          )\n          else (\n            (* Local filename.  Use nbdkit-file-plugin for raw,\n             * or qemu-nbd for other formats.\n             *\n             * virt-v2v < 2.12 used to enforce that all disks\n             * had the same format, but that seems unnecessary.\n             *)\n\n            (* Check the input file exists and is readable. *)\n            access disk [R_OK];\n\n            let format =\n              match options.input_format with\n              | Some fmt -> fmt (* -if option overrides everything *)\n              | None -> detect_input_format disk in\n\n            match format with\n            | \"raw\" ->\n               let cmd = Nbdkit.create ~name:sockname \"file\" in\n               if options.read_only then\n                 Nbdkit.add_filter cmd \"cow\";\n               Nbdkit.add_arg cmd \"file\" disk;\n               Nbdkit.reduce_memory_pressure cmd;\n               let _, pid = Nbdkit.run_unix socket cmd in\n\n               (* --exit-with-parent should ensure nbdkit is cleaned\n                * up when we exit, but it's not supported everywhere.\n                *)\n               On_exit.kill pid\n\n            | format ->\n               let cmd = QemuNBD.create disk in\n               QemuNBD.set_snapshot cmd options.read_only;\n               QemuNBD.set_format cmd (Some format);\n               let _, pid = QemuNBD.run_unix socket cmd in\n               On_exit.kill pid\n          );\n\n          NBD_URI.Unix (socket, None)\n        ) args in\n\n    let s_disks =\n      List.make nr_disks () |>\n      List.mapi (\n        fun i () -> { s_disk_id = i; s_controller = None }\n      ) in\n\n    (* Give the guest a simple generic network interface. *)\n    let s_nic = {\n      s_mac = None;\n      s_nic_model = None;\n      s_vnet = \"default\";\n      s_vnet_type = Network;\n    } in\n\n    let source = {\n      s_hypervisor = UnknownHV;\n      s_name = name;\n      s_genid = None;\n      s_memory = 2048L *^ 1024L *^ 1024L; (* 2048 MB *)\n      s_vcpu = 1;            (* 1 vCPU is a safe default *)\n      s_cpu_vendor = None;\n      s_cpu_model = None;\n      s_cpu_topology = None;\n      s_features = [ \"acpi\"; \"apic\"; \"pae\" ];\n      s_firmware = UnknownFirmware; (* causes virt-v2v to autodetect *)\n      s_uefi_secureboot = false;\n      s_display =\n        Some { s_display_type = Window; s_keymap = None; s_password = None;\n               s_listen = LNoListen; s_port = None };\n      s_sound = None;\n      s_disks = s_disks;\n      s_removables = [];\n      s_nics = [s_nic];\n    } in\n\n    source, uris\nend\n"
  },
  {
    "path": "input/input_disk.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** [-i disk] input mode *)\n\nmodule Disk : Input.INPUT\n"
  },
  {
    "path": "input/input_libvirt.ml",
    "content": "(* helper-v2v-input\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Parse_libvirt_xml\n\nopen Types\nopen Utils\n\nopen Input\n\nlet rec get_source_from_libvirt options args =\n  if options.input_options <> [] then\n    error (f_\"no -io (input options) are allowed here\");\n\n  let guest =\n    match args with\n    | [arg] -> arg\n    | _ ->\n       error (f_\"-i libvirt: expecting a libvirt guest name \\\n                 on the command line\") in\n\n  (* Connect to the hypervisor. *)\n  let conn =\n    let auth = Libvirt_utils.auth_for_password_file\n                 ?password_file:options.input_password () in\n    Libvirt.Connect.connect_auth ?name:options.input_conn auth in\n\n  (* Parse the libvirt XML. *)\n  let source, disks, _ = parse_libvirt_domain conn guest in\n  source, disks\n\nand get_source_from_libvirt_xml _ args =\n  let xmlfile =\n    match args with\n    | [arg] -> arg\n    | _ ->\n       error (f_\"-i libvirtxml: expecting a libvirt XML filename \\\n                 on the command line\") in\n  let xml = read_whole_file xmlfile in\n  let source, disks = parse_libvirt_xml xml in\n  source, disks\n\nand setup_servers options dir disks =\n  (* Check nbdkit is installed. *)\n  if not (Nbdkit.is_installed ()) then\n    error (f_\"nbdkit is not installed or not working.  It is required to \\\n              use ‘-i libvirt|libvirtxml’.\");\n\n  if not (Nbdkit.probe_plugin \"file\") then\n    error (f_\"nbdkit-file-plugin is not installed or not working\");\n  if not (Nbdkit.probe_plugin \"nbd\") then\n    error (f_\"nbdkit-nbd-plugin is not installed or not working\");\n  if options.read_only && not (Nbdkit.probe_filter \"cow\") then\n    error (f_\"nbdkit-cow-filter is not installed or not working\");\n\n  let nr_disks = List.length disks in\n\n  List.mapi (\n    fun i { d_format = format; d_type; d_checksum } ->\n      let sockname = sprintf \"in%d\" i in\n      let socket = sprintf \"%s/%s\" dir sockname in\n      On_exit.unlink socket;\n\n      (match d_type with\n       (* Forward to another NBD server using nbdkit-nbd-plugin. *)\n       | NBD (hostname, port) ->\n          let cmd = Nbdkit.create ~name:sockname \"nbd\" in\n          if options.read_only then\n            Nbdkit.add_filter cmd \"cow\";\n          Nbdkit.add_arg cmd \"hostname\" hostname;\n          Nbdkit.add_arg cmd \"port\" (string_of_int port);\n          Nbdkit.add_arg cmd \"shared\" \"true\";\n          let _, pid = Nbdkit.run_unix socket cmd in\n\n          (* --exit-with-parent should ensure nbdkit is cleaned\n           * up when we exit, but it's not supported everywhere.\n           *)\n          On_exit.kill pid;\n\n          Option.iter (do_checksum_nbd socket i nr_disks) d_checksum\n\n       (* Forward to an HTTP/HTTPS server using nbdkit-curl-plugin. *)\n       | HTTP url ->\n          if not options.read_only then\n            error (f_\"in-place mode does not work with HTTP source\");\n\n          let cor = dir // \"convert\" in\n          let cmd = Nbdkit_curl.create_curl ~name:sockname ~cor url in\n          let _, pid = Nbdkit.run_unix socket cmd in\n\n          (* --exit-with-parent should ensure nbdkit is cleaned\n           * up when we exit, but it's not supported everywhere.\n           *)\n          On_exit.kill pid;\n\n          Option.iter (do_checksum_nbd socket i nr_disks) d_checksum\n\n       | BlockDev filename | LocalFile filename ->\n          match format with\n          | Some \"raw\" ->\n             (* It's much faster to compute the checksum over\n              * the raw file or block device than over NBD:\n              *)\n             Option.iter (do_checksum_raw_file filename i nr_disks) d_checksum;\n\n             let cmd = Nbdkit.create ~name:sockname \"file\" in\n             if options.read_only then\n               Nbdkit.add_filter cmd \"cow\";\n             Nbdkit.add_arg cmd \"file\" filename;\n             Nbdkit.reduce_memory_pressure cmd;\n             let _, pid = Nbdkit.run_unix socket cmd in\n\n             (* --exit-with-parent should ensure nbdkit is cleaned\n              * up when we exit, but it's not supported everywhere.\n              *)\n             On_exit.kill pid\n\n          (* We use qemu-nbd for all other formats including auto-detect. *)\n          | _ ->\n             let cmd = QemuNBD.create filename in\n             QemuNBD.set_snapshot cmd options.read_only;\n             QemuNBD.set_format cmd format;\n             let _, pid = QemuNBD.run_unix socket cmd in\n             On_exit.kill pid;\n\n             Option.iter (do_checksum_nbd socket i nr_disks) d_checksum\n      );\n\n      NBD_URI.Unix (socket, None)\n  ) disks\n\n(* Handle the <disk><checksum> field over an NBD endpoint. *)\nand do_checksum_nbd socket i n { checksum_method;\n                                 checksum_expected; checksum_on_fail } =\n  message (f_\"Checking %s checksum of disk %d/%d\") checksum_method (i+1) n;\n  let prog = checksum_prog checksum_method in\n  let uri = sprintf \"nbd+unix:///?socket=%s\" socket in\n  let cmd = sprintf \"%s %s - | %s\" (quote Config.nbdcopy) (quote uri) prog in\n  let lines = external_command cmd in\n  let actual = get_checksum_from_output prog lines in\n  match checksum_on_fail with\n  | ChecksumPrint -> print_checksum i n actual\n  | ChecksumOnFailError | ChecksumOnFailWarn ->\n     if actual <> checksum_expected then\n       checksum_failed checksum_on_fail i n actual checksum_expected\n\n(* Handle the <disk><checksum> field over a local raw-format file or\n * block device.\n *)\nand do_checksum_raw_file filename i n { checksum_method;\n                                        checksum_expected; checksum_on_fail } =\n  message (f_\"Checking %s checksum of disk %d/%d\") checksum_method (i+1) n;\n  let prog = checksum_prog checksum_method in\n  let cmd = sprintf \"%s %s\" prog (quote filename) in\n  let lines = external_command cmd in\n  let actual = get_checksum_from_output prog lines in\n  match checksum_on_fail with\n  | ChecksumPrint -> print_checksum i n actual\n  | ChecksumOnFailError | ChecksumOnFailWarn ->\n     if actual <> checksum_expected then\n       checksum_failed checksum_on_fail i n actual checksum_expected\n\nand checksum_prog = function\n  | \"md5\" -> \"md5sum\"\n  | \"sha256\" -> \"sha256sum\"\n  | \"sha512\" -> \"sha512sum\"\n  | v -> error (f_\"unknown <checksum> method='%s'\") v\n\nand get_checksum_from_output prog = function\n  | [ actual ] ->\n     let n = String.cspan actual \" \\t\\n\" in\n     String.sub actual 0 n\n  | _ ->\n     error (f_\"unexpected output from the %s command\") prog\n\nand print_checksum i n actual =\n  printf \"Checksum of disk %d/%d: %s\\n%!\" (i+1) n actual\n\nand checksum_failed on_fail i n actual expected =\n  (match on_fail with\n   | ChecksumPrint -> assert false\n   | ChecksumOnFailWarn -> warning\n   | ChecksumOnFailError -> error ~exit_code:1)\n    (f_\"bad checksum for disk %d/%d\\n\\\n        Expected checksum: %s\\n\\\n        Actual checksum: %s\")\n    (i+1) n actual expected\n\nmodule Libvirt_ = struct\n  let to_string options args =\n    let xs = \"-i libvirt\" :: args in\n    let xs =\n      match options.input_conn with\n      | Some ic -> (\"-ic \" ^ ic) :: xs\n      | None -> xs in\n    String.concat \" \" xs\n\n  let query_input_options () =\n    printf (f_\"No input options can be used in this mode.\\n\")\n\n  let setup dir options args =\n    let source, data = get_source_from_libvirt options args in\n    let uris = setup_servers options dir data in\n    source, uris\nend\n\nmodule LibvirtXML = struct\n  let to_string options args = String.concat \" \" (\"-i libvirtxml\" :: args)\n\n  let query_input_options () =\n    printf (f_\"No input options can be used in this mode.\\n\")\n\n  let setup dir options args =\n    let source, data = get_source_from_libvirt_xml options args in\n    let uris = setup_servers options dir data in\n    source, uris\nend\n"
  },
  {
    "path": "input/input_libvirt.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** [-i libvirt] and [-i libvirtxml] input modes *)\n\nmodule Libvirt_ : Input.INPUT\nmodule LibvirtXML : Input.INPUT\n"
  },
  {
    "path": "input/input_ova.ml",
    "content": "(* helper-v2v-input\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\n\nopen Input\n\nmodule OVA = struct\n  let to_string options args = String.concat \" \" (\"-i ova\" :: args)\n\n  let query_input_options () =\n    printf (f_\"No input options can be used in this mode.\\n\")\n\n  (* RHBZ#1570407: VMware-generated OVA files found in the wild can\n   * contain hrefs referencing snapshots.  The href will be something\n   * like: <File href=\"disk1.vmdk\"/> but the actual disk will be a\n   * snapshot called something like \"disk1.vmdk.000000000\".\n   *)\n  let re_snapshot = PCRE.compile \"\\\\.(\\\\d+)$\"\n\n  let rec setup dir options args =\n    if options.input_options <> [] then\n      error (f_\"no -io (input options) are allowed here\");\n\n    let ova =\n      match args with\n      | [ova] -> ova\n      | _ ->\n         error (f_\"-i ova: expecting an OVA file name on the command line\") in\n\n    (* Check the OVA file is readable. *)\n    access ova [R_OK];\n\n    (* Extract ova file. *)\n    let ova_t = OVA.parse_ova ova in\n\n    (* Extract ovf file from ova. *)\n    let ovf = OVA.get_ovf_file ova_t in\n\n    (* Extract the manifest from *.mf files in the ova. *)\n    let manifest = OVA.get_manifest ova_t in\n\n    (* Verify checksums of files listed in the manifest. *)\n    List.iter (\n      fun (file_ref, csum) ->\n        let filename, r =\n          match file_ref with\n          | OVA.LocalFile filename ->\n             filename, Checksums.verify_checksum csum filename\n          | OVA.TarFile (tar, filename) ->\n             filename, Checksums.verify_checksum csum ~tar filename in\n        match r with\n        | Checksums.Good_checksum -> ()\n        | Checksums.Mismatched_checksum (_, actual) ->\n           error (f_\"-i ova: corrupt OVA: checksum of disk %s does not match \\\n                     manifest (actual = %s, expected = %s)\")\n             filename actual (Checksums.string_of_csum_t csum)\n        | Checksums.Missing_file ->\n           (* RHBZ#1570407: Some OVA files generated by VMware\n            * reference non-existent components in the *.mf file.\n            * Generate a warning and ignore it.\n            *)\n           warning (f_\"manifest has a checksum for non-existent file %s \\\n                       (ignored)\")\n             filename\n    ) manifest;\n\n    (* Parse the ovf file. *)\n    let name, memory, vcpu, cpu_topology, firmware, disks, removables, nics =\n      OVF.parse_ovf_from_ova ovf in\n\n    let name =\n      match name with\n      | None ->\n         warning (f_\"could not parse ovf:Name from OVF document\");\n         name_from_disk ova\n      | Some name -> name in\n\n    (* Convert the disk hrefs into qemu URIs. *)\n    let qemu_uris =\n      List.map (\n        fun { OVF.href; compressed } ->\n          let file_ref = find_file_or_snapshot ova_t href manifest in\n\n          match compressed, file_ref with\n          | false, OVA.LocalFile filename ->\n             filename\n\n          | true, OVA.LocalFile filename ->\n             (* The spec allows the file to be gzip-compressed, in\n              * which case we must uncompress it into a temporary.\n              *)\n             let new_filename =\n               Filename.temp_file ~temp_dir:Utils.large_tmpdir\n                 \"ova\" \".vmdk\" in\n             On_exit.unlink new_filename;\n             let cmd =\n               sprintf \"zcat %s > %s\"\n                 (quote filename) (quote new_filename) in\n             if shell_command cmd <> 0 then\n               error (f_\"error uncompressing %s, see earlier error messages\")\n                 filename;\n             new_filename\n\n          | false, OVA.TarFile (tar, filename) ->\n             (* This is the tar optimization. *)\n             let offset, size =\n               try OVA.get_tar_offet_and_size tar filename\n               with\n               | Not_found ->\n                  error (f_\"file ‘%s’ not found in the ova\") filename\n               | Failure msg -> error (f_\"%s\") msg in\n             (* QEMU requires size aligned to 512 bytes. This is safe because\n              * tar also works with 512 byte blocks.\n              *)\n             let size = roundup64 size 512L in\n\n             (* Workaround for libvirt bug RHBZ#1431652. *)\n             let tar_path = absolute_path tar in\n\n             let doc = [\n                 \"file\", JSON.Dict [\n                             \"driver\", JSON.String \"raw\";\n                             \"offset\", JSON.Int offset;\n                             \"size\", JSON.Int size;\n                             \"file\", JSON.Dict [\n                                         \"driver\", JSON.String \"file\";\n                                         \"filename\", JSON.String tar_path]\n                           ]\n               ] in\n             let uri =\n               sprintf \"json:%s\"\n                 (JSON.string_of_doc ~fmt:JSON.Compact doc) in\n             uri\n\n          | true, OVA.TarFile _ ->\n             (* This should not happen since {!OVA} knows that\n              * qemu cannot handle compressed files here.\n              *)\n             assert false\n      ) disks in\n\n    (* Create the source metadata. *)\n    let s_disks = List.map (fun { OVF.source_disk } -> source_disk) disks in\n\n    let source = {\n      s_hypervisor = VMware;\n      s_name = name;\n      s_genid = None; (* XXX *)\n      s_memory = memory;\n      s_vcpu = vcpu;\n      s_cpu_vendor = None;\n      s_cpu_model = None;\n      s_cpu_topology = cpu_topology;\n      s_features = []; (* XXX *)\n      s_firmware = firmware;\n      s_uefi_secureboot = false;\n      s_display = None; (* XXX *)\n      s_sound = None;\n      s_disks = s_disks;\n      s_removables = removables;\n      s_nics = nics;\n    } in\n\n    (* Run qemu-nbd for each disk. *)\n    let uris =\n      List.mapi (\n        fun i qemu_uri ->\n          let socket = sprintf \"%s/in%d\" dir i in\n          On_exit.unlink socket;\n\n          let cmd = QemuNBD.create qemu_uri in\n          QemuNBD.set_snapshot cmd options.read_only; (* protective overlay *)\n          QemuNBD.set_format cmd None; (* auto-detect format *)\n          let _, pid = QemuNBD.run_unix socket cmd in\n          On_exit.kill pid;\n\n          NBD_URI.Unix (socket, None)\n      ) qemu_uris in\n\n    source, uris\n\n  and find_file_or_snapshot ova_t href manifest =\n    match OVA.resolve_href ova_t href with\n    | Some f -> f\n    | None ->\n       (* Find all files in the OVA called [<href>.\\d+] *)\n       let files = OVA.get_file_list ova_t in\n       let snapshots =\n         List.filter_map (\n             function\n             | OVA.LocalFile filename ->\n                get_snapshot_if_matches href filename\n             | OVA.TarFile (_, filename) ->\n                get_snapshot_if_matches href filename\n         ) files in\n       (* Pick highest. *)\n       let snapshots = List.sort (fun a b -> compare b a) snapshots in\n       match snapshots with\n       | [] -> error_missing_href href\n       | snapshot::_ ->\n          let href = sprintf \"%s.%s\" href snapshot in\n          match OVA.resolve_href ova_t href with\n          | None -> error_missing_href href\n          | Some f -> f\n\n  (* If [filename] matches [<href>.\\d+] then return [Some snapshot]. *)\n  and get_snapshot_if_matches href filename =\n    if PCRE.matches re_snapshot filename then (\n      let snapshot = PCRE.sub 1 in\n      let suffix = sprintf \"%s.%s\" href snapshot in\n      if String.ends_with ~suffix filename then\n        Some snapshot\n      else\n        None\n    )\n    else None\n\n  and error_missing_href href =\n    error (f_\"-i ova: OVF references file ‘%s’ which was not found \\\n              in the OVA archive\") href\nend\n"
  },
  {
    "path": "input/input_ova.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** [-i ova] input mode *)\n\nmodule OVA : Input.INPUT\n"
  },
  {
    "path": "input/input_vcenter_https.ml",
    "content": "(* helper-v2v-input\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils.Env\nopen Common_gettext.Gettext\nopen Xpath_helpers\n\nopen Types\nopen Utils\n\nopen Parse_libvirt_xml\nopen Input\n\nmodule VCenterHTTPS = struct\n  let to_string options args =\n    let xs = args in\n    let xs =\n      match options.input_conn with\n      | Some ic -> (\"-ic \" ^ ic) :: xs\n      | None -> xs in\n    let xs = \"-i libvirt\" :: xs in\n    String.concat \" \" xs\n\n  let query_input_options () =\n    printf (f_\"No input options can be used in this mode.\\n\")\n\n  let rec setup dir options args =\n    if options.input_options <> [] then\n      error (f_\"no -io (input options) are allowed here\");\n\n    if not options.read_only then\n      error (f_\"in-place mode does not work with HTTP source\");\n\n    (* Remove proxy environment variables so curl doesn't try to use\n     * them.  Using a proxy is generally a bad idea because vCenter\n     * is slow enough as it is without putting another device in\n     * the way (RHBZ#1354507).\n     *)\n    unsetenv \"https_proxy\";\n    unsetenv \"all_proxy\";\n    unsetenv \"no_proxy\";\n    unsetenv \"HTTPS_PROXY\";\n    unsetenv \"ALL_PROXY\";\n    unsetenv \"NO_PROXY\";\n\n    let guest =\n      match args with\n      | [arg] -> arg\n      | _ ->\n         error (f_\"-i libvirt: expecting a libvirt guest name \\\n                   on the command line\") in\n\n    (* -ip is required in this mode, see RHBZ#1960087 *)\n    let password_file =\n      match options.input_password with\n      | Some file -> file\n      | None ->\n         error (f_\"-i libvirt: expecting -ip passwordfile parameter for \\\n                   vCenter connection\") in\n\n    (* -ic must be set and it must contain a server.  This is\n     * enforced by virt-v2v.\n     *)\n    let input_conn =\n      match options.input_conn with\n      | Some ic -> ic\n      | None ->\n         error (f_\"-i libvirt: expecting -ic parameter for \\\n                   vcenter connection\") in\n\n    let uri =\n      try Xml.parse_uri input_conn\n      with Invalid_argument msg ->\n        error (f_\"could not parse '-ic %s'.  Original error message was: %s\")\n          input_conn msg in\n\n    let server =\n      match uri with\n      | { Xml.uri_server = Some server } -> server\n      | { Xml.uri_server = None } ->\n         error (f_\"-i libvirt: expecting -ic parameter to contain \\\n                   vcenter server name\") in\n\n    (* Connect to the hypervisor. *)\n    let conn =\n      let auth = Libvirt_utils.auth_for_password_file ~password_file () in\n      Libvirt.Connect.connect_auth ~name:input_conn auth in\n\n    (* Parse the libvirt XML. *)\n    let source, disks, xml = parse_libvirt_domain conn guest in\n\n    (* Find the <vmware:datacenterpath> element from the XML.  This\n     * was added in libvirt >= 1.2.20.\n     *)\n    let dcPath =\n      let doc = Xml.parse_memory xml in\n      let xpathctx = Xml.xpath_new_context doc in\n      Xml.xpath_register_ns xpathctx\n        \"vmware\" \"http://libvirt.org/schemas/domain/vmware/1.0\";\n      match xpath_string xpathctx \"/domain/vmware:datacenterpath\" with\n      | Some dcPath -> dcPath\n      | None ->\n         error (f_\"vcenter: <vmware:datacenterpath> was not found in the XML.  \\\n                   You need to upgrade to libvirt ≥ 1.2.20.\") in\n\n    let uris =\n      List.mapi (\n        fun i { d_format = format; d_type } ->\n          let socket = sprintf \"%s/in%d\" dir i in\n          On_exit.unlink socket;\n\n          (match d_type with\n           | BlockDev _ | NBD _ | HTTP _ -> (* These should never happen? *)\n              assert false\n\n           | LocalFile path ->\n              let cor = dir // \"convert\" in\n              let pid = VCenter.start_nbdkit_for_path\n                          ?bandwidth:options.bandwidth\n                          ~cor ~password_file\n                          dcPath uri server path socket in\n              On_exit.kill pid\n          );\n\n          NBD_URI.Unix (socket, None)\n    ) disks in\n\n    source, uris\nend\n"
  },
  {
    "path": "input/input_vcenter_https.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Input from vCenter over HTTPS *)\n\nmodule VCenterHTTPS : Input.INPUT\n"
  },
  {
    "path": "input/input_vddk.ml",
    "content": "(* helper-v2v-input\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\nopen Xpath_helpers\n\nopen Types\nopen Utils\n\nopen Parse_libvirt_xml\nopen Input\n\n(* VDDK libraries are located under lib32/ or lib64/ relative to the\n * libdir.  Note this is unrelated to Linux multilib or multiarch.\n *)\nlet libNN = sprintf \"lib%d\" Sys.word_size\n\n(* Calculate the nbdkit vddk plugin 'export' parameter.  This is a\n * wildcard that must match all filenames given.\n *\n * nbdkit 1.44 used 'fnmatch (export, filename, FNM_PATHNAME)'\n * which means '*' does not match '/' characters in the filename.\n * Unfortunately this made it impossible to match certain paths,\n * in particular if the guest has some files in a subdirectory.\n *\n * nbdkit 1.46 relaxes this to 'fnmatch (export, filename, 0)',\n * so a simple longest prefix works.\n *)\nlet get_vddk_export_wildcard = function\n  | [] -> assert false (* can't happen, checked by the caller *)\n  | [f] -> fnmatch_escape f (* single file, just escape the whole thing *)\n  | files ->\n     (* We implicitly assume all files end in *.vmdk, check that. *)\n     List.iter (fun f -> assert (String.ends_with \".vmdk\" f)) files;\n\n     (* Calculate the longest common prefix of all the filenames.\n      * eg. \"foobar\", \"foobazs\" => prefix = \"fooba\"\n      *)\n     let prefix = String.longest_common_prefix files in\n\n     (* Construct the final wildcard.  Note we only need to\n      * escape the prefix (the only part which is user content).\n      *)\n     fnmatch_escape prefix ^ \"*.vmdk\"\n\nmodule VDDK = struct\n  let to_string options args =\n    let xs = \"-it vddk\" :: args in\n    let xs =\n      match options.input_conn with\n      | Some ic -> (\"-ic \" ^ ic) :: xs\n      | None -> xs in\n    let xs = \"-i libvirt\" :: xs in\n    String.concat \" \" xs\n\n  let query_input_options () =\n    printf (f_\"Input options (-io) which can be used with -it vddk\n(all settings are optional):\n\n  -io vddk-compression=COMPR   Set VDDK compression mode (see\n                                 nbdkit-vddk-plugin documentation)\n  -io vddk-config=FILE         VDDK configuration file\n  -io vddk-cookie=COOKIE       VDDK cookie\n  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\n  -io vddk-libdir=LIBDIR       VDDK library parent directory\n  -io vddk-nfchostport=PORT    VDDK nfchostport\n  -io vddk-port=PORT           VDDK port\n  -io vddk-snapshot=SNAPSHOT-MOREF\n                               VDDK snapshot moref\n  -io vddk-thumbprint=xx:xx:xx:...\n                               VDDK server thumbprint\n  -io vddk-transports=MODE:MODE:..\n                               VDDK transports\n\nRefer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\ninformation on these settings.\n\")\n\n  let rec setup dir options args =\n    (* Check there are no input options we don't understand.\n     * Also removes the \"vddk-\" prefix from the internal list.\n     *)\n    let vddk_option_keys =\n      [ \"compression\";\n        \"config\";\n        \"cookie\";\n        \"file\";\n        \"libdir\";\n        \"nfchostport\";\n        \"port\";\n        \"snapshot\";\n        \"thumbprint\";\n        \"transports\" ] in\n\n    let io_options =\n      List.map (\n        fun (key, value) ->\n          let error_invalid_key () =\n            error (f_\"-it vddk: ‘-io %s’ is not a valid input option\") key\n          in\n          if not (String.starts_with \"vddk-\" key) then error_invalid_key ();\n          let key = String.sub key 5 (String.length key-5) in\n          if not (List.mem key vddk_option_keys) then error_invalid_key ();\n          (key, value)\n      ) options.input_options in\n\n    (* Get the guest name. *)\n    let guest =\n      match args with\n      | [arg] -> arg\n      | _ ->\n         error (f_\"-i libvirt: expecting a libvirt guest name \\\n                   on the command line\") in\n\n    (* -ic must be set and it must contain a server.  This is\n     * enforced by virt-v2v.\n     *)\n    let input_conn =\n      match options.input_conn with\n      | Some ic -> ic\n      | None ->\n         error (f_\"-i libvirt: expecting -ic parameter \\\n                   for vcenter connection\") in\n\n    if not options.read_only then\n      error (f_\"in-place mode does not work with VDDK source\");\n\n    let uri =\n      try Xml.parse_uri input_conn\n      with Invalid_argument msg ->\n        error (f_\"could not parse '-ic %s'.  Original error message was: %s\")\n          input_conn msg in\n\n    (* Connect to the hypervisor. *)\n    let conn =\n      let auth = Libvirt_utils.auth_for_password_file\n                   ?password_file:options.input_password () in\n      Libvirt.Connect.connect_auth ~name:input_conn auth in\n\n    (* Parse the libvirt XML. *)\n    let source, disks, xml = parse_libvirt_domain conn guest in\n    let nr_disks = List.length disks in\n\n    (* Find the <vmware:moref> element from the XML.  This was added\n     * in libvirt >= 3.7 and is required.\n     *)\n    let moref =\n      let doc = Xml.parse_memory xml in\n      let xpathctx = Xml.xpath_new_context doc in\n      Xml.xpath_register_ns xpathctx\n        \"vmware\" \"http://libvirt.org/schemas/domain/vmware/1.0\";\n      let xpath_string = xpath_string xpathctx in\n      match xpath_string \"/domain/vmware:moref\" with\n      | Some moref -> moref\n      | None ->\n         error (f_\"<vmware:moref> was not found in the output of \\\n                   ‘virsh dumpxml \\\"%s\\\"’.  The most likely reason is that \\\n                   libvirt is too old, try upgrading \\\n                   libvirt to ≥ 3.7.\") guest in\n\n    (* It probably never happens that the server name can be missing\n     * from the libvirt URI, but we need a server name to pass to\n     * nbdkit, so ...\n     *)\n    let server =\n      match uri.Xml.uri_server with\n      | Some server -> server\n      | None ->\n         error (f_\"‘-ic %s’ URL does not contain a host name field\")\n           input_conn in\n\n    (* For VDDK we require some user.  If it's not supplied, assume root. *)\n    let user = uri.Xml.uri_user |> Option.value ~default:\"root\" in\n\n    (* If asking for a password, do it now. *)\n    let password_file =\n      match options.input_password with\n      | None ->\n         (* Because we will start nbdkit in the background and then wait\n          * for 30 seconds for it to start up, we cannot use the\n          * password=- feature of nbdkit to read the password\n          * interactively (since in the words of the movie the user has\n          * only \"30 seconds to comply\").  In any case this feature broke\n          * in the VDDK plugin in nbdkit 1.18 and 1.20.  So in the\n          * AskForPassword case we read the password here.\n          *)\n         printf (f_\"%s: enter password for ‘%s’: \") \"vddk\" user;\n         let open Unix in\n         let orig = tcgetattr stdin in\n         let tios = { orig with c_echo = false } in\n         tcsetattr stdin TCSAFLUSH tios; (* Disable echo. *)\n         let password = read_line () in\n         tcsetattr stdin TCSAFLUSH orig; (* Restore echo. *)\n         printf \"\\n%!\";\n         let password_file = Filename.temp_file \"v2vnbdkit\" \".txt\" in\n         with_open_out password_file (fun chan -> output_string chan password);\n         On_exit.unlink password_file;\n         password_file\n\n      | Some password_file ->\n         password_file in\n\n    (* Thumbprint has to be passed to nbdkit.  If we don't have it\n     * then get it from the server.\n     *)\n    let thumbprint =\n      try List.assoc \"thumbprint\" io_options\n      with Not_found ->\n        let openssl =\n          try which \"openssl\"\n          with Executable_not_found _ ->\n            error (f_\"‘openssl’ command not found: automatically detecting \\\n                      thumbprint is not possible, so you must use \\\n                      ‘-io vddk-thumbprint=XX:XX...’\") in\n        let cmd = sprintf {|\n%s s_client -connect %s:443 </dev/null 2>/dev/null |\n%s x509 -in /dev/stdin -fingerprint -sha1 -noout 2>/dev/null |\ngrep -i '^sha1 Fingerprint=' |\nsed 's/.*Fingerprint=\\([A-F0-9:]\\+\\)/\\1/' |}\n                    openssl (quote server) openssl in\n        let lines = external_command cmd in\n        if List.length lines = 0 then\n          error (f_\"could not fetch thumbprint from the server, you mus use \\\n                    ‘-io vddk-thumbprint=XX:XX...’\");\n        List.hd lines in\n\n    let compression =\n      try Some (List.assoc \"compression\" io_options) with Not_found -> None in\n    let config =\n      try Some (List.assoc \"config\" io_options) with Not_found -> None in\n    let cookie =\n      try Some (List.assoc \"cookie\" io_options) with Not_found -> None in\n    let libdir =\n      try Some (List.assoc \"libdir\" io_options) with Not_found -> None in\n    let nfchostport =\n      try Some (List.assoc \"nfchostport\" io_options) with Not_found -> None in\n    let port =\n      try Some (List.assoc \"port\" io_options) with Not_found -> None in\n    let snapshot =\n      try Some (List.assoc \"snapshot\" io_options) with Not_found -> None in\n    let transports =\n      try Some (List.assoc \"transports\" io_options) with Not_found -> None in\n\n    (* If -io vddk-file was given, there must be exactly one per guest\n     * disk.  Get the list of file overrides.\n     *)\n    let file_overrides =\n      if List.mem_assoc \"file\" io_options then (\n        let fos =\n          List.filter_map (function (\"file\",b) -> Some (Some b) | _ -> None)\n            io_options in\n        if List.length fos <> nr_disks then\n          error (f_\"‘-io vddk-file=’ must be used exactly %d times\") nr_disks;\n        fos\n      )\n      else (\n        (* List of no overrides. *)\n        List.make nr_disks None\n      ) in\n\n    (* Check we have nbdkit and the vddk plugin and the cow filter. *)\n    if not (Nbdkit.is_installed ()) then\n      error (f_\"nbdkit is not installed or not working\");\n    if not (Nbdkit.version () >= (1, 45, 11)) then\n      error (f_\"nbdkit must be >= 1.45.11 for input from VDDK\");\n    if not (Nbdkit.probe_plugin \"vddk\") then\n      error (f_\"nbdkit-vddk-plugin is not installed\");\n    if not (Nbdkit.probe_filter \"cow\") then\n      error (f_\"nbdkit-cow-filter is not installed or not working\");\n\n    (* Check that the VDDK libdir looks reasonable. *)\n    let error_unless_vddk_libdir () =\n      match libdir with\n      | None -> ()\n      | Some libdir ->\n         if not (is_directory libdir) then\n           error (f_\"‘-io vddk-libdir=%s’ does not point to a directory.  \\\n                     See the virt-v2v-input-vmware(1) manual.\") libdir\n    in\n\n    (* Check that the VDDK plugin is installed and working.  We also\n     * check this later when calling common_create, but this version\n     * has better troubleshooting output.\n     *)\n    let error_unless_nbdkit_vddk_working () =\n      let cmd = \"nbdkit vddk --dump-plugin >/dev/null\" in\n      if Sys.command cmd <> 0 then (\n        (* See if we can diagnose why ... *)\n        let cmd = \"LANG=C nbdkit vddk --dump-plugin 2>&1 |\n                   grep -sq \\\"cannot open shared object file\\\"\" in\n        let needs_library = Sys.command cmd = 0 in\n        if not needs_library then\n          error (f_\"nbdkit VDDK plugin is not installed or not working.  It is required if you want to use VDDK.\n\nThe VDDK plugin is not enabled by default when you compile nbdkit.  You have to read the instructions in the nbdkit sources under ‘plugins/vddk/README.VDDK’ to find out how to enable the VDDK plugin.\n\nSee also the virt-v2v-input-vmware(1) manual.\")\n        else\n          error (f_\"nbdkit VDDK plugin is not installed or not working.  It is required if you want to use VDDK.\n\nIt looks like you did not set the right path in the ‘-io vddk-libdir’ option, or your copy of the VDDK directory is incomplete.  There should be a library called ’<libdir>/%s/libvixDiskLib.so.?’.\n\nSee also the virt-v2v-input-vmware(1) manual.\") libNN\n      )\n    in\n\n    error_unless_vddk_libdir ();\n    error_unless_nbdkit_vddk_working ();\n\n    (* Helper to create an nbdkit command object. *)\n    let create_nbdkit_vddk ?name () =\n      let cmd = Nbdkit.create ?name \"vddk\" in\n\n      (* Suppress datapath messages. *)\n      Nbdkit.add_debug_flag cmd \"vddk.datapath\" \"0\";\n\n      (* Enable VDDK stats. *)\n      Nbdkit.add_debug_flag cmd \"vddk.stats\" \"1\";\n\n      Nbdkit.add_arg cmd \"server\" server;\n      Nbdkit.add_arg cmd \"vm\" (sprintf \"moref=%s\" moref);\n\n      (* VDDK requires user and password parameters. *)\n      Nbdkit.add_arg cmd \"user\" user;\n      Nbdkit.add_arg cmd \"password\" (\"+\" ^ password_file);\n\n      (* The passthrough parameters. *)\n      let passthru cmd name v = Option.iter (Nbdkit.add_arg cmd name) v in\n      passthru cmd \"compression\" compression;\n      passthru cmd \"config\" config;\n      passthru cmd \"cookie\" cookie;\n      passthru cmd \"libdir\" libdir;\n      passthru cmd \"nfchostport\" nfchostport;\n      passthru cmd \"port\" port;\n      passthru cmd \"snapshot\" snapshot;\n      Nbdkit.add_arg cmd \"thumbprint\" thumbprint; (* required *)\n      passthru cmd \"transports\" transports;\n\n      (* Retry filter (if it exists) can be used to get around brief\n       * interruptions in service.  It must be closest to the plugin.\n       *)\n      Nbdkit.add_filter_if_available cmd \"retry\";\n\n      (* Add the count filter if available, to report bytes read.\n       * Since it writes a debug message, only do this if verbose.\n       * This should be close to the plugin so we're reporting what\n       * is read over the wire.\n       *)\n      if verbose () then Nbdkit.add_filter_if_available cmd \"count\";\n\n      (* Split very large requests to avoid out of memory errors on the\n       * server.  Since we're using this filter, also add minblock=512\n       * although it will make no difference.\n       *)\n      if Nbdkit.probe_filter \"blocksize\" then (\n        Nbdkit.add_filter cmd \"blocksize\";\n        Nbdkit.add_arg cmd \"minblock\" \"512\";\n        Nbdkit.add_arg cmd \"maxdata\" \"2M\"\n      );\n\n      (* IMPORTANT! Add the COW filter.  It must be furthest away\n       * except for the multi-conn and rate filters.\n       *)\n      Nbdkit.add_filter cmd \"cow\";\n\n      (* The cow filter unconditionally enables multi-conn (because it is\n       * safe).  However this causes an unintended consequence with the VDDK\n       * plugin.  Multiple VDDK handles are opened (one per multi-conn\n       * connection), and for some reason, possibly internal locking, they\n       * conflict with each other.  This manifests itself as API calls taking\n       * between 2 and 7 times longer to serve (especially QueryAllocatedBlocks\n       * which seems to slow down most).\n       *\n       * Avoid this by adding nbdkit-multi-conn-filter with\n       * multi-conn-mode=disable on top which disables multi-conn\n       * advertisement.\n       *)\n      if Nbdkit.probe_filter \"multi-conn\" then (\n        Nbdkit.add_filter cmd \"multi-conn\";\n        Nbdkit.add_arg cmd \"multi-conn-mode\" \"disable\";\n      );\n\n      (* If the filter supports it, enable cow-block-size (added in\n       * nbdkit 1.27.6).  This helps to reduce fragmentated small\n       * extent and read requests.\n       *)\n      if Nbdkit.probe_filter_parameter \"cow\" \"cow-block-size\" then\n        Nbdkit.add_arg cmd \"cow-block-size\" \"4096\";\n\n      (* Add the cow-on-read flag if supported. *)\n      if Nbdkit.probe_filter_parameter \"cow\" \"cow-on-read=.*/PATH\" then\n        Nbdkit.add_arg cmd \"cow-on-read\" (dir // \"convert\");\n\n      (* Add the rate filter.  This must be furthest away so that\n       * we don't end up rate-limiting internal nbdkit operations.\n       *)\n      if Nbdkit.probe_filter \"rate\" then (\n        match options.bandwidth with\n        | None -> ()\n        | Some bandwidth ->\n           Nbdkit.add_filter cmd \"rate\";\n           match bandwidth with\n           | StaticBandwidth rate ->\n              Nbdkit.add_arg cmd \"rate\" rate\n           | DynamicBandwidth (None, filename) ->\n              Nbdkit.add_arg cmd \"rate-file\" filename\n           | DynamicBandwidth (Some rate, filename) ->\n              Nbdkit.add_args cmd [\"rate\", rate; \"rate-file\", filename]\n      );\n\n      cmd\n    in\n\n    (* Collect all the VDDK filename(s) we will be accessing, one\n     * for each input disk.  This takes into account the\n     * '-io vddk-file' override.\n     *)\n    let files =\n      List.combine disks file_overrides |>\n      List.map (\n        function\n        (* These should never happen? *)\n          | { d_type = BlockDev _ | NBD _ | HTTP _ }, _ ->\n             assert false\n\n          | { d_type = LocalFile file }, None ->\n             (* The <source file=...> attribute returned by the libvirt\n              * VMX driver looks like \"[datastore] path\".  We can use it\n              * directly as the nbdkit file= parameter, and it is passed\n              * directly in this form to VDDK.\n              *)\n             file\n\n          | { d_type = LocalFile _ }, Some file_override ->\n             (* If -io vddk-file, override it here. *)\n             file_override\n      ) in\n    assert (files <> []);\n\n    let uris =\n      (* If nbdkit-vddk-plugin has the 'export' feature (added in\n       * nbdkit 1.43.8) then we only have to run a single\n       * instance of nbdkit.\n       *)\n      if Nbdkit.probe_plugin_parameter \"vddk\" \"export=\" then (\n        let socket = sprintf \"%s/in0\" dir in\n        On_exit.unlink socket;\n\n        let nbdkit = create_nbdkit_vddk ~name:\"in\" () in\n\n        let wildcard = get_vddk_export_wildcard files in\n        Nbdkit.add_arg nbdkit \"export\" wildcard;\n\n        let _, pid = Nbdkit.run_unix socket nbdkit in\n        On_exit.kill pid;\n\n        (* Use NBD export names to select the right disk to read. *)\n        List.map (fun file -> NBD_URI.Unix (socket, Some file)) files\n      ) else (\n        (* Create an nbdkit instance for each disk. *)\n        List.mapi (\n          fun i file ->\n            let sockname = sprintf \"in%d\" i in\n            let socket = sprintf \"%s/%s\" dir sockname in\n            On_exit.unlink socket;\n\n            let nbdkit = create_nbdkit_vddk ~name:sockname () in\n            Nbdkit.add_arg nbdkit \"file\" file;\n            let _, pid = Nbdkit.run_unix socket nbdkit in\n            On_exit.kill pid;\n\n            NBD_URI.Unix (socket, None)\n        ) files\n      ) in\n\n    source, uris\nend\n"
  },
  {
    "path": "input/input_vddk.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Input from vCenter or ESXi over VDDK *)\n\nmodule VDDK : Input.INPUT\n"
  },
  {
    "path": "input/input_vmx.ml",
    "content": "(* helper-v2v-input\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\n\nopen Parse_domain_from_vmx\nopen Input\n\nmodule VMX = struct\n  let to_string options args = String.concat \" \" (\"-i vmx\" :: args)\n\n  let query_input_options () =\n    printf (f_\"No input options can be used in this mode.\\n\")\n\n  let rec setup dir options args =\n    if options.input_options <> [] then\n      error (f_\"no -io (input options) are allowed here\");\n\n    if not options.read_only then\n      error (f_\"in-place mode does not work with VMX source\");\n\n    let vmx_source =\n      match args with\n      | [arg] ->\n         let input_password =\n           match options.input_password with\n           | None -> None\n           | Some ip -> Some (Nbdkit_ssh.PasswordFile ip) in\n         let input_transport =\n           match options.input_transport with\n           | None -> None\n           | Some SSH -> Some `SSH\n           | Some VDDK ->\n              error (f_\"-i vmx: cannot use -it vddk in this input mode\") in\n         vmx_source_of_arg input_password input_transport arg\n      | _ ->\n         error (f_\"-i vmx: expecting a VMX file or ssh:// URI\") in\n\n    let source, filenames = parse_domain_from_vmx vmx_source in\n\n    let uris =\n      match vmx_source with\n      | VMXSourceFile vmx_filename ->\n         (* Local file in VMDK format, use qemu-nbd. *)\n         List.mapi (\n           fun i filename ->\n             let socket = sprintf \"%s/in%d\" dir i in\n             On_exit.unlink socket;\n\n             let cmd = QemuNBD.create\n                         (absolute_path_from_other_file vmx_filename\n                            filename) in\n             QemuNBD.set_snapshot cmd true; (* protective overlay *)\n             QemuNBD.set_format cmd (Some \"vmdk\");\n             let _, pid = QemuNBD.run_unix socket cmd in\n             On_exit.kill pid;\n\n             NBD_URI.Unix (socket, None)\n         ) filenames\n\n      | VMXSourceSSH (password, uri) ->\n         List.mapi (\n           fun i filename ->\n             let socket = sprintf \"%s/in%d\" dir i in\n             On_exit.unlink socket;\n\n             let vmx_path =\n               match uri.uri_path with\n               | None -> assert false (* checked by vmx_source_of_arg *)\n               | Some path -> path in\n             let abs_path = absolute_path_from_other_file vmx_path filename in\n             let flat_vmdk = PCRE.replace (PCRE.compile \"\\\\.vmdk$\")\n                               \"-flat.vmdk\" abs_path in\n\n             let server =\n               match uri.uri_server with\n               | None -> assert false (* checked by vmx_source_of_arg *)\n               | Some server -> server in\n             let port =\n               match uri.uri_port with\n               | i when i <= 0 -> None\n               | i -> Some (string_of_int i) in\n             let user = uri.Xml.uri_user in\n\n             (* RHBZ#1774386 *)\n             if not (Ssh.remote_file_exists ?password ?port ~server ?user\n                       flat_vmdk) then\n               error (f_\"This transport does not support guests with \\\n                         snapshots. \\\n                         Either collapse the snapshots for this guest and try \\\n                         the conversion again, or use one of the alternate \\\n                         conversion methods described in \\\n                         virt-v2v-input-vmware(1) section \\\"NOTES\\\".\");\n\n             let cor = dir // \"convert\" in\n             let bandwidth = options.bandwidth in\n             let nbdkit = Nbdkit_ssh.create_ssh ?bandwidth ~cor ?password\n                            ~server ?port ?user flat_vmdk in\n             let _, pid = Nbdkit.run_unix socket nbdkit in\n             On_exit.kill pid;\n\n             NBD_URI.Unix (socket, None)\n         ) filenames in\n\n    source, uris\n\n  (* The filename can be an absolute path, but is more often a\n   * path relative to the location of the vmx file (which might\n   * be remote over SSH).\n   *)\n  and absolute_path_from_other_file other_filename filename =\n    if not (Filename.is_relative filename) then filename\n    else (Filename.dirname (absolute_path other_filename)) // filename\n\nend\n"
  },
  {
    "path": "input/input_vmx.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** [-i vmx] input mode *)\n\nmodule VMX : Input.INPUT\n"
  },
  {
    "path": "input/input_xen_ssh.ml",
    "content": "(* helper-v2v-input\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\n\nopen Parse_libvirt_xml\nopen Input\n\nmodule XenSSH = struct\n  let to_string options args =\n    let xs = args in\n    let xs =\n      match options.input_conn with\n      | Some ic -> (\"-ic \" ^ ic) :: xs\n      | None -> xs in\n    let xs = \"-i libvirt\" :: xs in\n    String.concat \" \" xs\n\n  let query_input_options () =\n    printf (f_\"No input options can be used in this mode.\\n\")\n\n  let setup dir options args =\n    if options.input_options <> [] then\n      error (f_\"no -io (input options) are allowed here\");\n\n    if not options.read_only then\n      error (f_\"in-place mode does not work with Xen over SSH source\");\n\n    (* Get the guest name. *)\n    let guest =\n      match args with\n      | [arg] -> arg\n      | _ ->\n         error (f_\"-i libvirt: expecting a libvirt guest name \\\n                   on the command line\") in\n\n    (* -ic must be set. *)\n    let input_conn =\n      match options.input_conn with\n      | Some ic -> ic\n      | None ->\n         error (f_\"-i libvirt: expecting -ic parameter for \\\n                   Xen over SSH connection\") in\n\n    let uri =\n      try Xml.parse_uri input_conn\n      with Invalid_argument msg ->\n        error (f_\"could not parse '-ic %s'.  Original error message was: %s\")\n          input_conn msg in\n\n    (* Connect to the hypervisor. *)\n    let conn =\n      let auth = Libvirt_utils.auth_for_password_file\n                   ?password_file:options.input_password () in\n      Libvirt.Connect.connect_auth ~name:input_conn auth in\n\n    (* Parse the libvirt XML. *)\n    let source, disks, _ = parse_libvirt_domain conn guest in\n\n    let server =\n      match uri.Xml.uri_server with\n      | Some server -> server\n      | None ->\n         error (f_\"‘-ic %s’ URL does not contain a host name field\")\n           input_conn in\n\n    let port =\n      match uri.uri_port with\n      | 0 | 22 -> None\n      | i -> Some (string_of_int i) in\n\n    let user = uri.uri_user in\n\n    let password =\n      match options.input_password with\n      | None -> None\n      | Some ip -> Some (Nbdkit_ssh.PasswordFile ip) in\n\n    (* Create an nbdkit instance for each disk. *)\n    let uris =\n      List.mapi (\n        fun i { d_format = format; d_type } ->\n          let socket = sprintf \"%s/in%d\" dir i in\n          On_exit.unlink socket;\n\n          (match d_type with\n           | NBD _ | HTTP _ -> (* These should never happen? *)\n              assert false\n\n           | BlockDev _ ->\n              (* Conversion from a remote block device over SSH isn't\n               * supported because OpenSSH sftp server doesn't know how\n               * to get the size of a block device.  Therefore we disallow\n               * this and refer users to the manual.\n               *)\n              error (f_\"input from xen over ssh does not support disks stored \\\n                        on remote block devices.  See virt-v2v-input-xen(1) \\\n                        section \\\"Xen or ssh conversions from block devices\\\".\")\n\n           | LocalFile path ->\n              let cor = dir // \"convert\" in\n              let bandwidth = options.bandwidth in\n              let nbdkit = Nbdkit_ssh.create_ssh ?bandwidth ~cor ?password\n                             ?port ~server ?user path in\n              let _, pid = Nbdkit.run_unix socket nbdkit in\n              On_exit.kill pid\n          );\n\n          NBD_URI.Unix (socket, None)\n    ) disks in\n\n    source, uris\nend\n"
  },
  {
    "path": "input/input_xen_ssh.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Input from Xen over SSH *)\n\nmodule XenSSH : Input.INPUT\n"
  },
  {
    "path": "input/nbdkit_curl.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\n\nopen Common_gettext.Gettext\nopen Std_utils\nopen Tools_utils\n\nopen Types\nopen Utils\n\n(* Create an nbdkit module specialized for reading from Curl sources. *)\nlet create_curl ?name ?bandwidth ?cookie_script ?cookie_script_renew ?cor\n                ?(sslverify=true) url =\n  if not (Nbdkit.is_installed ()) then\n    error (f_\"nbdkit is not installed or not working\");\n\n  if not (Nbdkit.probe_plugin \"curl\") then\n    error (f_\"nbdkit-curl-plugin is not installed\");\n\n  if not (Nbdkit.probe_filter \"cow\") then\n    error (f_\"nbdkit-cow-filter is not installed or not working\");\n\n  (* Construct the nbdkit command. *)\n  let cmd = Nbdkit.create ?name \"curl\" in\n  Nbdkit.add_arg cmd \"url\" url;\n\n  (* https://bugzilla.redhat.com/show_bug.cgi?id=1146007#c10 *)\n  Nbdkit.add_arg cmd \"timeout\" \"2000\";\n  Option.iter (Nbdkit.add_arg cmd \"cookie-script\") cookie_script;\n  (match cookie_script_renew with\n   | Some i -> Nbdkit.add_arg cmd \"cookie-script-renew\" (string_of_int i)\n   | None -> ());\n  if not sslverify then Nbdkit.add_arg cmd \"sslverify\" \"false\";\n\n  (* For lots of extra debugging, uncomment one or both lines. *)\n  (* Nbdkit.add_arg cmd \"--debug\" \"curl.verbose=1\"; *)\n  (* Nbdkit.add_arg cmd \"--debug\" \"curl.scripts=1\"; *)\n\n  (* Retry filter (if it exists) can be used to get around brief\n   * interruptions in service.  It must be closest to the plugin.\n   *)\n  Nbdkit.add_filter_if_available cmd \"retry\";\n\n  (* Add the count filter if available, to report bytes read.\n   * Since it writes a debug message, only do this if verbose.\n   * This should be close to the plugin so we're reporting what\n   * is read over the wire.\n   *)\n  if verbose () then Nbdkit.add_filter_if_available cmd \"count\";\n\n  (* IMPORTANT! Add the COW filter.  It must be furthest away\n   * except for the rate filter.\n   *)\n  Nbdkit.add_filter cmd \"cow\";\n\n  (* Add the cow-on-read flag if supported. *)\n  (match cor with\n   | None -> ()\n   | Some cor ->\n      if Nbdkit.probe_filter_parameter \"cow\" \"cow-on-read=.*/PATH\" then\n        Nbdkit.add_arg cmd \"cow-on-read\" cor\n  );\n\n  (* Add the rate filter.  This must be furthest away so that\n   * we don't end up rate-limiting internal nbdkit operations.\n   *)\n  if Nbdkit.probe_filter \"rate\" then (\n    match bandwidth with\n    | None -> ()\n    | Some bandwidth ->\n       Nbdkit.add_filter cmd \"rate\";\n       match bandwidth with\n       | StaticBandwidth rate ->\n          Nbdkit.add_arg cmd \"rate\" rate\n       | DynamicBandwidth (None, filename) ->\n          Nbdkit.add_arg cmd \"rate-file\" filename\n       | DynamicBandwidth (Some rate, filename) ->\n          Nbdkit.add_args cmd [\"rate\", rate; \"rate-file\", filename]\n  );\n\n  cmd\n"
  },
  {
    "path": "input/nbdkit_curl.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Small wrapper around nbdkit-curl-plugin used by vcenter-https *)\n\nval create_curl : ?name:string ->\n                  ?bandwidth:Types.bandwidth ->\n                  ?cookie_script:string ->\n                  ?cookie_script_renew:int ->\n                  ?cor:string ->\n                  ?sslverify:bool ->\n                  string -> Nbdkit.cmd\n(** Create a nbdkit object using the Curl plugin.  The required\n    string parameter is the URL.\n\n    This can fail (calling [error]) for a variety of reasons, such\n    as nbdkit not being available, wrong version, missing plugin, etc.\n\n    Note this doesn't run nbdkit yet, it just creates the object. *)\n"
  },
  {
    "path": "input/nbdkit_ssh.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\n\nopen Common_gettext.Gettext\nopen Std_utils\nopen Tools_utils\n\nopen Types\nopen Utils\n\ntype password =\n  | AskForPassword\n  | PasswordFile of string\n\n(* Create an nbdkit module specialized for reading from SSH sources. *)\nlet create_ssh ?name ?bandwidth ?cor ?(retry=true)\n      ~server ?port ?user ?password path =\n  if not (Nbdkit.is_installed ()) then\n    error (f_\"nbdkit is not installed or not working\");\n\n  if not (Nbdkit.probe_plugin \"ssh\") then\n    error (f_\"nbdkit-ssh-plugin is not installed\");\n\n  if not (Nbdkit.probe_filter \"cow\") then\n    error (f_\"nbdkit-cow-filter is not installed or not working\");\n\n  (* Construct the nbdkit command. *)\n  let cmd = Nbdkit.create ?name \"ssh\" in\n  Nbdkit.add_arg cmd \"host\" server;\n  Nbdkit.add_arg cmd \"path\" path;\n  Option.iter (Nbdkit.add_arg cmd \"port\") port;\n  Option.iter (Nbdkit.add_arg cmd \"user\") user;\n\n  (* Retry filter (if it exists) can be used to get around brief\n   * interruptions in service.  It must be closest to the plugin.\n   *)\n  if retry then\n    Nbdkit.add_filter_if_available cmd \"retry\";\n\n  (* Add the count filter if available, to report bytes read.\n   * Since it writes a debug message, only do this if verbose.\n   * This should be close to the plugin so we're reporting what\n   * is read over the wire.\n   *)\n  if verbose () then Nbdkit.add_filter_if_available cmd \"count\";\n\n  (* IMPORTANT! Add the COW filter.  It must be furthest away\n   * except for the rate filter.\n   *)\n  Nbdkit.add_filter cmd \"cow\";\n\n  (* Add the cow-on-read flag if supported. *)\n  (match cor with\n   | None -> ()\n   | Some cor ->\n      if Nbdkit.probe_filter_parameter \"cow\" \"cow-on-read=.*/PATH\" then\n        Nbdkit.add_arg cmd \"cow-on-read\" cor\n  );\n\n  (* Add the rate filter.  This must be furthest away so that\n   * we don't end up rate-limiting internal nbdkit operations.\n   *)\n  if Nbdkit.probe_filter \"rate\" then (\n    match bandwidth with\n    | None -> ()\n    | Some bandwidth ->\n       Nbdkit.add_filter cmd \"rate\";\n       match bandwidth with\n       | StaticBandwidth rate ->\n          Nbdkit.add_arg cmd \"rate\" rate\n       | DynamicBandwidth (None, filename) ->\n          Nbdkit.add_arg cmd \"rate-file\" filename\n       | DynamicBandwidth (Some rate, filename) ->\n          Nbdkit.add_args cmd [\"rate\", rate; \"rate-file\", filename]\n  );\n\n  (* Handle the password parameter specially. *)\n  (match password with\n   | None -> ()\n   | Some AskForPassword ->\n      (* Because we will start nbdkit in the background and then wait\n       * for 30 seconds for it to start up, we cannot use the\n       * password=- feature of nbdkit to read the password\n       * interactively (since in the words of the movie the user has\n       * only \"30 seconds to comply\").  In any case this feature broke\n       * in the VDDK plugin in nbdkit 1.18 and 1.20.  So in the\n       * AskForPassword case we read the password here.\n       *)\n      printf \"password: \";\n      let open Unix in\n      let orig = tcgetattr stdin in\n      let tios = { orig with c_echo = false } in\n      tcsetattr stdin TCSAFLUSH tios; (* Disable echo. *)\n      let password = read_line () in\n      tcsetattr stdin TCSAFLUSH orig; (* Restore echo. *)\n      printf \"\\n\";\n      let password_file = Filename.temp_file \"v2vnbdkit\" \".txt\" in\n      On_exit.unlink password_file;\n      with_open_out password_file (fun chan -> output_string chan password);\n      Nbdkit.add_arg cmd \"password\" (\"+\" ^ password_file)\n   | Some (PasswordFile password_file) ->\n      Nbdkit.add_arg cmd \"password\" (\"+\" ^ password_file)\n  );\n\n  cmd\n\n"
  },
  {
    "path": "input/nbdkit_ssh.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** nbdkit when used as a source. *)\n\ntype password =                 (** Use [None] for no password *)\n  | AskForPassword              (** [password=-] *)\n  | PasswordFile of string      (** [password=+file] *)\n\nval create_ssh : ?name:string ->\n                 ?bandwidth:Types.bandwidth ->\n                 ?cor:string ->\n                 ?retry:bool ->\n                 server:string ->\n                 ?port:string ->\n                 ?user:string ->\n                 ?password:password ->\n                 string -> Nbdkit.cmd\n(** Create a nbdkit object using the SSH plugin.  The required\n    string parameter is the remote path.\n\n    This can fail (calling [error]) for a variety of reasons, such\n    as nbdkit not being available, wrong version, missing plugin, etc.\n\n    Note this doesn't run nbdkit yet, it just creates the object. *)\n"
  },
  {
    "path": "input/parse_domain_from_vmx.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2017-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Scanf\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\n\ntype vmx_source =\n  | VMXSourceFile of string     (* local file or NFS *)\n  | VMXSourceSSH of Nbdkit_ssh.password option * Xml.uri (* SSH URI *)\n\n(* The single filename on the command line is interpreted either as\n * a local file or a remote SSH URI (only if ‘-it ssh’).\n *)\nlet vmx_source_of_arg input_password input_transport arg =\n  match input_transport, arg with\n  | None, arg -> VMXSourceFile arg\n  | Some `SSH, arg ->\n     let uri =\n       try Xml.parse_uri arg\n       with Invalid_argument _ ->\n         error (f_\"remote vmx ‘%s’ could not be parsed as a URI\") arg in\n     if uri.Xml.uri_scheme <> None && uri.Xml.uri_scheme <> Some \"ssh\" then\n       error (f_\"vmx URI start with ‘ssh://...’\");\n     if uri.Xml.uri_server = None then\n       error (f_\"vmx URI remote server name omitted\");\n     if uri.Xml.uri_path = None || uri.Xml.uri_path = Some \"/\" then\n       error (f_\"vmx URI path component looks incorrect\");\n     VMXSourceSSH (input_password, uri)\n\nlet rec find_disks vmx vmx_source =\n  (* Set the s_disk_id field to an incrementing number. *)\n  List.mapi\n    (fun i (source, filename) -> { source with s_disk_id = i }, filename)\n    (find_scsi_disks vmx vmx_source @\n     find_nvme_disks vmx vmx_source @\n     find_sata_disks vmx vmx_source @\n     find_ide_disks vmx vmx_source)\n\n(* Find all SCSI hard disks.\n *\n * In the VMX file:\n *   scsi0.virtualDev = \"pvscsi\"  # or may be \"lsilogic\" etc.\n *   scsi0:0.deviceType = \"disk\" | \"plainDisk\" | \"rawDisk\" | \"scsi-hardDisk\"\n *                        | omitted\n *   scsi0:0.fileName = \"guest.vmdk\"\n *)\nand find_scsi_disks vmx vmx_source =\n  let get_scsi_controller_target ns =\n    sscanf ns \"scsi%d:%d\" (fun c t -> c, t)\n  in\n  let is_scsi_controller_target ns =\n    try ignore (get_scsi_controller_target ns); true\n    with Scanf.Scan_failure _ | End_of_file | Failure _ -> false\n  in\n  let scsi_device_types = [ Some \"disk\"; Some \"plaindisk\"; Some \"rawdisk\";\n                            Some \"scsi-harddisk\"; None ] in\n  let scsi_controller = Source_SCSI in\n\n  find_hdds vmx vmx_source\n            get_scsi_controller_target is_scsi_controller_target\n            scsi_device_types scsi_controller\n\n(* Find all NVMe hard disks.\n *\n * In the VMX file:\n *   nvme0.pcislotnumber = \"192\"\n *   nvme0:0.fileName = \"guest.vmdk\"\n *)\nand find_nvme_disks vmx vmx_source =\n  let get_nvme_controller_target ns =\n    sscanf ns \"nvme%d:%d\" (fun c t -> c, t)\n  in\n  let is_nvme_controller_target ns =\n    try ignore (get_nvme_controller_target ns); true\n    with Scanf.Scan_failure _ | End_of_file | Failure _ -> false\n  in\n  let nvme_device_types = [ None ] in\n  let nvme_controller = Source_NVME in\n\n  find_hdds vmx vmx_source\n            get_nvme_controller_target is_nvme_controller_target\n            nvme_device_types nvme_controller\n\n(* Find all SATA hard disks.\n *\n * In the VMX file:\n *   sata0.pciSlotNumber = \"33\"\n *   sata0:3.fileName = \"win2019_1.vmdk\"\n *\n * The \"deviceType\" field must be absent or \"disk\".  Other types here\n * include \"cdrom-raw\" and others indicating a CD-ROM, which we should\n * ignore.\n *)\nand find_sata_disks vmx vmx_source =\n  let get_sata_controller_target ns =\n    sscanf ns \"sata%d:%d\" (fun c t -> c, t)\n  in\n  let is_sata_controller_target ns =\n    try ignore (get_sata_controller_target ns); true\n    with Scanf.Scan_failure _ | End_of_file | Failure _ -> false\n  in\n  let sata_device_types = [ Some \"disk\"; None ] in\n  let sata_controller = Source_SATA in\n\n  find_hdds vmx vmx_source\n            get_sata_controller_target is_sata_controller_target\n            sata_device_types sata_controller\n\n(* Find all IDE hard disks.\n *\n * In the VMX file:\n *   ide0:0.deviceType = \"ata-hardDisk\"\n *   ide0:0.fileName = \"guest.vmdk\"\n *)\nand find_ide_disks vmx vmx_source =\n  let get_ide_controller_target ns =\n    sscanf ns \"ide%d:%d\" (fun c t -> c, t)\n  in\n  let is_ide_controller_target ns =\n    try ignore (get_ide_controller_target ns); true\n    with Scanf.Scan_failure _ | End_of_file | Failure _ -> false\n  in\n  let ide_device_types = [ Some \"ata-harddisk\" ] in\n  let ide_controller = Source_IDE in\n\n  find_hdds vmx vmx_source\n            get_ide_controller_target is_ide_controller_target\n            ide_device_types ide_controller\n\nand find_hdds vmx vmx_source\n              get_controller_target is_controller_target\n              device_types controller =\n  (* Find namespaces matching '(ide|scsi|nvme|sata)X:Y' with suitable\n   * deviceType.\n   *)\n  let hdds =\n    VMX.select_namespaces (\n      function\n      | [ns] ->\n         (* Check the namespace is '(ide|scsi|nvme|sata)X:Y' *)\n         if not (is_controller_target ns) then false\n         else (\n           (* Check the deviceType is one we are looking for. *)\n           let dt = VMX.get_string vmx [ns; \"deviceType\"] in\n           let dt = Option.map String.lowercase_ascii dt in\n           List.mem dt device_types\n         )\n      | _ -> false\n    ) vmx in\n\n  (* Map the subset to a list of disks. *)\n  let hdds =\n    VMX.map (\n      fun path v ->\n        match path, v with\n        | [ns; \"filename\"], Some filename ->\n           let c, t = get_controller_target ns in\n           let s = { s_disk_id = (-1); s_controller = Some controller } in\n           Some (c, t, s, filename)\n        | _ -> None\n    ) hdds in\n  let hdds = List.filter_map Fun.id hdds in\n\n  (* We don't have a way to return the controllers and targets, so\n   * just make sure the disks are sorted into order, since VMX\n   * won't return them in any particular order.\n   *)\n  let hdds = List.sort compare hdds in\n  List.map (fun (_, _, source, filename) -> source, filename) hdds\n\n(* Find all removable disks.\n *\n * In the VMX file:\n *   ide1:0.deviceType = \"cdrom-image\"\n *   ide1:0.fileName = \"boot.iso\"\n *\n * XXX This only supports IDE CD-ROMs, but we could support SCSI CD-ROMs, SATA\n * CD-ROMs, and floppies in future.\n *)\nand find_removables vmx =\n  let get_ide_controller_target ns =\n    sscanf ns \"ide%d:%d\" (fun c t -> c, t)\n  in\n  let is_ide_controller_target ns =\n    try ignore (get_ide_controller_target ns); true\n    with Scanf.Scan_failure _ | End_of_file | Failure _ -> false\n  in\n  let device_types = [ \"atapi-cdrom\";\n                       \"cdrom-image\"; \"cdrom-raw\" ] in\n\n  (* Find namespaces matching 'ideX:Y' with suitable deviceType. *)\n  let devs =\n    VMX.select_namespaces (\n      function\n      | [ns] ->\n         (* Check the namespace is 'ideX:Y' *)\n         if not (is_ide_controller_target ns) then false\n         else (\n           (* Check the deviceType is one we are looking for. *)\n           match VMX.get_string vmx [ns; \"deviceType\"] with\n           | Some str ->\n              let str = String.lowercase_ascii str in\n              List.mem str device_types\n           | None -> false\n         )\n      | _ -> false\n    ) vmx in\n\n  (* Map the subset to a list of CD-ROMs. *)\n  let devs =\n    VMX.map (\n      fun path v ->\n        match path, v with\n        | [ns], None ->\n           let c, t = get_ide_controller_target ns in\n           let s = { s_removable_type = CDROM;\n                     s_removable_controller = Some Source_IDE;\n                     s_removable_slot = Some (ide_slot c t) } in\n           Some s\n        | _ -> None\n    ) devs in\n  let devs = List.filter_map Fun.id devs in\n\n  (* Sort by slot. *)\n  let devs =\n    List.sort\n      (fun { s_removable_slot = s1 } { s_removable_slot = s2 } ->\n        compare s1 s2)\n      devs in\n\n  devs\n\nand ide_slot c t =\n  (* Assuming the old master/slave arrangement. *)\n  c * 2 + t\n\n(* Find all ethernet cards.\n *\n * In the VMX file:\n *   ethernet0.virtualDev = \"vmxnet3\"\n *   ethernet0.networkName = \"VM Network\"\n *   ethernet0.generatedAddress = \"00:01:02:03:04:05\"\n *   ethernet0.connectionType = \"bridged\" # also: \"custom\", \"nat\" or not present\n *)\nand find_nics vmx =\n  let get_ethernet_port ns =\n    sscanf ns \"ethernet%d\" (fun p -> p)\n  in\n  let is_ethernet_port ns =\n    try ignore (get_ethernet_port ns); true\n    with Scanf.Scan_failure _ | End_of_file | Failure _ -> false\n  in\n\n  (* Find namespaces matching 'ethernetX'. *)\n  let nics =\n    VMX.select_namespaces (\n      function\n      | [ns] -> is_ethernet_port ns\n      | _ -> false\n    ) vmx in\n\n  (* Map the subset to a list of NICs. *)\n  let nics =\n    VMX.map (\n      fun path v ->\n        match path, v with\n        | [ns], None ->\n           let port = get_ethernet_port ns in\n           let mac = VMX.get_string vmx [ns; \"generatedAddress\"] in\n           let model = VMX.get_string vmx [ns; \"virtualDev\"] in\n           let model =\n             match model with\n             | Some m when String.lowercase_ascii m = \"e1000\" ->\n                Some Source_e1000\n             | Some model ->\n                Some (Source_other_nic (String.lowercase_ascii model))\n             | None -> None in\n           let vnet = VMX.get_string vmx [ns; \"networkName\"] in\n           let vnet =\n             match vnet with\n             | Some vnet -> vnet\n             | None -> ns (* \"ethernetX\" *) in\n           let vnet_type =\n             match VMX.get_string vmx [ns; \"connectionType\"] with\n             | Some b when String.lowercase_ascii b = \"bridged\" ->\n                Bridge\n             | Some _ | None -> Network in\n           Some (port,\n                 { s_mac = mac; s_nic_model = model;\n                   s_vnet = vnet;\n                   s_vnet_type = vnet_type })\n        | _ -> None\n    ) nics in\n  let nics = List.filter_map Fun.id nics in\n\n  (* Sort by port. *)\n  let nics = List.sort compare nics in\n\n  let nics = List.map (fun (_, source) -> source) nics in\n  nics\n\nlet parse_domain_from_vmx vmx_source =\n  let tmpdir =\n    let t = Mkdtemp.temp_dir \"vmx.\" in\n    On_exit.rm_rf t;\n    t in\n\n  (* If the transport is SSH, fetch the file from remote, else\n   * parse it from local.\n   *)\n  let vmx =\n    match vmx_source with\n    | VMXSourceFile filename -> VMX.parse_file filename\n    | VMXSourceSSH (password, uri) ->\n       let server =\n         match uri.uri_server with\n         | None -> assert false (* checked by vmx_source_of_arg *)\n         | Some server -> server in\n       let port =\n         match uri.uri_port with\n         | i when i <= 0 -> None\n         | i -> Some (string_of_int i) in\n       let user = uri.Xml.uri_user in\n       let path =\n         match uri.uri_path with\n         | None -> assert false (* checked by vmx_source_of_arg *)\n         | Some path -> path in\n       let filename = tmpdir // \"source.vmx\" in\n       Ssh.download_file ?password ?port ~server ?user path filename;\n       VMX.parse_file filename in\n\n  let name =\n    match VMX.get_string vmx [\"displayName\"] with\n    | Some s -> s\n    | None ->\n       warning (f_\"no displayName key found in VMX file\");\n       match vmx_source with\n       | VMXSourceFile filename -> name_from_disk filename\n       | VMXSourceSSH (_, uri) ->\n          match uri.uri_path with\n          | None -> assert false (* checked by vmx_source_of_arg *)\n          | Some path -> name_from_disk path in\n\n  let genid =\n    (* See: https://lists.nongnu.org/archive/html/qemu-devel/2018-07/msg02019.html *)\n    let genid_lo = VMX.get_int64 vmx [\"vm\"; \"genid\"]\n    and genid_hi = VMX.get_int64 vmx [\"vm\"; \"genidX\"] in\n    match genid_lo, genid_hi with\n    | None, None | Some _, None | None, Some _ ->\n       None\n    | Some lo, Some hi ->\n       (* See docs/vm-generation-id-across-hypervisors.txt *)\n       let sub = String.sub (sprintf \"%016Lx%016Lx\" lo hi) in\n       let uuid =\n         sub  8 8 ^ \"-\" ^\n         sub  4 4 ^ \"-\" ^\n         sub  0 4 ^ \"-\" ^\n         sub 30 2 ^ sub 28 2 ^ \"-\" ^\n         sub 26 2 ^ sub 24 2 ^ sub 22 2 ^ sub 20 2 ^ sub 18 2 ^ sub 16 2 in\n       Some uuid in\n\n  let memory_mb =\n    match VMX.get_int64 vmx [\"memSize\"] with\n    | None -> 32_L            (* default is really 32 MB! *)\n    | Some i -> i in\n  let memory = memory_mb *^ 1024L *^ 1024L in\n\n  let vcpu =\n    match VMX.get_int vmx [\"numvcpus\"] with\n    | None -> 1\n    | Some i -> i in\n\n  let cpu_topology =\n    match VMX.get_int vmx [\"cpuid\"; \"coresPerSocket\"] with\n    | None -> None\n    | Some cores_per_socket ->\n       let sockets = vcpu / cores_per_socket in\n       if sockets <= 0 then (\n         warning (f_\"invalid cpuid.coresPerSocket < number of vCPUs\");\n         None\n       )\n       else\n         Some { s_cpu_sockets = sockets; s_cpu_cores = cores_per_socket;\n                s_cpu_threads = 1 } in\n\n  let firmware =\n    match VMX.get_string vmx [\"firmware\"] with\n    | None -> BIOS\n    | Some \"efi\" -> UEFI\n    (* Other values are not documented for this field ... *)\n    | Some fw ->\n       warning (f_\"unknown firmware value '%s', assuming BIOS\") fw;\n       BIOS in\n\n  let uefi_secureboot =\n    VMX.get_bool vmx [\"uefi\"; \"secureBoot\"; \"enabled\"] |>\n      Option.value ~default:false in\n\n  let sound =\n    match VMX.get_string vmx [\"sound\"; \"virtualDev\"] with\n    | Some \"sb16\" -> Some { s_sound_model = SB16 }\n    | Some \"es1371\" -> Some { s_sound_model = ES1370 (* hmmm ... *) }\n    | Some \"hdaudio\" -> Some { s_sound_model = ICH6 (* intel-hda *) }\n    | Some model ->\n       warning (f_\"unknown sound device '%s' ignored\") model;\n       None\n    | None -> None in\n\n  let disks = find_disks vmx vmx_source in\n  let removables = find_removables vmx in\n  let nics = find_nics vmx in\n\n  let source = {\n    s_hypervisor = VMware;\n    s_name = name;\n    s_genid = genid;\n    s_memory = memory;\n    s_vcpu = vcpu;\n    s_cpu_vendor = None;\n    s_cpu_model = None;\n    s_cpu_topology = cpu_topology;\n    s_features = [];\n    s_firmware = firmware;\n    s_uefi_secureboot = uefi_secureboot;\n    s_display = None;\n    s_sound = sound;\n    s_disks = List.map fst disks;\n    s_removables = removables;\n    s_nics = nics;\n  } in\n\n  source, List.map snd disks\n"
  },
  {
    "path": "input/parse_domain_from_vmx.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2017-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Some helper functions for parsing [.vmx] (VMware metadata) files\n    into a {!Types.source} structure and list of disks. *)\n\ntype vmx_source =\n  | VMXSourceFile of string     (** local file or NFS *)\n  | VMXSourceSSH of Nbdkit_ssh.password option * Xml.uri (** SSH URI *)\n\nval vmx_source_of_arg : Nbdkit_ssh.password option -> [`SSH] option ->\n                        string -> vmx_source\nval parse_domain_from_vmx : vmx_source -> Types.source * string list\n"
  },
  {
    "path": "input/parse_libvirt_xml.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\n\nopen C_utils\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\nopen Xpath_helpers\n\nopen Types\nopen Utils\n\ntype disk = {\n  d_format : string option;     (* Disk format from XML if known. *)\n  d_type : disk_type;           (* Disk type and extra information. *)\n  d_checksum : disk_checksum option; (* Disk checksum, if present. *)\n}\nand disk_type =\n  | BlockDev of string          (* type=block with <source dev=...> *)\n  | LocalFile of string         (* type=file with <source file=...> *)\n  | NBD of string * int         (* NBD forward to hostname:port *)\n  | HTTP of string              (* HTTP/HTTPS URL *)\nand disk_checksum = {\n  checksum_method : string;     (* Checksum method, eg. \"sha256\". *)\n  checksum_expected : string;   (* Expected checksum. *)\n  checksum_on_fail : checksum_on_fail\n}\nand checksum_on_fail = ChecksumOnFailWarn | ChecksumOnFailError | ChecksumPrint\n\n(* Turn string like \"hda\" into controller slot number.  See also\n * common/utils/utils.c:guestfs_int_drive_index which this function calls.\n *)\nlet get_drive_slot str offset =\n  let name = String.sub str offset (String.length str - offset) in\n  try Some (drive_index name)\n  with Invalid_argument _ ->\n       warning (f_\"could not parse device name ‘%s’ \\\n                   from the source libvirt XML\") str;\n       None\n\nlet parse_libvirt_xml ?conn xml =\n  debug \"libvirt xml is:\\n%s\" xml;\n\n  (* Create a default libvirt connection on request, to not open one\n   * in case there is no need to fetch more data (for example inspect\n   * the storage pools).\n   *)\n  let libvirt_conn =\n    lazy (Libvirt.Connect.connect ()) in\n  let get_conn () =\n    match conn with\n    | None -> Lazy.force libvirt_conn\n    | Some conn -> conn in\n\n  let doc = Xml.parse_memory xml in\n  let xpathctx = Xml.xpath_new_context doc in\n  let xpath_string = xpath_string xpathctx\n  and xpath_int = xpath_int xpathctx\n  and xpath_int64 = xpath_int64 xpathctx in\n\n  let hypervisor =\n    match xpath_string \"/domain/@type\" with\n    | None | Some \"\" ->\n       error (f_\"in the libvirt XML metadata, <domain type='...'> \\\n                 is missing or empty\")\n    | Some s -> source_hypervisor_of_string s in\n  let name =\n    match xpath_string \"/domain/name/text()\" with\n    | None | Some \"\" ->\n       error (f_\"in the libvirt XML metadata, <name> is missing or empty\")\n    | Some s -> String.trim s in\n  let genid =\n    match xpath_string \"/domain/genid/text()\" with\n    | None | Some \"\" -> None\n    | Some _ as s -> s in\n  let memory =\n    Option.value ~default:(1024L *^ 1024L) (xpath_int64 \"/domain/memory/text()\") in\n  let memory = memory *^ 1024L in\n\n  let cpu_vendor = xpath_string \"/domain/cpu/vendor/text()\" in\n  let cpu_model = xpath_string \"/domain/cpu/model/text()\" in\n  let cpu_sockets = xpath_int \"/domain/cpu/topology/@sockets\" in\n  let cpu_cores = xpath_int \"/domain/cpu/topology/@cores\" in\n  let cpu_threads = xpath_int \"/domain/cpu/topology/@threads\" in\n\n  (* Get the <vcpu> field from the input XML.  If not set then\n   * try calculating it from the <cpu> <topology> node.  If that's\n   * not set either, then assume 1 vCPU.\n   *)\n  let vcpu = xpath_int \"/domain/vcpu/text()\" in\n  let vcpu =\n    match vcpu, cpu_sockets, cpu_cores, cpu_threads with\n    | Some vcpu, _,    _,    _    -> vcpu\n    | None,      None, None, None -> 1\n    | None,      _,    _,    _    ->\n       let sockets = Option.value ~default:1 cpu_sockets\n       and cores = Option.value ~default:1 cpu_cores\n       and threads = Option.value ~default:1 cpu_threads in\n       sockets * cores * threads in\n\n  let cpu_topology =\n    match cpu_sockets, cpu_cores, cpu_threads with\n    | Some sockets, Some cores, Some threads ->\n       Some { s_cpu_sockets = sockets; s_cpu_cores = cores;\n              s_cpu_threads = threads; }\n    | _, _, _ -> None in\n\n  let features =\n    let nodes = xpath_get_nodes xpathctx \"/domain/features/*\" in\n    List.map Xml.node_name nodes in\n\n  let display =\n    let obj = Xml.xpath_eval_expression xpathctx \"/domain/devices/graphics\" in\n    let nr_nodes = Xml.xpathobj_nr_nodes obj in\n    if nr_nodes < 1 then None\n    else (\n      (* Ignore everything except the first <graphics> device. *)\n      let node = Xml.xpathobj_node obj 0 in\n      Xml.xpathctx_set_current_context xpathctx node;\n      let keymap = xpath_string \"@keymap\" in\n      let password = xpath_string \"@passwd\" in\n      let listen =\n        let obj = Xml.xpath_eval_expression xpathctx \"listen\" in\n        let nr_nodes = Xml.xpathobj_nr_nodes obj in\n        if nr_nodes < 1 then (\n          match xpath_string \"@listen\" with\n          | None -> LNoListen | Some a -> LAddress a\n        ) else (\n          (* Use only the first <listen> configuration. *)\n          match xpath_string \"listen[1]/@type\" with\n          | None -> LNoListen\n          | Some \"address\" ->\n            (match xpath_string \"listen[1]/@address\" with\n            | None -> LNoListen\n            | Some a -> LAddress a\n            )\n          | Some \"network\" ->\n            (match xpath_string \"listen[1]/@network\" with\n            | None -> LNoListen\n            | Some n -> LNetwork n\n            )\n          | Some \"socket\" ->\n            (match xpath_string \"listen[1]/@socket\" with\n            | None -> LSocket None\n            | Some n -> LSocket (Some n)\n            )\n          | Some \"none\" ->\n            LNone\n          | Some t ->\n            warning (f_\"<listen type='%s'> in the input libvirt XML \\\n                        was ignored\") t;\n            LNoListen\n        ) in\n      let port =\n        match xpath_string \"@autoport\" with\n        | Some \"no\" ->\n          (match xpath_int \"@port\" with\n           | Some port when port > 0 -> Some port\n           | Some _ | None -> None)\n        | _ -> None in\n      match xpath_string \"@type\" with\n      | None -> None\n      | Some \"vnc\" ->\n        Some { s_display_type = VNC;\n               s_keymap = keymap; s_password = password; s_listen = listen;\n               s_port = port }\n      | Some \"spice\" ->\n        Some { s_display_type = Spice;\n               s_keymap = keymap; s_password = password; s_listen = listen;\n               s_port = port }\n      | Some (\"sdl\"|\"desktop\" as t) ->\n        warning (f_\"virt-v2v does not support local displays, so \\\n                    <graphics type='%s'> in the input libvirt XML was ignored\")\n          t;\n        None\n      | Some t ->\n        warning (f_\"display <graphics type='%s'> in the input \\\n                    libvirt XML was ignored\") t;\n        None\n    ) in\n\n  (* Sound card. *)\n  let sound =\n    let obj = Xml.xpath_eval_expression xpathctx \"/domain/devices/sound\" in\n    let nr_nodes = Xml.xpathobj_nr_nodes obj in\n    if nr_nodes < 1 then None\n    else (\n      (* Ignore everything except the first <sound> device. *)\n      let node = Xml.xpathobj_node obj 0 in\n\n      Xml.xpathctx_set_current_context xpathctx node;\n      match xpath_string \"@model\" with\n      | None -> None\n      | Some model ->\n         match source_sound_model_of_string model with\n         | Some s_sound_model -> Some { s_sound_model }\n         | None ->\n            warning (f_\"unknown sound model %s ignored\") model;\n            None\n    ) in\n\n  (* Presence of virtio-scsi controller. *)\n  let has_virtio_scsi =\n    let obj = Xml.xpath_eval_expression xpathctx\n                \"/domain/devices/controller[@model='virtio-scsi']\" in\n    Xml.xpathobj_nr_nodes obj > 0 in\n\n  (* Non-removable disk devices. *)\n  let s_disks, disks =\n    let get_disks, add_disk =\n      let s_disks = ref [] and disks = ref [] and i = ref (-1) in\n      let get_disks () = List.rev !s_disks, List.rev !disks in\n      let add_disk format controller typ checksum =\n        incr i;\n        let s_disk = { s_disk_id = !i; s_controller = controller }\n        and disk = {\n          d_format = format;\n          d_type = typ;\n          d_checksum = checksum;\n        } in\n        List.push_front s_disk s_disks;\n        List.push_front disk disks\n      in\n      get_disks, add_disk\n    in\n    let obj =\n      Xml.xpath_eval_expression xpathctx\n        \"/domain/devices/disk[@device='disk']\" in\n    let nr_nodes = Xml.xpathobj_nr_nodes obj in\n    if nr_nodes < 1 then\n      error (f_\"this guest has no non-removable disks\");\n    for i = 0 to nr_nodes-1 do\n      let node = Xml.xpathobj_node obj i in\n      Xml.xpathctx_set_current_context xpathctx node;\n\n      let controller =\n        let target_bus = xpath_string \"target/@bus\" in\n        match target_bus, has_virtio_scsi with\n        | None, _ -> None\n        | Some \"ide\", _ -> Some Source_IDE\n        | Some \"sata\", _ -> Some Source_SATA\n        | Some \"scsi\", true -> Some Source_virtio_SCSI\n        | Some \"scsi\", false -> Some Source_SCSI\n        | Some \"virtio\", _ -> Some Source_virtio_blk\n        | Some _, _ -> None in\n\n      let format =\n        match xpath_string \"driver/@type\" with\n        | Some \"aio\" -> Some \"raw\" (* Xen weirdness *)\n        | None -> None\n        | Some format -> Some format in\n\n      let checksum =\n        match xpath_string \"checksum/text()\",\n              xpath_string \"checksum/@method\",\n              xpath_string \"checksum/@fail\" with\n        | _, Some meth, Some (\"print\") ->\n           Some { checksum_expected = \"\"; checksum_method = meth;\n                  checksum_on_fail = ChecksumPrint }\n        | None, _, _ -> None\n        | Some csum, None, _ ->\n           warning (f_\"<checksum> missing 'method' attribute, ignoring\");\n           None\n        | _, _, (None | Some \"ignore\") -> None\n        | Some csum, Some meth, Some (\"warn\" | \"warning\") ->\n           Some { checksum_expected = String.trim csum;\n                  checksum_method = meth;\n                  checksum_on_fail = ChecksumOnFailWarn }\n        | Some csum, Some meth, Some (\"err\" | \"error\") ->\n           Some { checksum_expected = String.trim csum;\n                  checksum_method = meth;\n                  checksum_on_fail = ChecksumOnFailError }\n        | _, _, Some v ->\n           warning (f_\"<checksum> unknown fail='%s' attribute, ignoring\") v;\n           None in\n\n      (* The <disk type='...'> attribute may be 'block', 'file',\n       * 'network' or 'volume'.  We ignore any other types.\n       *)\n      match xpath_string \"@type\" with\n      | None ->\n         warning (f_\"<disk> element with no type attribute ignored\")\n      | Some \"block\" ->\n        (match xpath_string \"source/@dev\" with\n         | Some path ->\n            add_disk format controller (BlockDev path) checksum\n         | None -> ()\n        );\n      | Some \"file\" ->\n        (match xpath_string \"source/@file\" with\n         | Some path ->\n            add_disk format controller (LocalFile path) checksum\n         | None -> ()\n        );\n      | Some \"network\" ->\n        (match (xpath_string \"source/@protocol\",\n                xpath_string \"source/host/@name\",\n                xpath_int \"source/host/@port\") with\n        | None, _, _ ->\n           warning (f_\"<disk type='%s'> was ignored\") \"network\"\n        | Some \"nbd\", Some (\"localhost\" as host), Some port when port > 0 ->\n           (* <source protocol=\"nbd\"> with host localhost is used by virt-p2v *)\n           add_disk format controller (NBD (host, port)) checksum\n        | Some (\"http\"|\"https\" as driver), Some (_ as host), port ->\n           (* This is for testing curl, eg for testing VMware conversions\n            * without needing VMware around.\n            *)\n           let path = Option.value ~default:\"\" (xpath_string \"source/@name\") in\n           let url =\n             let port =\n               match driver, port with\n               | _, None -> \"\"\n               | \"https\", Some 443 -> \"\"\n               | \"http\", Some 80 -> \"\"\n               | _, Some port when port >= 1 -> \":\" ^ string_of_int port\n               | _, Some port ->\n                  invalid_arg \"invalid port number in libvirt XML\" in\n             sprintf \"%s://%s%s%s\" driver host port (uri_quote path) in\n           add_disk format controller (HTTP url) checksum\n        | Some protocol, _, _ ->\n           warning (f_\"<disk type='network'> with <source protocol='%s'> \\\n                       was ignored\")\n                   protocol\n        )\n      | Some \"volume\" ->\n        (match xpath_string \"source/@pool\", xpath_string \"source/@volume\" with\n        | None, None | Some _, None | None, Some _ -> ()\n        | Some pool, Some vol ->\n          let xml =\n            let pool = Libvirt_utils.get_pool (get_conn ()) pool in\n            let vol = Libvirt_utils.get_volume pool vol in\n            Libvirt.Volume.get_xml_desc (Libvirt.Volume.const vol) in\n          let doc = Xml.parse_memory xml in\n          let xpathctx = Xml.xpath_new_context doc in\n          let xpath_string = Xpath_helpers.xpath_string xpathctx in\n\n          (* Use the format specified in the volume itself. *)\n          let format = xpath_string \"/volume/target/format/@type\" in\n\n          (match xpath_string \"/volume/@type\" with\n          | None | Some \"file\" ->\n            (match xpath_string \"/volume/target/path/text()\" with\n             | Some path ->\n                add_disk format controller (LocalFile path) checksum\n             | None -> ()\n            );\n          | Some vol_type ->\n            warning (f_\"<disk type='volume'> with <volume type='%s'> \\\n                        was ignored\") vol_type\n          )\n        )\n      | Some disk_type ->\n        warning (f_\"<disk type='%s'> was ignored\") disk_type\n    done;\n    get_disks () in\n\n  (* Removable devices, CD-ROMs and floppy disks. *)\n  let removables =\n    let obj =\n      Xml.xpath_eval_expression xpathctx\n        \"/domain/devices/disk[@device='cdrom' or @device='floppy']\" in\n    let nr_nodes = Xml.xpathobj_nr_nodes obj in\n    let disks = ref [] in\n    for i = 0 to nr_nodes-1 do\n      let node = Xml.xpathobj_node obj i in\n      Xml.xpathctx_set_current_context xpathctx node;\n\n      let controller =\n        let target_bus = xpath_string \"target/@bus\" in\n        match target_bus, has_virtio_scsi with\n        | None, _ -> None\n        | Some \"ide\", _ -> Some Source_IDE\n        | Some \"sata\", _ -> Some Source_SATA\n        | Some \"scsi\", true -> Some Source_virtio_SCSI\n        | Some \"scsi\", false -> Some Source_SCSI\n        | Some \"virtio\", _ -> Some Source_virtio_blk\n        | Some _, _ -> None in\n\n      let slot =\n        let target_dev = xpath_string \"target/@dev\" in\n        match target_dev with\n        | None -> None\n        | Some dev when String.starts_with \"sr\" dev ->\n           (* \"srN\" devices are found mostly in the physical XML written by\n            * virt-p2v.\n            *)\n           let name = String.sub dev 2 (String.length dev - 2) in\n           (try Some (int_of_string name)\n            with Failure _ ->\n              warning (f_\"could not parse device name ‘%s’ \\\n                          from the source libvirt XML\") dev;\n              None\n           )\n        | Some dev ->\n           let rec loop = function\n             | [] ->\n                warning (f_\"<target dev='%s'> was ignored because \\\n                            the device name could not be recognized\") dev;\n                None\n             | prefix :: rest ->\n                if String.starts_with prefix dev then (\n                  let offset = String.length prefix in\n                  get_drive_slot dev offset\n                )\n                else\n                  loop rest\n           in\n           loop [\"hd\"; \"sd\"; \"vd\"; \"xvd\"; \"fd\"] in\n\n      let typ =\n        match xpath_string \"@device\" with\n        | Some \"cdrom\" -> CDROM\n        | Some \"floppy\" -> Floppy\n        | _ -> assert false (* libxml2 error? *) in\n\n      let disk =\n        { s_removable_type = typ;\n          s_removable_controller = controller;\n          s_removable_slot = slot } in\n      List.push_front disk disks\n    done;\n    List.rev !disks in\n\n  (* Network interfaces. *)\n  let nics =\n    let obj = Xml.xpath_eval_expression xpathctx \"/domain/devices/interface\" in\n    let nr_nodes = Xml.xpathobj_nr_nodes obj in\n    let nics = ref [] in\n    for i = 0 to nr_nodes-1 do\n      let node = Xml.xpathobj_node obj i in\n      Xml.xpathctx_set_current_context xpathctx node;\n\n      let mac = xpath_string \"mac/@address\" in\n      let mac =\n        match mac with\n        | None\n        | Some \"00:00:00:00:00:00\" (* thanks, VMware *) -> None\n        | Some mac -> Some mac in\n\n      let model =\n        match xpath_string \"model/@type\" with\n        | None -> None\n        | Some model -> Some (nic_model_of_string model) in\n\n      let vnet_type =\n        match xpath_string \"@type\" with\n        | Some \"network\" -> Some Network\n        | Some \"bridge\" -> Some Bridge\n        | None | Some _ -> None in\n      match vnet_type with\n      | None -> ()\n      | Some vnet_type ->\n         let add_nic vnet =\n           let nic = {\n             s_mac = mac;\n             s_nic_model = model;\n             s_vnet = vnet;\n             s_vnet_type = vnet_type\n           } in\n           List.push_front nic nics\n         in\n         match xpath_string \"source/@network | source/@bridge\" with\n         | None -> ()\n         | Some \"\" ->\n            (* The libvirt VMware driver produces at least <source\n             * bridge=''/> XML - see RHBZ#1257895.\n             *)\n            add_nic (sprintf \"eth%d\" i)\n         | Some vnet ->\n            add_nic vnet\n    done;\n    List.rev !nics in\n\n  (* Firmware.\n   * If \"/domain/os\" node doesn't contain \"firmware\" attribute (automatic\n   * firmware), we look for the presence of \"pflash\" in\n   * \"/domain/os/loader/@type\" attribute (manual firmware), with the latter\n   * indicating the UEFI firmware.\n   * See https://libvirt.org/formatdomain.html#bios-bootloader\n   *)\n  let firmware =\n    match xpath_string \"/domain/os/@firmware\" with\n    | Some \"bios\" -> BIOS\n    | Some \"efi\" -> UEFI\n    | Some _ -> UnknownFirmware\n    | None -> (\n        match xpath_string \"/domain/os/loader/@type\" with\n        | Some \"pflash\" -> UEFI\n        | _ -> UnknownFirmware\n      ) in\n\n  (* Secure boot flag.  See:\n   * https://libvirt.org/kbase/secureboot.html\n   *)\n  let uefi_secureboot =\n    match xpath_string \"/domain/os/firmware/\\\n                        feature[@name='secure-boot']/@enabled\" with\n    | Some \"yes\" (* XXX other boolean values? *) -> true\n    | Some _ | None -> false in\n\n  (* Check for hostdev devices. (RHBZ#1472719) *)\n  let () =\n    let obj = Xml.xpath_eval_expression xpathctx \"/domain/devices/hostdev\" in\n    let nr_nodes = Xml.xpathobj_nr_nodes obj in\n    if nr_nodes > 0 then (\n      (* Sadly fn_ in ocaml-gettext seems broken, and always returns the\n       * singular string no matter what.  Work around this by using a simple\n       * string with sn_ (which works), and outputting it as a whole.\n       *)\n      let msg = sn_ \"this guest has a passthrough host device which will be ignored\"\n                    \"this guest has passthrough host devices which will be ignored\"\n                    nr_nodes in\n      warning \"%s\" msg\n    )\n  in\n\n  (* Check for direct attachments to physical network interfaces.\n   * (RHBZ#1518539)\n   *)\n  let () =\n    let obj = Xml.xpath_eval_expression xpathctx \"/domain/devices/interface[@type='direct']\" in\n    let nr_nodes = Xml.xpathobj_nr_nodes obj in\n    if nr_nodes > 0 then (\n      (* Sadly fn_ in ocaml-gettext seems broken, and always returns the\n       * singular string no matter what.  Work around this by using a simple\n       * string with sn_ (which works), and outputting it as a whole.\n       *)\n      let msg = sn_ \"this guest has a direct network interface which will be ignored\"\n                    \"this guest has direct network interfaces which will be ignored\"\n                    nr_nodes in\n      warning \"%s\" msg\n    )\n  in\n\n  ({\n    s_hypervisor = hypervisor;\n    s_name = name;\n    s_genid = genid;\n    s_memory = memory;\n    s_vcpu = vcpu;\n    s_cpu_vendor = cpu_vendor;\n    s_cpu_model = cpu_model;\n    s_cpu_topology = cpu_topology;\n    s_features = features;\n    s_firmware = firmware;\n    s_uefi_secureboot = uefi_secureboot;\n    s_display = display;\n    s_sound = sound;\n    s_disks = s_disks;\n    s_removables = removables;\n    s_nics = nics;\n   },\n   disks)\n\nlet parse_libvirt_domain conn guest =\n  let dom = Libvirt_utils.get_domain conn guest in\n  (* Use XmlSecure to get passwords (RHBZ#1174123). *)\n  let xml = Libvirt.Domain.get_xml_desc_flags dom [Libvirt.Domain.XmlSecure] in\n  let source, disks = parse_libvirt_xml ~conn xml in\n  source, disks, xml\n"
  },
  {
    "path": "input/parse_libvirt_xml.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Parse libvirt XML into a {!Types.source} structure and list of disks. *)\n\ntype disk = {\n  d_format : string option;     (** Disk format from XML if known. *)\n  d_type : disk_type;           (** Disk type and extra information. *)\n  d_checksum : disk_checksum option; (** Disk checksum, if present. *)\n}\nand disk_type =\n  | BlockDev of string          (** type=block with <source dev=...> *)\n  | LocalFile of string         (** type=file with <source file=...> *)\n  | NBD of string * int         (** NBD forward to hostname:port *)\n  | HTTP of string              (** HTTP/HTTPS URL *)\nand disk_checksum = {\n  checksum_method : string;     (** Checksum method, eg. \"sha256\". *)\n  checksum_expected : string;   (** Expected checksum. *)\n  checksum_on_fail : checksum_on_fail\n}\nand checksum_on_fail = ChecksumOnFailWarn | ChecksumOnFailError | ChecksumPrint\n(** Libvirt disk description corresponding to each field in s_disks.\n    The caller usually has to create NBD server instances for each\n    of these. *)\n\nval parse_libvirt_domain : Libvirt.rw Libvirt.Connect.t -> string -> Types.source * disk list * string\n(** [parse_libvirt_domain conn dom] loads the XML of the domain [dom]\n    from the libvirt connection [conn].\n    The result is a tuple with a {!Types.source} structure, a list of\n    libvirt disks, and the XML of the guest. *)\n\nval parse_libvirt_xml : ?conn:Libvirt.rw Libvirt.Connect.t -> string -> Types.source * disk list\n(** Take libvirt XML and parse it into a {!Types.source} structure and a\n    list of libvirt disks. *)\n"
  },
  {
    "path": "input/select_input.ml",
    "content": "(* helper-v2v-input\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\ntype input_mode =\n  | Disk\n  | Libvirt\n  | LibvirtXML\n  | OVA\n  | VMX\n\nlet input_modes = [\n    Disk;\n    Libvirt;\n    LibvirtXML;\n    OVA;\n    VMX;\n  ]\n\nlet string_of_input_mode = function\n  | Disk -> \"disk\"\n  | Libvirt -> \"libvirt\"\n  | LibvirtXML -> \"libvirtxml\"\n  | OVA -> \"ova\"\n  | VMX -> \"vmx\"\n\nlet input_mode_of_string = function\n  | \"disk\" | \"local\" -> Disk\n  | \"libvirt\" -> Libvirt\n  | \"libvirtxml\" -> LibvirtXML\n  | \"ova\" -> OVA\n  | \"vmx\" -> VMX\n  | s -> error (f_\"unknown -i option: %s\") s\n\nlet select_input ?(allow_remote = true) input_mode input_conn input_transport =\n  match input_mode with\n  | Some Disk -> (module Input_disk.Disk : Input.INPUT)\n  | Some LibvirtXML -> (module Input_libvirt.LibvirtXML)\n  | Some OVA -> (module Input_ova.OVA)\n  | Some VMX -> (module Input_vmx.VMX)\n  | None | Some Libvirt ->\n     match input_conn with\n     | None -> (module Input_libvirt.Libvirt_)\n     | Some orig_uri ->\n        let { Xml.uri_server = server; uri_scheme = scheme } =\n          try Xml.parse_uri orig_uri\n          with Invalid_argument msg ->\n            error (f_\"could not parse '-ic %s'.  \\\n                      Original error message was: %s\")\n              orig_uri msg in\n\n        match server, scheme, input_transport, allow_remote with\n        | None, _, _, _\n        | Some \"\", _, _, _    (* Not a remote URI. *)\n\n        | Some _, None, _, _  (* No scheme? *)\n        | Some _, Some \"\", _, _ ->\n           (module Input_libvirt.Libvirt_)\n\n        (* All the input method below here are remote, but virt-v2v-in-place\n         * cannot work with remote disks.  If remote is not allowed\n         * then fail here.\n         *)\n        | _, _, _, false ->\n           error (f_\"virt-v2v-in-place does not support remote \\\n                     libvirt URIs\")\n\n        (* vCenter over https. *)\n        | Some server, Some (\"esx\"|\"gsx\"|\"vpx\"), None, true ->\n           (module Input_vcenter_https.VCenterHTTPS)\n\n        (* vCenter or ESXi using nbdkit vddk plugin *)\n        | Some server, Some (\"esx\"|\"gsx\"|\"vpx\"), Some Input.VDDK, true ->\n           (module Input_vddk.VDDK)\n\n        (* Xen over SSH *)\n        | Some server, Some \"xen+ssh\", _, true ->\n           if Config.enable_xen then (module Input_xen_ssh.XenSSH)\n           else failwithf \"Xen input is not enabled in this build\"\n\n        (* Old virt-v2v also supported qemu+ssh://.  However I am\n         * deliberately not supporting this in new virt-v2v.  Don't\n         * use virt-v2v if a guest already runs on KVM.\n         *)\n\n        (* Unknown remote scheme. *)\n        | Some _, Some _, _, true ->\n           warning (f_\"no support for remote libvirt connections \\\n                       to '-ic %s'.  The conversion may fail when it \\\n                       tries to read the source disks.\") orig_uri;\n           (module Input_libvirt.Libvirt_)\n"
  },
  {
    "path": "input/select_input.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\ntype input_mode =\n  | Disk\n  | Libvirt\n  | LibvirtXML\n  | OVA\n  | VMX\n(** [-i] option on the command line *)\n\nval input_modes : input_mode list\n(** A list of the available input modes. *)\n\nval string_of_input_mode : input_mode -> string\n(** Return the canonical string form of an input mode *)\n\nval input_mode_of_string : string -> input_mode\n(** Return the input mode corresponding to a string.  This is\n    used when parsing the command line.  If the input mode\n    is unknown this calls {!Tools_utils.error} and exits. *)\n\nval select_input : ?allow_remote:bool ->\n                   input_mode option -> string option ->\n                   Input.input_transport option -> (module Input.INPUT)\n(** Select an input module based on command line parameters. *)\n"
  },
  {
    "path": "input/ssh.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\nopen Common_gettext.Gettext\n\nopen Printf\n\nlet start_nbdkit ~server ?port ?user ?password path =\n  (* Create a random location for the socket used to talk to nbdkit. *)\n  let sockdir = Mkdtemp.temp_dir \"v2vssh.\" in\n  On_exit.rm_rf sockdir;\n  let id = unique () in\n  let socket = sockdir // sprintf \"nbdkit%d.sock\" id in\n\n  (* Note: Disabling the retry filter helps in the missing file case,\n   * otherwise nbdkit takes ages to time out.  We're not expecting that\n   * the VMX file is large, so using this filter isn't necessary.\n   *)\n  let nbdkit =\n    Nbdkit_ssh.create_ssh ~retry:false ?password ~server ?port ?user path in\n  Nbdkit.set_readonly nbdkit true;\n  let _, pid = Nbdkit.run_unix socket nbdkit in\n  On_exit.kill pid;\n\n  (* Return the URI of nbdkit. *)\n  \"nbd+unix://?socket=\" ^ socket\n\n(* Download a remote file into a local file. *)\nlet download_file ~server ?port ?user ?password path output =\n  let uri = start_nbdkit ~server ?port ?user ?password path in\n\n  let cmd = [ Config.nbdcopy; uri; output ] in\n  if run_command cmd <> 0 then\n    error (f_\"could not copy the VMX file from the remote server, \\\n              see earlier error messages\")\n\n(* Test if [path] exists on the remote server. *)\nlet remote_file_exists ~server ?port ?user ?password path =\n  let uri = start_nbdkit ~server ?port ?user ?password path in\n\n  (* Testing that the nbdkit server can get the size is enough to\n   * prove the remote file exists.\n   *)\n  let cmd = sprintf \"%s --size %s >/dev/null %s\"\n              Config.nbdinfo (quote uri)\n              (* If verbose then allow stderr to go to the log, else hide it *)\n              (if verbose () then \"\" else \"2>&1\") in\n  let r = shell_command cmd = 0 in\n  debug \"ssh: remote_file_exists: testing %s -> %b\" path r;\n  r\n"
  },
  {
    "path": "input/ssh.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Wrappers for finding and downloading remote files over ssh.\n\n    Internally this uses nbdkit-ssh-plugin (which uses sftp) as\n    that is much more predictable than running external ssh / scp. *)\n\n(** [remote_file_exists server ?port ?user ?password path]\n    checks that [path] exists on the remote server. *)\nval remote_file_exists : server:string -> ?port:string ->\n                         ?user:string -> ?password:Nbdkit_ssh.password ->\n                         string -> bool\n\n(** [download_file server ?port ?user ?password path output]\n    downloads the single remote file at [path] to\n    the local file called [output]. *)\nval download_file : server:string -> ?port:string ->\n                    ?user:string -> ?password:Nbdkit_ssh.password ->\n                    string ->\n                    string -> unit\n"
  },
  {
    "path": "input/vCenter.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Xml\nopen Utils\n\nlet source_re = PCRE.compile \"^\\\\[(.*)\\\\] (.*)\\\\.vmdk$\"\nlet snapshot_re = PCRE.compile \"^(.*)-\\\\d{6}(\\\\.vmdk)$\"\n\nlet rec start_nbdkit_for_path ?bandwidth ?cor ?password_file\n          dcPath uri server path\n          socket =\n  (* If no_verify=1 was passed in the libvirt URI, then we have to\n   * turn off certificate verification here too.\n   *)\n  let sslverify =\n    match uri.uri_query_raw with\n    | None -> true\n    | Some query ->\n       (* XXX only works if the query string is not URI-quoted *)\n       String.find query \"no_verify=1\" = -1 in\n\n  (* Check the URL exists and authentication info is correct. *)\n  let https_url =\n    let https_url = get_https_url dcPath uri server path in\n    let status, dump_response =\n      fetch_headers_from_url password_file uri sslverify https_url in\n\n    (* If a disk is actually a snapshot image it will have '-00000n'\n     * appended to its name, e.g.:\n     *   [yellow:storage1] RHEL4-X/RHEL4-X-000003.vmdk\n     * The flat storage is still called RHEL4-X-flat, however. If we got\n     * a 404 and the vmdk name looks like it might be a snapshot, try\n     * again without the snapshot suffix.\n     *)\n    let https_url, status, dump_response =\n      if status = \"404\" && PCRE.matches snapshot_re path then (\n        let path = PCRE.sub 1 ^ PCRE.sub 2 in\n        let https_url = get_https_url dcPath uri server path in\n        let status, dump_response =\n          fetch_headers_from_url password_file uri sslverify https_url in\n        https_url, status, dump_response\n      )\n      else (https_url, status, dump_response) in\n\n    if status = \"401\" then (\n      dump_response stderr;\n      if uri.uri_user <> None then\n        error (f_\"vcenter: incorrect username or password\")\n      else\n        error (f_\"vcenter: incorrect username or password.  You might need \\\n                  to specify the username in the URI like this: \\\n                  [vpx|esx|..]://USERNAME@[etc]\")\n    );\n\n    if status = \"404\" then (\n      dump_response stderr;\n      error (f_\"vcenter: URL not found: %s\") https_url\n    );\n\n    if status <> \"200\" then (\n      dump_response stderr;\n      error (f_\"vcenter: invalid response from server: %s\") status\n    );\n\n    https_url in\n\n  (* Write a cookie script to retrieve the session cookie.\n   * See nbdkit-curl-plugin(1) \"Example: VMware ESXi cookies\"\n   *)\n  let cookie_script, chan =\n    Filename.open_temp_file ~perms:0o700 \"v2vcs\" \".sh\" in\n  On_exit.unlink cookie_script;\n  let fpf fs = fprintf chan fs in\n  fpf \"#!/bin/sh -\\n\";\n  fpf \"\\n\";\n  fpf \"curl --head -s\";\n  if not sslverify then fpf \" --insecure\";\n  (match uri.uri_user, password_file with\n   | None, None -> ()\n   | Some user, None -> fpf \" -u %s\" (quote user)\n   | None, Some password_file ->\n      fpf \" -u \\\"$LOGNAME\\\":\\\"$(cat %s)\\\"\" (quote password_file)\n   | Some user, Some password_file ->\n      fpf \" -u %s:\\\"$(cat %s)\\\"\" (quote user) (quote password_file)\n  );\n  fpf \" %s\" (quote https_url);\n  fpf \" |\\n\";\n  fpf \"\\tsed -ne %s\\n\" (quote \"{ s/^Set-Cookie: \\\\([^;]*\\\\);.*/\\\\1/ip }\");\n  close_out chan;\n\n  (* VMware authentication expires after 30 minutes so we must renew\n   * after < 30 minutes.\n   *)\n  let cookie_script_renew = 25*60 in\n\n  let nbdkit =\n    Nbdkit_curl.create_curl ?bandwidth ?cor\n      ~cookie_script ~cookie_script_renew\n      ~sslverify https_url in\n  let _, pid = Nbdkit.run_unix socket nbdkit in\n  pid\n\nand get_https_url dcPath uri server path =\n  if not (PCRE.matches source_re path) then\n    path\n  else (\n    let datastore = PCRE.sub 1 and path = PCRE.sub 2 in\n\n    let port =\n      match uri.uri_port with\n      | 443 -> \"\"\n      | n when n >= 1 -> \":\" ^ string_of_int n\n      | _ -> \"\" in\n\n    (* XXX Need to handle templates.  The file is called \"-delta.vmdk\" in\n     * place of \"-flat.vmdk\".\n     *)\n    (* dcPath and dsName need to be double quoted:\n     * https://gitlab.com/libvirt/libvirt/-/commit/6c9d2591c6\n     *)\n    sprintf \"https://%s%s/folder/%s-flat.vmdk?dcPath=%s&dsName=%s\"\n            server port\n            (uri_quote path)\n            (uri_quote (uri_quote dcPath))\n            (uri_quote (uri_quote datastore))\n  )\n\n(* Fetch the status from a URL. *)\nand fetch_headers_from_url password_file uri sslverify https_url =\n  let curl_args = ref [\n    \"head\", None;\n    \"silent\", None;\n  ] in\n  (match uri.uri_user, password_file with\n   | None, None -> ()\n   | None, Some _ ->\n      warning (f_\"-ip PASSWORD_FILE parameter ignored because \\\n                  'user@' was not given in the URL\")\n   | Some user, None ->\n      List.push_back curl_args (\"user\", Some user)\n   | Some user, Some password_file ->\n      let password = read_first_line_from_file password_file in\n      List.push_back curl_args (\"user\", Some (user ^ \":\" ^ password))\n  );\n  if not sslverify then List.push_back curl_args (\"insecure\", None);\n\n  let curl_h = Curl.create !curl_args https_url in\n  let lines = Curl.run curl_h in\n\n  let dump_response chan =\n    Curl.print chan curl_h;\n\n    (* Dump out the output of the command. *)\n    List.iter (fun x -> fprintf chan \"%s\\n\" x) lines;\n    flush chan\n  in\n\n  if verbose () then dump_response stderr;\n\n  let statuses, headers =\n    List.partition (\n      fun line ->\n        let len = String.length line in\n        len >= 12 && String.sub line 0 5 = \"HTTP/\"\n    ) lines in\n\n  (* Look for the last HTTP/x.y NNN status code in the output. *)\n  let status =\n    match statuses with\n    | [] ->\n       dump_response stderr;\n       error (f_\"vcenter: no status code in output of ‘curl’ command.\")\n    | ss ->\n      let s = List.hd (List.rev ss) in\n      String.sub s (String.index s ' ' + 1) 3 in\n\n  status, dump_response\n"
  },
  {
    "path": "input/vCenter.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Functions for dealing with VMware vCenter. *)\n\nval start_nbdkit_for_path : ?bandwidth:Types.bandwidth -> ?cor:string ->\n                            ?password_file:string ->\n                            string -> Xml.uri -> string -> string -> string ->\n                            int\n(** [start_nbdkit_for_path ?bandwidth ?cor ?password_file dcPath uri server path socket]\n    maps the [<source path=...>] string to an nbdkit instance pointing\n    to the guest disk.\n\n    The input [path] comes from libvirt and will be something like:\n    [\"[datastore1] Fedora 20/Fedora 20.vmdk\"]\n    (including those literal spaces in the string).\n\n    This checks that the disk exists and that authentication is\n    correct, otherwise it will fail.\n\n    [socket] is the location of the Unix domain socket exposing\n    NBD.  This returns the PID of nbdkit.  Note that a COW overlay\n    is placed over the disk so writes will be discarded. *)\n"
  },
  {
    "path": "inspector/Makefile.am",
    "content": "# libguestfs virt-v2v-inspector tool\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nEXTRA_DIST = \\\n\ttest-docs.sh \\\n\t$(SOURCES_MLI) \\\n\t$(SOURCES_ML) \\\n\t$(SOURCES_C) \\\n\tvirt-v2v-inspector.pod \\\n\t$(NULL)\n\nSOURCES_MLI = \\\n\tcreate_inspector_xml.mli \\\n\tinspector.mli \\\n\t$(NULL)\n\nSOURCES_ML = \\\n\tcreate_inspector_xml.ml \\\n\tinspector.ml \\\n\t$(NULL)\n\nSOURCES_C = dummy.c\n\nbin_PROGRAMS = virt-v2v-inspector\n\nvirt_v2v_inspector_SOURCES = $(SOURCES_C)\nvirt_v2v_inspector_CPPFLAGS = \\\n\t-DCAML_NAME_SPACE \\\n\t-I. \\\n\t-I$(top_builddir) \\\n\t-I$(shell $(OCAMLC) -where) \\\n\t-I$(top_srcdir)/lib \\\n\t$(NULL)\nvirt_v2v_inspector_CFLAGS = \\\n\t-pthread \\\n\t$(WARN_CFLAGS) $(WERROR_CFLAGS) \\\n\t$(LIBGUESTFS_CFLAGS) \\\n\t$(LIBVIRT_CFLAGS) \\\n\t$(NULL)\n\nBOBJECTS = $(SOURCES_ML:.ml=.cmo)\nXOBJECTS = $(BOBJECTS:.cmo=.cmx)\n\nOCAMLPACKAGES = \\\n\t-package str,unix,guestfs,libvirt,nbd \\\n\t-I $(top_builddir)/common/utils/.libs \\\n\t-I $(top_builddir)/common/qemuopts/.libs \\\n\t-I $(top_builddir)/gnulib/lib/.libs \\\n\t-I $(top_builddir)/lib \\\n\t-I $(top_builddir)/input \\\n\t-I $(top_builddir)/convert \\\n\t-I $(top_builddir)/common/mlstdutils \\\n\t-I $(top_builddir)/common/mlutils \\\n\t-I $(top_builddir)/common/mlgettext \\\n\t-I $(top_builddir)/common/mlpcre \\\n\t-I $(top_builddir)/common/mlxml \\\n\t-I $(top_builddir)/common/mltools \\\n\t-I $(top_builddir)/common/mlcustomize \\\n\t-I $(top_builddir)/common/mldrivers \\\n\t$(NULL)\nif HAVE_OCAML_PKG_GETTEXT\nOCAMLPACKAGES += -package gettext-stub\nendif\n\nOCAMLCLIBS = \\\n\t-pthread \\\n\t-lqemuopts \\\n\t$(LIBGUESTFS_LIBS) \\\n\t$(LIBVIRT_LIBS) \\\n\t$(LIBCRYPT_LIBS) \\\n\t$(LIBXML2_LIBS) \\\n\t$(JSON_C_LIBS) \\\n\t$(LIBOSINFO_LIBS) \\\n\t$(LIBINTL) \\\n\t$(LIBNBD_LIBS) \\\n\t-lgnu \\\n\t$(NULL)\n\nOCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)'\n\nif !HAVE_OCAMLOPT\nOBJECTS = $(BOBJECTS)\nelse\nOBJECTS = $(XOBJECTS)\nendif\n\nOCAMLLINKFLAGS = \\\n\tmlstdutils.$(MLARCHIVE) \\\n\tmlgettext.$(MLARCHIVE) \\\n\tmlpcre.$(MLARCHIVE) \\\n\tmlxml.$(MLARCHIVE) \\\n\tmlcutils.$(MLARCHIVE) \\\n\tmltools.$(MLARCHIVE) \\\n\tmllibvirt.$(MLARCHIVE) \\\n\tmlcustomize.$(MLARCHIVE) \\\n\tmldrivers.$(MLARCHIVE) \\\n\tmlv2vlib.$(MLARCHIVE) \\\n\tmlconvert.$(MLARCHIVE) \\\n\tmlinput.$(MLARCHIVE) \\\n\t$(LINK_CUSTOM_OCAMLC_ONLY) \\\n\t$(NULL)\n\nvirt_v2v_inspector_DEPENDENCIES = \\\n\t$(OBJECTS) \\\n\t$(top_builddir)/input/mlinput.$(MLARCHIVE) \\\n\t$(top_builddir)/convert/mlconvert.$(MLARCHIVE) \\\n\t$(top_builddir)/lib/mlv2vlib.$(MLARCHIVE) \\\n\t$(top_srcdir)/ocaml-link.sh \\\n\t$(NULL)\nvirt_v2v_inspector_LINK = \\\n\t$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \\\n\t  $(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \\\n\t  $(OBJECTS) -o $@\n\n# Data directory.\n\nvirttoolsdatadir = $(datadir)/virt-tools\n\n# Dependencies.\n.depend: \\\n\t$(srcdir)/*.mli \\\n\t$(srcdir)/*.ml \\\n\t$(filter %.ml,$(BUILT_SOURCES))\n\t$(top_builddir)/ocaml-dep.sh $^\n-include .depend\n\n# Manual pages.\n\nman_MANS = virt-v2v-inspector.1\nnoinst_DATA = $(top_builddir)/website/virt-v2v-inspector.1.html\n\nvirt-v2v-inspector.1 $(top_builddir)/website/virt-v2v-inspector.1.html: stamp-virt-v2v-inspector.pod\n\nstamp-virt-v2v-inspector.pod: virt-v2v-inspector.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-inspector.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-inspector.1.html \\\n\t  --path $(top_srcdir)/common/options \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nTESTS_ENVIRONMENT = $(top_builddir)/run --test\nTESTS = test-docs.sh\n"
  },
  {
    "path": "inspector/create_inspector_xml.ml",
    "content": "(* virt-v2v-inspector\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\n\nopen Std_utils\nopen Tools_utils\n\nopen Types\nopen Utils\nopen DOM\n\n(* This is where we construct the final XML document based on\n * these inputs:\n *   - Global configuration like the version of v2v etc.\n *   - The NBD input disks\n *   - The inspection data (Types.inspect)\n *)\nlet rec create_inspector_xml input_disks inspect target_meta =\n  let body = ref [] in\n\n  (* Record the version of virt-v2v etc, mainly for debugging. *)\n  List.push_back_list body [\n    Comment generated_by;\n    e \"program\" [] [PCData \"virt-v2v-inspector\"];\n    e \"package\" [] [PCData Config.package_name];\n    e \"version\" [] [PCData Config.package_version];\n  ];\n\n  (* The disks. *)\n  let disks = ref [] in\n\n  List.iteri (\n    fun index uri ->\n      let uri = NBD_URI.to_uri uri in\n      let virtual_size = Utils.with_nbd_connect_uri ~uri NBD.get_size in\n\n      let elems = ref [] in\n      List.push_back elems (e \"virtual-size\" []\n                              [PCData (Int64.to_string virtual_size)]);\n      (match get_disk_allocated uri with\n       | None -> ()\n       | Some real_size ->\n          List.push_back elems (e \"allocated\" [ \"estimated\", \"true\" ]\n                                  [PCData (Int64.to_string real_size)])\n      );\n\n      List.push_back disks (e \"disk\" [ \"index\", string_of_int index ] !elems)\n  ) input_disks;\n  List.push_back body (e \"disks\" [] !disks);\n\n  (* The <firmware> field is outside the <operatingsystem> element,\n   * since firmware is not part of the OS, and also because this is\n   * consistent with virt-drivers output.\n   *)\n  List.push_back body\n    (e \"firmware\"\n       [\"type\",\n        string_of_target_firmware target_meta.target_firmware]\n       []);\n\n  (* The inspection data. *)\n  (* NB: Keep these field names compatible with virt-inspector! *)\n  let os = ref [] in\n  List.push_back os (e \"name\" [] [PCData inspect.i_type]);\n  List.push_back os (e \"distro\" [] [PCData inspect.i_distro]);\n  List.push_back os (e \"osinfo\" [] [PCData inspect.i_osinfo]);\n  List.push_back os (e \"arch\" [] [PCData inspect.i_arch]);\n  List.push_back os (e \"major_version\" []\n                       [PCData (string_of_int inspect.i_major_version)]);\n  List.push_back os (e \"minor_version\" []\n                       [PCData (string_of_int inspect.i_minor_version)]);\n  if inspect.i_package_format <> \"\" then\n    List.push_back os (e \"package_format\" []\n                         [PCData inspect.i_package_format]);\n  if inspect.i_package_management <> \"\" then\n    List.push_back os (e \"package_management\" []\n                         [PCData inspect.i_package_management]);\n  if inspect.i_product_name <> \"\" then\n    List.push_back os (e \"product_name\" [] [PCData inspect.i_product_name]);\n  if inspect.i_product_variant <> \"\" then\n    List.push_back os (e \"product_variant\" []\n                         [PCData inspect.i_product_variant]);\n\n  if inspect.i_windows_systemroot <> \"\" then\n    List.push_back os (e \"windows_systemroot\" []\n                         [PCData inspect.i_windows_systemroot]);\n  if inspect.i_windows_software_hive <> \"\" then\n    List.push_back os (e \"windows_software_hive\" []\n                         [PCData inspect.i_windows_software_hive]);\n  if inspect.i_windows_systemroot <> \"\" then\n    List.push_back os (e \"windows_system_hive\" []\n                         [PCData inspect.i_windows_system_hive]);\n  if inspect.i_windows_current_control_set <> \"\" then\n    List.push_back os (e \"windows_current_control_set\" []\n                         [PCData inspect.i_windows_current_control_set]);\n  if inspect.i_windows_group_policy then\n    List.push_back os (e \"windows_group_policy\" [] []);\n\n  let has_antivirus =\n    List.exists (fun { Guestfs.app2_class } -> app2_class = \"antivirus\")\n      inspect.i_apps in\n  if has_antivirus then\n    List.push_back os (e \"windows_antivirus\" [] []);\n\n  List.push_back os (e \"root\" [] [PCData inspect.i_root]);\n  let mps = ref [] in\n  List.iter (\n    fun (fs, dev) ->\n      List.push_back mps (e \"mountpoint\" [ \"dev\", dev ] [PCData fs])\n  ) inspect.i_mountpoints;\n  List.push_back os (e \"mountpoints\" [] !mps);\n\n  let fses = ref [] in\n  List.iter (\n    fun { fs_dev; fs_type; fs_version; fs_label; fs_uuid } ->\n      let fs = ref [] in\n      (match fs_type, fs_version with\n       | None, _ -> ()\n       | Some typ, None -> List.push_back fs (e \"type\" [] [PCData typ])\n       | Some typ, Some ver ->\n          List.push_back fs (e \"type\" [ \"version\", ver] [PCData typ])\n      );\n      (match fs_label with\n       | None -> ()\n       | Some label -> List.push_back fs (e \"label\" [] [PCData label])\n      );\n      (match fs_uuid with\n       | None -> ()\n       | Some uuid -> List.push_back fs (e \"uuid\" [] [PCData uuid])\n      );\n      List.push_back fses (e \"filesystem\" [ \"dev\", fs_dev] !fs)\n  ) inspect.i_filesystems;\n  List.push_back os (e \"filesystems\" [] !fses);\n\n  List.push_back body (e \"operatingsystem\" [] !os);\n\n  (* Construct the final document. *)\n  (doc \"v2v-inspection\" [] !body : DOM.doc)\n"
  },
  {
    "path": "inspector/create_inspector_xml.mli",
    "content": "(* virt-v2v-in-place\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nval create_inspector_xml : NBD_URI.t list -> Types.inspect ->\n                           Types.target_meta ->\n                           DOM.doc\n(** Create the XML output of virt-v2v-inspector which contains the\n    post-conversion metadata ([-O] option). *)\n"
  },
  {
    "path": "inspector/dummy.c",
    "content": "/* Dummy source, to be used for OCaml-based tools with no C sources. */\nenum { foo = 1 };\n"
  },
  {
    "path": "inspector/inspector.ml",
    "content": "(* virt-v2v-inspector\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\nopen Common_gettext.Gettext\nopen Getopt.OptionName\n\nopen Types\nopen Utils\nopen Create_inspector_xml\n\n(* Matches --mac command line parameters. *)\nlet mac_re = PCRE.compile \"^([[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}):(network|bridge|ip):(.*)$\"\nlet mac_ip_re = PCRE.compile \"^([[:xdigit:]]|:|\\\\.)+$\"\n\nlet rec main () =\n  let set_string_option_once optname optref arg =\n    match !optref with\n    | Some _ ->\n       error (f_\"%s option used more than once on the command line\") optname\n    | None ->\n       optref := Some arg\n  in\n\n  let output_file = ref None in\n  let set_output_file_option filename =\n    if filename = \"-\" then output_file := None\n    else output_file := Some filename\n  in\n\n  let input_conn = ref None in\n  let input_format = ref None in\n  let input_password = ref None in\n  let input_transport = ref None in\n  let input_options = ref [] in\n  let io_query = ref false in\n  let set_input_option_compat k v =\n    List.push_back input_options (k, v)\n  in\n  let set_input_option option =\n    if option = \"?\" then io_query := true\n    else (\n      let k, v = String.split \"=\" option in\n      set_input_option_compat k v\n    )\n  in\n\n  let memsize = ref None in\n  let set_memsize arg = memsize := Some arg in\n  let smp = ref None in\n  let set_smp arg = smp := Some arg in\n\n  let no_fstrim = ref false in\n\n  let network_map = Networks.create () in\n  let static_ips = ref [] in\n  let rec add_network str =\n    match String.split \":\" str with\n    | \"\", \"\" ->\n       error (f_\"invalid -n/--network parameter\")\n    | out, \"\" | \"\", out ->\n       Networks.add_default_network network_map out\n    | in_, out ->\n       Networks.add_network network_map in_ out\n  and add_bridge str =\n    match String.split \":\" str with\n    | \"\", \"\" ->\n       error (f_\"invalid -b/--bridge parameter\")\n    | out, \"\" | \"\", out ->\n       Networks.add_default_bridge network_map out\n    | in_, out ->\n       Networks.add_bridge network_map in_ out\n  and add_mac str =\n    if not (PCRE.matches mac_re str) then\n      error (f_\"cannot parse --mac \\\"%s\\\" parameter\") str;\n    let mac = PCRE.sub 1 and out = PCRE.sub 3 in\n    match PCRE.sub 2 with\n    | \"network\" ->\n       Networks.add_mac network_map mac Network out\n    | \"bridge\" ->\n       Networks.add_mac network_map mac Bridge out\n    | \"ip\" ->\n       (match String.nsplit \",\" out with\n        | [] -> error (f_\"invalid --mac ip option\")\n        | [ip] -> add_static_ip mac ip \"\" \"\" []\n        | [ip; gw] -> add_static_ip mac ip gw \"\" []\n        | ip :: gw :: len :: nameservers ->\n           add_static_ip mac ip gw len nameservers\n       )\n    | _ -> assert false\n  and add_static_ip if_mac_addr if_ip_address if_default_gateway\n                    if_prefix_length_str if_nameservers =\n    (* Check the IP addresses and prefix length are sensible.  This\n     * is only a very simple test that they are sane, since IP addresses\n     * come in too many valid forms to check thoroughly.\n     *)\n    let rec error_unless_ip_addr what addr =\n      if not (PCRE.matches mac_ip_re addr) then\n        error (f_\"cannot parse --mac ip %s: doesn’t look like “%s” \\\n                  is an IP address\") what addr\n    in\n    error_unless_ip_addr \"ipaddr\" if_ip_address;\n    let if_default_gateway =\n      match if_default_gateway with \"\" -> None | gw -> Some gw in\n    Option.iter (error_unless_ip_addr \"gw\") if_default_gateway;\n    List.iter (error_unless_ip_addr \"nameserver\") if_nameservers;\n    let if_prefix_length =\n      match if_prefix_length_str with\n      | \"\" -> None\n      | len ->\n         let len =\n           try int_of_string len with\n           | Failure _ -> error (f_\"cannot parse --mac ip prefix \\\n                                    length field as an integer: %s\") len in\n         if len < 0 || len > 128 then\n           error (f_\"--mac ip prefix length field is out of range\");\n         Some len in\n    List.push_back static_ips\n      { if_mac_addr; if_ip_address; if_default_gateway;\n        if_prefix_length; if_nameservers }\n  in\n\n  let root_choice = ref default_root_choice in\n  let set_root_choice = Types.set_root_choice root_choice in\n\n  let input_modes =\n    Select_input.input_modes |>\n    List.map Select_input.string_of_input_mode |>\n    String.concat \"|\" in\n  let input_mode = ref None in\n  let set_input_mode mode =\n    if !input_mode <> None then\n      error (f_\"%s option used more than once on the command line\") \"-i\";\n    input_mode := Some (Select_input.input_mode_of_string mode)\n  in\n\n  let argspec = [\n    [ S 'b'; L\"bridge\" ], Getopt.String (\"in:out\", add_bridge),\n                                    s_\"Map bridge ‘in’ to ‘out’\";\n    [ S 'i' ],       Getopt.String (input_modes, set_input_mode),\n                                    s_\"Set input mode (default: libvirt)\";\n    [ M\"ic\" ],       Getopt.String (\"uri\", set_string_option_once \"-ic\" input_conn),\n                                    s_\"Libvirt URI\";\n    [ M\"if\" ],       Getopt.String (\"format\", set_string_option_once \"-if\" input_format),\n                                    s_\"Input format\";\n    [ M\"io\" ],       Getopt.String (\"option[=value]\", set_input_option),\n                                    s_\"Set option for input mode\";\n    [ M\"ip\" ],       Getopt.String (\"filename\", set_string_option_once \"-ip\" input_password),\n                                    s_\"Use password from file to connect to input hypervisor\";\n    [ M\"it\" ],       Getopt.String (\"transport\", set_string_option_once \"-it\" input_transport),\n                                    s_\"Input transport\";\n    [ L\"mac\" ],      Getopt.String (\"mac:network|bridge|ip:out\", add_mac),\n                                    s_\"Map NIC to network or bridge or assign static IP\";\n    [ S 'm'; L\"memsize\" ], Getopt.Int (\"mb\", set_memsize),\n                                    s_\"Set memory size\";\n    [ L\"no-fstrim\" ],  Getopt.Set no_fstrim,\n                                    s_\"Don't trim filesystems before conversion\";\n    [ S 'n'; L\"network\" ], Getopt.String (\"in:out\", add_network),\n                                    s_\"Map network ‘in’ to ‘out’\";\n    [ S 'O' ],       Getopt.String (\"output.xml\", set_output_file_option),\n                                    s_\"Set the output filename\";\n    [ L\"root\" ],     Getopt.String (\"ask|... \", set_root_choice),\n                                    s_\"How to choose root filesystem\";\n    [ L\"smp\" ],      Getopt.Int (\"vcpus\", set_smp),\n                                    s_\"Set number of vCPUs\";\n  ] in\n\n  (* Append virt-customize options. *)\n  let customize_argspec, get_customize_ops =\n    Customize_cmdline.argspec ~v2v:true () in\n  let customize_argspec =\n    List.map (fun (spec, _, _) -> spec) customize_argspec in\n  let argspec = argspec @ customize_argspec in\n\n  let args = ref [] in\n  let anon_fun s = List.push_front s args in\n  let usage_msg =\n    sprintf (f_\"\\\n%s: estimate disk space needed before virt-v2v conversion\n\nvirt-v2v-inspector -i disk disk.img [-O output.xml]\n\nA short summary of the options is given below.  For detailed help please\nread the man page virt-v2v-inspector(1).\n\")\n      prog in\n\n  let opthandle = create_standard_options argspec ~anon_fun ~key_opts:true\n                    ~machine_readable:true usage_msg in\n  Getopt.parse opthandle.getopt;\n\n  (* Print the version, easier than asking users to tell us. *)\n  debug \"info: %s: %s %s (%s)\"\n        prog Config.package_name Config.package_version_full\n        Config.host_cpu;\n\n  (* Print the libvirt version if debugging. *)\n  if verbose () then (\n    let major, minor, release = Libvirt_utils.libvirt_get_version () in\n    debug \"info: libvirt version: %d.%d.%d\" major minor release\n  );\n\n  (* Create the v2v directory to control conversion. *)\n  let v2vdir = create_v2v_directory () in\n\n  (* Dereference the arguments. *)\n  let args = List.rev !args in\n  let customize_ops = get_customize_ops () in\n  let output_file = !output_file in\n  let input_conn = !input_conn in\n  let input_mode = !input_mode in\n  let input_transport =\n    match !input_transport with\n    | None -> None\n    | Some \"ssh\" -> Some Input.SSH\n    | Some \"vddk\" -> Some Input.VDDK\n    | Some transport ->\n       error (f_\"unknown input transport ‘-it %s’\") transport in\n  let memsize = !memsize in\n  let no_fstrim = !no_fstrim in\n  let root_choice = !root_choice in\n  let smp = !smp in\n  let static_ips = !static_ips in\n\n  (* No arguments and machine-readable mode?  Print out some facts\n   * about what this binary supports.\n   *)\n  (match args, machine_readable () with\n   | [], Some { pr } ->\n      pr \"virt-v2v-inspector\\n\";\n      pr \"libguestfs-rewrite\\n\";\n      pr \"colours-option\\n\";\n      pr \"io\\n\";\n      pr \"mac-option\\n\";\n      pr \"mac-ip-option\\n\";\n      pr \"customize-ops\\n\";\n      Select_input.input_modes |>\n        List.map Select_input.string_of_input_mode |>\n        List.iter (pr \"input:%s\\n\");\n      pr \"convert:linux\\n\";\n      pr \"convert:windows\\n\";\n      List.iter (pr \"ovf:%s\\n\") Create_ovf.ovf_flavours;\n      exit 0\n   | _, _ -> ()\n  );\n\n  (* Select the input module. *)\n  let (module Input_module) =\n    Select_input.select_input input_mode input_conn input_transport in\n\n  let input_options = {\n    Input.bandwidth = None;\n    input_conn = input_conn;\n    input_format = !input_format;\n    input_options = !input_options;\n    input_password = !input_password;\n    input_transport = input_transport;\n    (* This must always be true so that we do not modify the\n     * source.  This is set to [false] by in-place mode.\n     *)\n    read_only = true;\n  } in\n\n  (* If -io ? then we want to query input options supported in this mode. *)\n  if !io_query then (\n    Input_module.query_input_options ();\n    exit 0\n  );\n\n  (* Get the conversion options. *)\n  let conv_options = {\n    Convert.block_driver = Virtio_blk;\n    keep_serial_console = true;\n    ks = opthandle.ks;\n    memsize;\n    network_map;\n    root_choice;\n    smp;\n    static_ips;\n    customize_ops;\n    no_fstrim;\n  } in\n\n  (* Before starting the input module, check there is sufficient\n   * free space in the temporary directory on the host.\n   *)\n  check_host_free_space ();\n\n  (* Start the input module (runs an NBD server in the background). *)\n  message (f_\"Setting up the source: %s\")\n    (Input_module.to_string input_options args);\n  let source, input_disks = Input_module.setup v2vdir input_options args in\n\n  (* Do the conversion. *)\n  with_open_out (v2vdir // \"convert\") (fun _ -> ());\n  let inspect, target_meta = Convert.convert input_disks conv_options source in\n  unlink (v2vdir // \"convert\");\n\n  (* Debug the v2vdir. *)\n  if verbose () then (\n    let cmd = sprintf \"ls -alZ %s 1>&2\" (quote v2vdir) in\n    ignore (Sys.command cmd)\n  );\n\n  (* Dump out the information. *)\n  let doc = create_inspector_xml input_disks inspect target_meta in\n  let chan =\n    match output_file with\n    | None -> Stdlib.stdout\n    | Some filename -> open_out filename in\n  DOM.doc_to_chan chan doc;\n  Stdlib.flush chan;\n\n  message (f_\"Finishing off\");\n  (* As the last thing, write a file indicating success before\n   * we exit (so before we kill the helpers).  The helpers may\n   * use the presence or absence of the file to determine if\n   * on-success or on-fail cleanup is required.\n   *)\n  with_open_out (v2vdir // \"done\") (fun _ -> ())\n\n(* Conversion can fail or hang if there is insufficient free space in\n * the large temporary directory.  Some input modules use large_tmpdir\n * to unpack OVAs or store qcow2 overlays and some output modules\n * use it to store temporary files.  In addition the  500 MB guestfs\n * appliance may be created there.  (RHBZ#1316479, RHBZ#2051394)\n *)\nand check_host_free_space () =\n  let free_space = StatVFS.free_space (StatVFS.statvfs large_tmpdir) in\n  debug \"check_host_free_space: large_tmpdir=%s free_space=%Ld\"\n        large_tmpdir free_space;\n  if free_space < 1_073_741_824L then\n    error (f_\"insufficient free space in the conversion server \\\n              temporary directory %s (%s).\\n\\nEither free up space \\\n              in that directory, or set the LIBGUESTFS_CACHEDIR \\\n              environment variable to point to another directory \\\n              with more than 1GB of free space.\\n\\nSee also the \\\n              virt-v2v(1) manual, section \\\n              \\\"Minimum free space check in the host\\\".\")\n      large_tmpdir (human_size free_space)\n\nlet () = run_main_and_handle_errors main\n"
  },
  {
    "path": "inspector/inspector.mli",
    "content": "(* virt-v2v-inspector\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(* virt-v2v-inspector main program.\n   Nothing is exported. *)\n"
  },
  {
    "path": "inspector/test-docs.sh",
    "content": "#!/bin/bash -\n# libguestfs\n# Copyright (C) 2016 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nsource ../tests/functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\n$srcdir/../podcheck.pl virt-v2v-inspector.pod virt-v2v-inspector \\\n  --path $srcdir/../common/options \\\n  --ignore=\\\n--ic,\\\n--if,\\\n--io,\\\n--ip,\\\n--it,\\\n$virt_customize_options\n"
  },
  {
    "path": "inspector/virt-v2v-inspector.pod",
    "content": "=head1 NAME\n\nvirt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\n\n=head1 SYNOPSIS\n\n virt-v2v-inspector [-i* options]\n                    [virt-customize options]\n                    guest\n                    [-O output.xml]\n\n=head1 DESCRIPTION\n\nVirt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be\nused before conversion to estimate the number of output disks and disk\nspace that will be required to complete the virt-v2v conversion.  The\ncommon use for this is to preallocate target disks on management\nsystems that need this (like Kubevirt).\n\nThis manual page only documents the estimation feature, not all of the\nI<-i*> options which are the same as virt-v2v.  You should read\nL<virt-v2v(1)> first.\n\n=head2 Selecting the input guest\n\nYou can run virt-v2v-inspector with the same I<-i*> options as\nvirt-v2v.  (Don't use any I<-o*> options).  This will select the guest\nthat you want to estimate.\n\nFor example to estimate the space required for a guest in a stored\nlocal disk called F<filename.img> you could do:\n\n virt-v2v-inspector -i disk filename.img\n\n=head2 Output\n\nThe output from this tool is an XML document.\n\n=over 4\n\n=item *\n\nFields which are annotated with an C<estimated='true'> attribute are\nestimated.  Virt-v2v cannot always know exactly the final size of some\nthings, such as the exact real size of the output disk, since there\nmight be small perturbations between runs.  Estimates are usually very\nclose to the final values.\n\n=item *\n\nNumbers representing sizes are always given in bytes.\n\n=item *\n\nBy default the output is written to stdout.  This is useful when using\nthe program interactively.  However if you want to use this tool from\nanother program it is better to send the output to a specific file\nusing I<-O output.xml>\n\n=back\n\n <?xml version='1.0' encoding='utf-8'?>\n <v2v-inspection>\n   <program>virt-v2v-inspector</program>\n   <package>virt-v2v</package>\n   <version>2.1.9</version>\n\nThe E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt>\nelements refer to the current version of virt-v2v-inspector and are\nuseful for debugging.  Make sure you use the same version of\nvirt-v2v-inspector and virt-v2v.\n\n   <disks>\n     <disk index='0'>\n       <virtual-size>6442450944</virtual-size>\n       <allocated estimated='true'>1400897536</allocated>\n     </disk>\n     <disk index='1'>\n       <virtual-size>6442450944</virtual-size>\n       <allocated estimated='true'>45131520</allocated>\n     </disk>\n   </disks>\n\nThe E<lt>disksE<gt> element lists information about each guest disk.\nThe example virtual machine above has two disks.\nE<lt>virtual-sizeE<gt> describes the size of the disk as seen from\ninside the guest, while E<lt>allocatedE<gt> is an estimate of how much\nstorage will be needed on the host after conversion.  This is assuming\nyou use S<I<-oa sparse>> - see the notes below.\n\n   <operatingsystem>\n     <name>linux</name>\n     <distro>fedora</distro>\n     <osinfo>fedora32</osinfo>\n     <arch>x86_64</arch>\n     [...]\n   </operatingsystem>\n\nThe E<lt>operatingsystemE<gt> element lists information about the\nguest operating system gleaned during conversion, in a manner similar\nto the L<virt-inspector(1)> tool from guestfs-tools.\n\n=head2 Output allocation mode and output format\n\nVirt-v2v supports selecting the output allocation mode (I<-oa> option)\nand output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is\ndifficult to predict the effect of these options on the actual space\noccupied by the final image this tool does not account for them.\n\nAs a rule of thumb:\n\n=over 4\n\n=item S<virt-v2v -oa preallocated>\n\ncauses the disk images on the target to consume their full virtual\nsize (excluding the effect of zero allocations will depends so much on\nthe underlying storage that it is often hard even for experts to\npredict).\n\n=item S<virt-v2v -of qcow2>\n\nuses the QCOW2 format where supported which means that the apparent\nsize of the file will be equal to its sparse size, but otherwise\nshould not affect estimates very much.\n\n=back\n\n=head1 OPTIONS\n\n=over 4\n\n=item B<--help>\n\nDisplay help.\n\n=item B<-O> F<output.xml>\n\nWrite the output to a file called F<output.xml>.\n\n=item B<-O ->\n\nWrite the output to stdout.  This is also the default if the I<-O>\noption is omitted.\n\n=item B<-v>\n\n=item B<--verbose>\n\nEnable verbose messages for debugging.\n\n=item B<-V>\n\n=item B<--version>\n\nDisplay version number and exit.\n\n=item B<-x>\n\nEnable tracing of libguestfs API calls.\n\n=item B<-i> ...\n\n=item B<-ic> ...\n\n=item B<-if> ...\n\n=item B<-io> ...\n\n=item B<-ip> ...\n\n=item B<-it> ...\n\nAll of the I<-i*> options supported by virt-v2v and also supported by\nvirt-v2v-inspector.\n\n=item B<-b> ...\n\n=item B<--bridge> ...\n\n=item B<--colors>\n\n=item B<--colours>\n\n=item B<--echo-keys>\n\n=item B<--key> ...\n\n=item B<--keys-from-stdin>\n\n=item B<--mac> ...\n\n=item B<--machine-readable>\n\n=item B<--machine-readable>=format\n\n=item B<-m> MB\n\n=item B<--memsize> MB\n\n=item B<-n> ...\n\n=item B<--network> ...\n\n=item B<--no-fstrim>\n\n=item B<-q>\n\n=item B<--quiet>\n\n=item B<--root> ...\n\n=item B<--smp> N\n\n=item B<--wrap>\n\nThese options work in the same way as the equivalent virt-v2v options.\n\n=back\n\n=head1 FILES\n\nFiles used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\n\n=head1 ENVIRONMENT VARIABLES\n\nEnvironment variables used are the same as for virt-v2v.  See\nL<virt-v2v(1)/ENVIRONMENT VARIABLES>.\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>,\nL<virt-p2v(1)>,\nL<virt-inspector(1)>,\nL<guestfs(3)>,\nL<guestfish(1)>,\nL<qemu-img(1)>,\nL<nbdkit(1)>,\nL<http://libguestfs.org/>.\n\n=head1 AUTHORS\n\nMatthew Booth\n\nCédric Bosdonnat\n\nLaszlo Ersek\n\nTomáš Golembiovský\n\nShahar Havivi\n\nRichard W.M. Jones\n\nRoman Kagan\n\nMike Latimer\n\nNir Soffer\n\nPino Toscano\n\nXiaodai Wang\n\nMing Xie\n\nTingting Zheng\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "installcheck.sh.in",
    "content": "#!/bin/bash\n# @configure_input@\n#\n# (C) Copyright 2015 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\n# Run 'make check' on installed packages.\n#\n# The version of installed libguestfs being tested, and the version of\n# the libguestfs source tree must be the same.\n\nunset CDPATH\nexport LANG=C\nset -e\nset -x\n\n# Grrrrrrr autoconf.\nprefix=@prefix@\nexec_prefix=@exec_prefix@\n\n# Remove all libtool crappage.\nfind -name 'lt-*' | grep '/.libs/lt-' | xargs -r rm\n\n# Copy the installed library into libtool directory.\nrm -f lib/.libs/libguestfs.so*\ncp @libdir@/libguestfs.so lib/.libs/\ncp @libdir@/libguestfs.so.0 lib/.libs/\ncp @libdir@/libguestfs.so.0.* lib/.libs/\n\n# Copy installed binaries into the right places.\ncp @bindir@/libguestfs-test-tool  test-tool/\ncp @bindir@/guestfish             fish/\ncp @bindir@/guestmount            fuse/\ncp @bindir@/virt-alignment-scan   align/\ncp @bindir@/virt-builder          builder/\ncp @bindir@/virt-builder-repository builder/\ncp @bindir@/virt-cat              cat/\ncp @bindir@/virt-copy-in          fish/\ncp @bindir@/virt-copy-out         fish/\ncp @bindir@/virt-customize        customize/\ncp @bindir@/virt-dib              dib/\ncp @bindir@/virt-diff             diff/\ncp @bindir@/virt-df               df/\ncp @bindir@/virt-edit             edit/\ncp @bindir@/virt-filesystems      cat/\ncp @bindir@/virt-format           format/\ncp @bindir@/virt-get-kernel       get-kernel/\ncp @bindir@/virt-inspector        inspector/\ncp @bindir@/virt-ls               cat/\ncp @bindir@/virt-make-fs          make-fs/\ncp @bindir@/virt-rescue           rescue/\ncp @bindir@/virt-resize           resize/\ncp @bindir@/virt-sparsify         sparsify/\ncp @bindir@/virt-sysprep          sysprep/\ncp @bindir@/virt-tar-in           fish/\ncp @bindir@/virt-tar-out          fish/\ncp @bindir@/virt-v2v              v2v/\ncp @bindir@/virt-win-reg          tools/\n\n# virt-list-filesystems, virt-list-partitions and virt-tar are not\n# tested, because they are not routinely installed by Linux distros\n# (being legacy programs).\n\n# XXX No language bindings are copied at the moment.\n\n# Copy the installed appliance.\nrm -rf appliance/supermin.d\ncp -r @libdir@/guestfs/supermin.d appliance/\n# Try to force the appliance not to get rebuilt:\ntouch appliance/stamp-supermin\nrm -rf \"tmp/.guestfs-$(id -u)\"\n\n# Run the tests.\nmake check -k\n\n# Check the library and some critical binaries didn't get rebuilt\n# during the 'make check', which would invalidate the results of\n# the test.\ncompare () {\n    sum1=`md5sum $1 | @AWK@ '{print $1}'`\n    sum2=`md5sum $2 | @AWK@ '{print $1}'`\n    if [ \"$sum1\" != \"$sum2\" ]; then\n        echo \"$2 was overwritten during the test.  Test results are invalid.\"\n        exit 1\n    fi\n}\ncompare @libdir@/libguestfs.so lib/.libs/libguestfs.so\ncompare @bindir@/guestfish  fish/guestfish\ncompare @bindir@/guestmount fuse/guestmount\ncompare @bindir@/virt-df    df/virt-df\ncompare @bindir@/virt-v2v   v2v/virt-v2v\ncompare @libdir@/guestfs/supermin.d/daemon.tar.gz \\\n                            appliance/supermin.d/daemon.tar.gz\n\n# Now do a make clean to remove all the above.\nmake clean >/dev/null 2>&1 ||:\n"
  },
  {
    "path": "lib/Makefile.am",
    "content": "# Library code used by virt-v2v and helpers.\n# Copyright (C) 2011-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nCONFIGURE_GENERATED_ML = \\\n\tconfig.ml\n\n# lib/guestfs-internal-all.h is a hack, remove it eventually XXX\nEXTRA_DIST = \\\n\tguestfs-internal-all.h \\\n\t$(SOURCES_MLI) \\\n\t$(SOURCES_ML) \\\n\t$(SOURCES_C) \\\n\t$(NULL)\n\nSOURCES_MLI = \\\n\tconfig.mli \\\n\tcreate_ovf.mli \\\n\tYAML.mli \\\n\tlibvirt_utils.mli \\\n\tnbdkit.mli \\\n\tNBD_URI.mli \\\n\tnetworks.mli \\\n\tqemuNBD.mli \\\n\ttypes.mli \\\n\tutils.mli \\\n\t$(NULL)\n\nSOURCES_ML = \\\n\ttypes.ml \\\n\tutils.ml \\\n\tNBD_URI.ml \\\n\tnbdkit.ml \\\n\tqemuNBD.ml \\\n\tnetworks.ml \\\n\tYAML.ml \\\n\tcreate_ovf.ml \\\n\tlibvirt_utils.ml \\\n\t$(NULL)\n\nSOURCES_C = dummy.c\n\n# We pretend that we're building a C library.  automake handles the\n# compilation of the C sources for us.  At the end we take the C\n# objects and OCaml objects and link them into the OCaml library.\n# This C library is never used.\n\nnoinst_LIBRARIES = libmlv2vlib.a\n\nif !HAVE_OCAMLOPT\nMLV2VLIB_CMA = mlv2vlib.cma\nelse\nMLV2VLIB_CMA = mlv2vlib.cmxa\nendif\n\nnoinst_DATA = $(MLV2VLIB_CMA)\n\nlibmlv2vlib_a_SOURCES = $(SOURCES_C)\nlibmlv2vlib_a_CPPFLAGS = \\\n\t-DCAML_NAME_SPACE \\\n\t-I. \\\n\t-I$(top_builddir) \\\n\t-I$(shell $(OCAMLC) -where) \\\n\t$(NULL)\nlibmlv2vlib_a_CFLAGS = \\\n\t$(WARN_CFLAGS) $(WERROR_CFLAGS) \\\n\t-fPIC \\\n\t$(NULL)\n\nBOBJECTS = config.cmo $(SOURCES_ML:.ml=.cmo)\nXOBJECTS = $(BOBJECTS:.cmo=.cmx)\n\nOCAMLPACKAGES = \\\n\t-package str,unix,libvirt,nbd \\\n\t-I $(builddir) \\\n\t-I $(top_builddir)/common/mlgettext \\\n\t-I $(top_builddir)/common/mlpcre \\\n\t-I $(top_builddir)/common/mlstdutils \\\n\t-I $(top_builddir)/common/mltools \\\n\t-I $(top_builddir)/common/mlutils \\\n\t-I $(top_builddir)/common/mlxml \\\n\t$(NULL)\nOCAMLPACKAGES_TESTS = $(MLV2VLIB_CMA)\nif HAVE_OCAML_PKG_GETTEXT\nOCAMLPACKAGES += -package gettext-stub\nendif\n\nOCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)'\n\nif !HAVE_OCAMLOPT\nOBJECTS = $(BOBJECTS)\nelse\nOBJECTS = $(XOBJECTS)\nendif\n\nlibmlv2vlib_a_DEPENDENCIES = $(OBJECTS)\n\n$(MLV2VLIB_CMA): $(OBJECTS) libmlv2vlib.a\n\t$(AM_V_GEN) $(OCAMLFIND) mklib $(OCAMLPACKAGES) \\\n\t    $(OBJECTS) $(libmlv2vlib_a_OBJECTS) -o mlv2vlib\n\n# OCaml dependencies.\n.depend: \\\n\t$(srcdir)/*.mli \\\n\t$(srcdir)/*.ml \\\n\t$(CONFIGURE_GENERATED_ML)\n\t$(top_builddir)/ocaml-dep.sh $^\n-include .depend\n\n.PHONY: docs\n"
  },
  {
    "path": "lib/NBD_URI.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Std_utils\n\nopen Printf\n\ntype t = Unix of string * string option\n\nlet to_uri (Unix (socket, export)) =\n  let export =\n    export |> Option.map Utils.uri_quote |> Option.value ~default:\"\" in\n  (* We assume here that the socket filename does not contain any\n   * characters that need escaping, which is a safe assumption\n   * for v2vdir and sockets in that directory.\n   *)\n  sprintf \"nbd+unix:///%s?socket=%s\" export socket\n"
  },
  {
    "path": "lib/NBD_URI.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Type for NBD URIs. *)\n\ntype t = Unix of string * string option\n(** nbd+unix:// + Unix domain socket path + optional export *)\n\nval to_uri : t -> string\n(** Convert the type into an NBD URI. *)\n"
  },
  {
    "path": "lib/YAML.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Printf\n\nlet spaces = String.spaces\n\ntype node =\n  | Assoc of (string * node) list\n  | List of node list\n  | String of string\n  | Int of int\n  | Bool of bool\n  | Float of float\n  | Block of string list\ntype doc = Doc of node\n\n(* It's extremely difficult to give a complete list of strings\n * that have to be quoted, versus strings that can be safely\n * used as barewords.  For example strings like \"Yes\", \"no\",\n * \"true\", \"123\", \"123.0\" cannot be written as barewords since\n * they will be misinterpreted as booleans, integers or floats.\n * (These rules also depend on the version of YAML!)\n *\n * See also YAML 1.2 section 2.4 \"Tags\".\n *\n * In the regular expressions we're just trying to match things\n * which might be misinterpreted so that we know when to quote strings.\n * It doesn't matter if we match too eagerly here.\n *)\nlet re_reserved = PCRE.compile \"^[\\\\[\\\\-\\\\]{}>|*&!%#'@,?:]\"\nlet re_numeric1 = PCRE.compile ~caseless:true \"^[-+.0-9exo]+$\"\nlet re_numeric2 = PCRE.compile ~caseless:true \"(inf|nan)$\"\nlet re_boolean = PCRE.compile ~caseless:true \"^(y|yes|n|no|true|false|on|off)$\"\n\nlet needs_quoting str =\n  String.length str = 0 ||\n  PCRE.matches re_reserved str ||\n  PCRE.matches re_numeric1 str ||\n  PCRE.matches re_numeric2 str ||\n  PCRE.matches re_boolean str ||\n  let n = String.length str in\n  let rec loop i =\n    if i >= n then false\n    else if String.unsafe_get str i <= ' ' then true\n    else loop (i+1)\n  in\n  loop 0\n\nlet rec node_to_buf buf indent = function\n  | Assoc xs -> assoc_to_buf buf indent xs\n  | List xs -> list_to_buf buf indent xs\n  | String str -> string_to_buf buf str\n  | Int i -> int_to_buf buf i\n  | Bool b -> bool_to_buf buf b\n  | Float f -> float_to_buf buf f\n  | Block lines -> block_to_buf buf indent lines\n\nand assoc_to_buf buf ?(nl = true) indent =\n  function\n  (* Special case empty dictionary: https://stackoverflow.com/a/33510095 *)\n  | [] -> bprintf buf \"{}\"\n  | xs ->\n    let nl = ref nl in\n    List.iter (\n      fun (key, value) ->\n        (* Print newline and indent, if nl is true. *)\n        if !nl then bprintf buf \"\\n%s\" (spaces indent);\n        nl := true;\n\n        (* If the key is \"#\" then it is printed as a comment. *)\n        if key = \"#\" then (\n          match value with\n          | String comment -> bprintf buf \"# %s\" comment\n          | _ -> assert false\n        )\n        else (\n          bprintf buf \"%s:\" key;\n          (* Do we need a space after the key?  This is basically\n           * about whether node_to_buf will print \\n, which breaks\n           * encapsulation of this function.  Make a best guess.\n           *)\n          (match value with\n           | String _ | Int _ | Bool _ | Float _ | Block _\n           | Assoc [] | List [] ->\n              bprintf buf \" \"\n           | _ -> ()\n          );\n          (* Within Assoc, Lists are not indented, everything else is. *)\n          let indent_by = function List _ -> 0 | _ -> 2 in\n          node_to_buf buf (indent + indent_by value) value\n        )\n    ) xs\n\nand list_to_buf buf indent =\n  function\n  (* Special case empty list, I think is required.  We could also special\n   * case other things, eg. lists of short, unquoted strings, but\n   * let's not overcomplicate things.\n   *)\n  | [] -> bprintf buf \"[]\"\n  | xs ->\n    List.iter (\n      fun node ->\n        bprintf buf \"\\n%s- \" (spaces indent);\n        (* If it's an assoc list, then don't print first newline. *)\n        match node with\n        | Assoc xs -> assoc_to_buf buf ~nl:false (indent+2) xs\n        | _ -> node_to_buf buf (indent+2) node\n    ) xs\n\n(* Strings are always printed on the same line. *)\nand string_to_buf buf str =\n  if not (needs_quoting str) then bprintf buf \"%s\" str\n  else c_quoted_string_to_buf buf str\n\nand c_quoted_string_to_buf buf str =\n  bprintf buf \"\\\"\";\n  for i = 0 to String.length str - 1 do\n    let c = String.unsafe_get str i in\n    if c = '\"' then bprintf buf \"\\\\\\\"\"\n    else if c < ' ' then bprintf buf \"\\\\x%02x\" (Char.code c)\n    else bprintf buf \"%c\" c\n  done;\n  bprintf buf \"\\\"\"\n\nand int_to_buf buf i = bprintf buf \"%d\" i\n\nand bool_to_buf buf b = bprintf buf \"%b\" b\n\nand float_to_buf buf f = bprintf buf \"%f\" f\n\n(* Blocks are printed using \"|\" + \"\\n\" followed by the indented lines\n * of text.  We implicitly assume that each line is followed by \\n\n * so we don't have to use a chomp mode, but this page is interesting\n * in case we need to in future: https://yaml-multiline.info/\n *)\nand block_to_buf buf indent lines =\n  (* If a line contains \\n within the line then that indicates\n   * a bug in virt-v2v.  Since this could be used to bypass\n   * indenting -- thus generating arbitrary YAML -- detect this\n   * situation and error out.  As far as I'm aware, no other\n   * character in blocks needs to be handled specially.\n   *)\n  List.iter (\n    fun line ->\n      if String.contains line '\\n' || String.contains line '\\r' then\n        error (f_\"YAML block contains newline character.  \\\n                  This should not happen, please report a bug against \\\n                  virt-v2v.\")\n  ) lines;\n\n  bprintf buf \"|\";\n  let indent = indent+2 in\n  List.iter (\n    fun line -> bprintf buf \"\\n%s%s\" (spaces indent) line\n  ) lines\n\nlet doc_to_buf buf (Doc node) =\n  bprintf buf \"---\";\n  node_to_buf buf 0 node;\n  bprintf buf \"\\n\"\n\nlet doc_to_string doc =\n  let buf = Buffer.create 4096 in\n  doc_to_buf buf doc;\n  Buffer.contents buf\n\nlet doc_to_chan chan doc =\n  let buf = Buffer.create 4096 in\n  doc_to_buf buf doc;\n  Buffer.output_buffer chan buf\n"
  },
  {
    "path": "lib/YAML.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Simple YAML generator.\n\n    This doesn't attempt to model all of YAML, only enough\n    to be able to generate Kubevirt machine descriptions.\n*)\n\ntype node =\n  | Assoc of (string * node) list  (* dictionary of key: value *)\n  | List of node list              (* list of - nodes *)\n  | String of string               (* simple string *)\n  | Int of int                     (* integer *)\n  | Bool of bool                   (* bool - NB. \"Norway problem\" *)\n  | Float of float                 (* float *)\n  | Block of string list           (* block of lines *)\ntype doc = Doc of node\n\nval doc_to_string : doc -> string\n(** Convert a document to a string representation. *)\n\nval doc_to_chan : out_channel -> doc -> unit\n(** Write the YAML document to an output channel. *)\n"
  },
  {
    "path": "lib/config.ml.in",
    "content": "(* virt-v2v\n * Copyright (C) 2019 Red Hat Inc.\n * @configure_input@\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n *)\n\nlet package_name = \"@PACKAGE_NAME@\"\nlet package_version = \"@PACKAGE_VERSION@\"\nlet package_version_full = \"@PACKAGE_VERSION_FULL@\"\nlet prefix = \"@prefix@\"\nlet datadir = prefix ^ \"/share\"\nlet host_cpu = \"@host_cpu@\"\nlet nbdkit = \"@NBDKIT@\"\nlet nbdcopy = \"@NBDCOPY@\"\nlet nbdinfo = \"@NBDINFO@\"\nlet enable_block_driver = \"@ENABLE_BLOCK_DRIVER@\" = \"yes\"\nlet enable_xen = \"@ENABLE_XEN@\" = \"yes\"\nlet enable_glance = \"@ENABLE_GLANCE@\" = \"yes\"\nlet enable_ovirt = \"@ENABLE_OVIRT@\" = \"yes\"\n"
  },
  {
    "path": "lib/config.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2019 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n *)\n\n(** {2 Standard [./configure] values} *)\n\nval package_name : string\n(** The configure value [@PACKAGE_NAME@] *)\n\nval package_version : string\n(** The configure value [@PACKAGE_VERSION@] *)\n\nval package_version_full : string\n(** The configure value [@PACKAGE_VERSION_FULL@] *)\n\nval prefix : string\n(** The configure value [@prefix@] *)\n\nval datadir : string\n(** The configure value [@datadir@] *)\n\nval host_cpu : string\n(** The configure value [@host_cpu@] *)\n\n(** {2 Virt-v2v [./configure] values} *)\n\nval nbdkit : string\n(** The location of the nbdkit program, from configure value [@NBDKIT@] *)\n\nval nbdcopy : string\n(** The location of the nbdcopy program, from configure value [@NBDCOPY@] *)\n\nval nbdinfo : string\n(** The location of the nbdinfo program, from configure value [@NBDINFO@] *)\n\n(** {2 [./configure --disable/--enable-*] options} *)\n\nval enable_block_driver : bool\n(** True if [--block-driver] option is enabled *)\n\nval enable_xen : bool\n(** True if Xen input is enabled *)\n\nval enable_glance : bool\n(** True if [-o glance] output mode is enabled *)\n\nval enable_ovirt : bool\n(** True if oVirt output modes are enabled *)\n"
  },
  {
    "path": "lib/create_ovf.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(* Create OVF and related files for oVirt. *)\n\nopen Unix\nopen Printf\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\nopen DOM\n\ntype ovf_flavour =\n  | OVirt\n  | OVirtExportStorageDomain\n\nlet ovf_flavours = [\"ovirt\"; \"ovirtexp\"]\n\nlet ovf_flavour_of_string = function\n  | \"ovirt\" -> OVirt\n  | \"ovirtexp\" -> OVirtExportStorageDomain\n  | flav -> invalid_arg flav\n\nlet ovf_flavour_to_string = function\n  | OVirt -> \"ovirt\"\n  | OVirtExportStorageDomain -> \"ovirtexp\"\n\n(* We set the creation time to be the same for all dates in\n * all metadata files.  All dates in OVF are UTC.\n *)\nlet time = time ()\nlet iso_time =\n  let tm = gmtime time in\n  sprintf \"%04d/%02d/%02d %02d:%02d:%02d\"\n    (tm.tm_year + 1900) (tm.tm_mon + 1) tm.tm_mday\n    tm.tm_hour tm.tm_min tm.tm_sec\n\n(* Guess vmtype based on the guest inspection data. *)\nlet get_vmtype = function\n  (* Special cases for RHEL 4. *)\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 4;\n      i_product_name = product }\n       when String.find product \"ES\" >= 0 ->\n     `Server\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 4;\n      i_product_name = product }\n       when String.find product \"AS\" >= 0 ->\n     `Server\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 4 } ->\n     `Desktop\n\n  (* For Windows (and maybe Linux in future, but it is not set now),\n   * use the i_product_variant field.\n   *)\n  | { i_product_variant = (\"Server\"|\"Server Core\"|\"Embedded\") } -> `Server\n  | { i_product_variant = \"Client\" } -> `Desktop\n\n  (* If the product name has \"Server\" or \"Desktop\" in it, use that. *)\n  | { i_product_name = product } when String.find product \"Server\" >= 0 ->\n     `Server\n\n  | { i_product_name = product } when String.find product \"Desktop\" >= 0 ->\n     `Desktop\n\n  (* Otherwise return server, a safe choice. *)\n  | _ -> `Server\n\n(* Determine the ovf:OperatingSystemSection_Type from libguestfs\n * inspection.  See ovirt-engine sources, file:\n *   packaging/conf/osinfo-defaults.properties\n * and also:\n *   https://bugzilla.redhat.com/show_bug.cgi?id=1219857#c9\n *)\nand get_ostype = function\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = v;\n      i_arch = \"i386\" } when v <= 6 ->\n    sprintf \"RHEL%d\" v\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = v;\n      i_arch = \"x86_64\" } when v <= 6 ->\n    sprintf \"RHEL%dx64\" v\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = v;\n      i_arch = \"x86_64\" } (* when v >= 7 *) ->\n    sprintf \"rhel_%dx64\" v\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 6;\n      i_minor_version = min; i_arch = (\"ppc64\"|\"ppc64le\") } when min >= 9 ->\n    \"rhel_6_9_plus_ppc64\"\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 6;\n      i_arch = (\"ppc64\"|\"ppc64le\") } ->\n    \"rhel_6_ppc64\"\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 7;\n      i_arch = \"ppc64\" | \"ppc64le\" } ->\n    \"rhel_7_ppc64\"\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 7;\n      i_arch = \"s390x\" } ->\n    \"rhel_7_s390x\"\n\n  | { i_type = \"linux\"; i_distro = \"sles\"; i_major_version = maj;\n      i_arch = \"x86_64\" } when maj >= 11 ->\n    \"sles_11\"\n\n  | { i_type = \"linux\"; i_distro = \"sles\"; i_major_version = maj;\n      i_arch = (\"ppc64\"|\"ppc64le\") } when maj >= 11 ->\n    \"sles_11_ppc64\"\n\n  | { i_type = \"linux\"; i_distro = \"sles\"; i_major_version = maj;\n      i_arch = \"s390x\" } when maj >= 12 ->\n    \"sles_12_s390x\"\n\n   (* Only Debian 7 is available, so use it for any 7+ version. *)\n  | { i_type = \"linux\"; i_distro = \"debian\"; i_major_version = v }\n      when v >= 7 ->\n    \"debian_7\"\n\n   (* Only Ubuntu 12.04 to 14.04 are available, so use them starting\n    * from 12.04, and 14.04 for anything after it.\n    *)\n  | { i_type = \"linux\"; i_distro = \"ubuntu\"; i_major_version = v;\n      i_arch = \"ppc64\" | \"ppc64le\" } when v >= 14 ->\n    \"ubuntu_14_04_ppc64\"\n\n  | { i_type = \"linux\"; i_distro = \"ubuntu\"; i_major_version = maj;\n      i_arch = \"s390x\" } when maj >= 16 ->\n    \"ubuntu_16_04_s390x\"\n\n  | { i_type = \"linux\"; i_distro = \"ubuntu\"; i_major_version = v }\n      when v >= 14 ->\n    \"ubuntu_14_04\"\n\n  | { i_type = \"linux\"; i_distro = \"ubuntu\"; i_major_version = maj;\n      i_minor_version = min } when maj >= 12 ->\n    sprintf \"ubuntu_%d_%02d\" maj min\n\n  | { i_type = \"linux\"; i_arch = (\"ppc64\"|\"ppc64le\") } ->\n    \"other_linux_ppc64\"\n\n  | { i_type = \"linux\"; i_arch = \"s390x\" } ->\n    \"other_linux_s390x\"\n\n  | { i_type = \"linux\" } -> \"OtherLinux\"\n\n  | { i_type = \"windows\"; i_major_version = 5; i_minor_version = 1 } ->\n    \"WindowsXP\" (* no architecture differentiation of XP on oVirt *)\n\n  | { i_type = \"windows\"; i_major_version = 5; i_minor_version = 2;\n      i_product_name = product } when String.find product \"XP\" >= 0 ->\n    \"WindowsXP\" (* no architecture differentiation of XP on oVirt *)\n\n  | { i_type = \"windows\"; i_major_version = 5; i_minor_version = 2;\n      i_arch = \"i386\" } ->\n    \"Windows2003\"\n\n  | { i_type = \"windows\"; i_major_version = 5; i_minor_version = 2;\n      i_arch = \"x86_64\" } ->\n    \"Windows2003x64\"\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 0;\n      i_arch = \"i386\" } ->\n    \"Windows2008\"\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 0;\n      i_arch = \"x86_64\" } ->\n    \"Windows2008x64\"\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 1;\n      i_arch = \"i386\" } ->\n    \"Windows7\"\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 1;\n      i_arch = \"x86_64\"; i_product_variant = \"Client\" } ->\n    \"Windows7x64\"\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 1;\n      i_arch = \"x86_64\" } ->\n    \"Windows2008R2x64\"\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 2;\n      i_arch = \"i386\" } ->\n    \"windows_8\"\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 2;\n      i_arch = \"x86_64\"; i_product_variant = \"Client\" } ->\n    \"windows_8x64\"\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 2;\n      i_arch = \"x86_64\" } ->\n    \"windows_2012x64\"\n\n   (* Treat Windows 8.1 client like Windows 8.  See:\n    * https://bugzilla.redhat.com/show_bug.cgi?id=1309580#c4\n    *)\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 3;\n      i_arch = \"i386\"; i_product_variant = \"Client\" } ->\n    \"windows_8\"\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 3;\n      i_arch = \"x86_64\"; i_product_variant = \"Client\" } ->\n    \"windows_8x64\"\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 3;\n      i_arch = \"x86_64\" } ->\n    \"windows_2012R2x64\"\n\n  | { i_type = \"windows\"; i_major_version = 10; i_minor_version = 0;\n      i_arch = \"i386\" } ->\n    \"windows_10\"\n\n  (* For Windows NT 10.0 always use the <osinfo> field since the\n   * other fields will not accurately reflect the version.\n   *)\n  | { i_type = \"windows\"; i_major_version = 10; i_minor_version = 0;\n      i_arch = \"x86_64\"; i_osinfo = osinfo; i_product_name = product } ->\n     (match osinfo with\n      | \"win10\" -> \"windows_10x64\"\n      | \"win11\" -> \"windows_11\"\n      | \"win2k16\" -> \"windows_2016x64\"\n      | \"win2k19\" -> \"windows_2019x64\"\n      | \"win2k22\" -> \"windows_2022\"\n      | \"win2k25\" -> \"windows_2025\"\n      | _ ->\n         warning (f_\"unknown Windows 10 variant: %s (%s)\")\n           osinfo product;\n         \"windows_2025\"\n     )\n\n  | { i_type = typ; i_distro = distro;\n      i_major_version = major; i_minor_version = minor; i_arch = arch;\n      i_product_name = product } ->\n    warning (f_\"unknown guest operating system: %s %s %d.%d %s (%s)\")\n      typ distro major minor arch product;\n    \"Unassigned\"\n\n(* Determine the ovirt:id attribute from libguestfs inspection.\n * See ovirt-engine sources, file:\n *   packaging/conf/osinfo-defaults.properties\n * and also:\n *   https://bugzilla.redhat.com/show_bug.cgi?id=1219857#c9\n *)\nand get_ovirt_osid = function\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 4;\n      i_arch = \"i386\" } ->\n    8\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 4;\n      i_arch = \"x86_64\" } ->\n    14\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 5;\n      i_arch = \"i386\" } ->\n    7\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 5;\n      i_arch = \"x86_64\" } ->\n    13\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 6;\n      i_arch = \"i386\" } ->\n    18\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 6;\n      i_arch = \"x86_64\" } ->\n    19\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 6;\n      i_minor_version = min; i_arch = (\"ppc64\"|\"ppc64le\") } when min >= 9 ->\n    1007\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 6;\n      i_arch = (\"ppc64\"|\"ppc64le\") } ->\n    1003\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 7;\n      i_arch = \"x86_64\" } ->\n    24\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 7;\n      i_arch = (\"ppc64\"|\"ppc64le\") } ->\n    1006\n\n  | { i_type = \"linux\"; i_distro = (\"rhel\"|\"centos\"); i_major_version = 7;\n      i_arch = \"s390x\" } ->\n    2003\n\n  | { i_type = \"linux\"; i_distro = \"sles\"; i_major_version = maj;\n      i_arch = \"x86_64\" } when maj >= 11 ->\n    1193\n\n  | { i_type = \"linux\"; i_distro = \"sles\"; i_major_version = maj;\n      i_arch = (\"ppc64\"|\"ppc64le\") } when maj >= 11 ->\n    1004\n\n  | { i_type = \"linux\"; i_distro = \"sles\"; i_major_version = maj;\n      i_arch = \"s390x\" } when maj >= 12 ->\n    2004\n\n   (* Only Debian 7 is available, so use it for any 7+ version. *)\n  | { i_type = \"linux\"; i_distro = \"debian\"; i_major_version = v }\n      when v >= 7 ->\n    1300\n\n   (* Only Ubuntu 12.04 to 14.04 are available, so use them starting\n    * from 12.04, and 14.04 for anything after it.\n    *)\n  | { i_type = \"linux\"; i_distro = \"ubuntu\"; i_major_version = v;\n      i_arch = (\"ppc64\"|\"ppc64le\") } when v >= 14 ->\n    1005\n\n  | { i_type = \"linux\"; i_distro = \"ubuntu\"; i_major_version = v;\n      i_arch = \"s390x\" } when v >= 16 ->\n    2005\n\n  | { i_type = \"linux\"; i_distro = \"ubuntu\"; i_major_version = v }\n      when v >= 14 ->\n    1256\n\n  | { i_type = \"linux\"; i_distro = \"ubuntu\"; i_major_version = 12;\n      i_minor_version = 4 } ->\n    1252\n\n  | { i_type = \"linux\"; i_distro = \"ubuntu\"; i_major_version = 12;\n      i_minor_version = 10 } ->\n    1253\n\n  | { i_type = \"linux\"; i_distro = \"ubuntu\"; i_major_version = 13;\n      i_minor_version = 4 } ->\n    1254\n\n  | { i_type = \"linux\"; i_distro = \"ubuntu\"; i_major_version = 13;\n      i_minor_version = 10 } ->\n    1255\n\n  | { i_type = \"linux\"; i_arch = (\"ppc64\"|\"ppc64le\") } ->\n    1002\n\n  | { i_type = \"linux\"; i_arch = \"s390x\" } ->\n    2002\n\n  | { i_type = \"linux\" } ->\n    5\n\n  | { i_type = \"windows\"; i_major_version = 5; i_minor_version = 1 } ->\n    1 (* no architecture differentiation of XP on oVirt *)\n\n  | { i_type = \"windows\"; i_major_version = 5; i_minor_version = 2;\n      i_product_name = product } when String.find product \"XP\" >= 0 ->\n    1 (* no architecture differentiation of XP on oVirt *)\n\n  | { i_type = \"windows\"; i_major_version = 5; i_minor_version = 2;\n      i_arch = \"i386\" } ->\n    3\n\n  | { i_type = \"windows\"; i_major_version = 5; i_minor_version = 2;\n      i_arch = \"x86_64\" } ->\n    10\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 0;\n      i_arch = \"i386\" } ->\n    4\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 0;\n      i_arch = \"x86_64\" } ->\n    16\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 1;\n      i_arch = \"i386\" } ->\n    11\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 1;\n      i_arch = \"x86_64\"; i_product_variant = \"Client\" } ->\n    12\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 1;\n      i_arch = \"x86_64\" } ->\n    17\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 2;\n      i_arch = \"i386\" } ->\n    20\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 2;\n      i_arch = \"x86_64\"; i_product_variant = \"Client\" } ->\n    21\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 2;\n      i_arch = \"x86_64\" } ->\n    23\n\n   (* Treat Windows 8.1 client like Windows 8.  See:\n    * https://bugzilla.redhat.com/show_bug.cgi?id=1309580#c4\n    *)\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 3;\n      i_arch = \"i386\"; i_product_variant = \"Client\" } ->\n    20\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 3;\n      i_arch = \"x86_64\"; i_product_variant = \"Client\" } ->\n    21\n\n  | { i_type = \"windows\"; i_major_version = 6; i_minor_version = 3;\n      i_arch = \"x86_64\" } ->\n    25\n\n  | { i_type = \"windows\"; i_major_version = 10; i_minor_version = 0;\n      i_arch = \"i386\" } ->\n    26\n\n  (* For Windows NT 10.0 always use the <osinfo> field since the\n   * other fields will not accurately reflect the version.\n   *)\n  | { i_type = \"windows\"; i_major_version = 10; i_minor_version = 0;\n      i_arch = \"x86_64\"; i_osinfo = osinfo; i_product_name = product } ->\n     (match osinfo with\n      | \"win10\" -> (* windows_10x64 *) 27\n      | \"win11\" -> (* windows_11 *) 36\n      | \"win2k16\" -> (* windows_2016x64 *) 29\n      | \"win2k19\" -> (* windows_2019x64 *) 31\n      | \"win2k22\" -> (* windows_2022 *) 37\n      (*| \"win2k25\" -> (* windows_2025 *) not yet known - 2024/10 *)\n      | _ ->\n         warning (f_\"unknown Windows 10 variant: %s (%s)\")\n           osinfo product;\n         (* windows_2022 *) 37\n     )\n\n  | { i_type = typ; i_distro = distro;\n      i_major_version = major; i_minor_version = minor; i_arch = arch;\n      i_product_name = product } ->\n    warning (f_\"unknown guest operating system: %s %s %d.%d %s (%s)\")\n      typ distro major minor arch product;\n    0\n\n(* Set the <Origin/> element based on the source hypervisor.\n * https://bugzilla.redhat.com/show_bug.cgi?id=1342398#c6\n * https://gerrit.ovirt.org/#/c/59147/\n * ovirt-engine.git: backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/OriginType.java\n *)\nlet origin_of_source_hypervisor = function\n  | VMware -> Some 1\n  | Xen -> Some 2\n  | QEmu | KVM -> Some 7\n  | Physical -> Some 8\n  | HyperV -> Some 9\n\n  (* Anything else is mapped to None, which causes the <Origin/>\n   * element to be omitted from the OVF output, which causes oVirt\n   * to select 0 as the source (which happens to display as \"RHEV\"\n   * in the UI).\n   *)\n  | _ -> None\n\n(* Set the <BiosType> element.\n * The internal numbers are:\n * https://github.com/oVirt/ovirt-engine/blob/master/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/BiosType.java#L10\n * BUT the values in <BiosType> are adjusted by adding 1:\n * https://www.redhat.com/archives/libguestfs/2020-December/msg00005.html\n * So the actual mapping in the OVF is:\n * 0 => i440fx + SeaBIOS\n * 1 => Q35 + SeaBIOS\n * 2 => Q35 + UEFI\n * 3 => Q35 + UEFI + SecureBoot\n * All non-x86 arches should use 0\n *)\nlet get_ovirt_biostype arch machine firmware =\n  if arch <> \"x86_64\" then\n    Some 0\n  else\n    match machine, firmware with\n    | I440FX, TargetBIOS -> Some 0 (* i440fx + SeaBIOS *)\n    | Q35, TargetBIOS -> Some 1    (* q35 + SeaBIOS *)\n    | Q35, TargetUEFI -> Some 2    (* q35 + UEFI *)\n    | _ -> None                    (* who knows!  try cluster default *)\n\n(* Generate the .meta file associated with each volume. *)\nlet create_meta_files output_alloc output_format sd_uuid image_uuids sizes =\n  (* Note: Upper case in the .meta, mixed case in the OVF. *)\n  let output_alloc_for_ovirt =\n    match output_alloc with\n    | Sparse -> \"SPARSE\"\n    | Preallocated -> \"PREALLOCATED\" in\n\n  let format_for_ovirt =\n    match output_format with\n    | \"raw\" -> \"RAW\"\n    | \"qcow2\" -> \"COW\"\n    | _ ->\n       error (f_\"oVirt does not support the output format ‘%s’, \\\n                 only raw or qcow2\") output_format in\n\n  List.mapi (\n    fun i (virtual_size, image_uuid) ->\n      let size_in_sectors =\n        if virtual_size &^ 511L <> 0L then\n          error (f_\"the virtual size of the input disk %d is not an \\\n                    exact multiple of 512 bytes.  The virtual size is: \\\n                    %Ld.\\n\\nThis probably means something unexpected is \\\n                    going on, so please file a bug about this issue.\")\n            i virtual_size;\n        virtual_size /^ 512L in\n\n      let buf = Buffer.create 256 in\n      let bpf fs = bprintf buf fs in\n      bpf \"DOMAIN=%s\\n\" sd_uuid; (* \"Domain\" as in Storage Domain *)\n      bpf \"VOLTYPE=LEAF\\n\";\n      bpf \"CTIME=%.0f\\n\" time;\n      bpf \"MTIME=%.0f\\n\" time;\n      bpf \"IMAGE=%s\\n\" image_uuid;\n      bpf \"DISKTYPE=2\\n\";\n      bpf \"PUUID=00000000-0000-0000-0000-000000000000\\n\";\n      bpf \"LEGALITY=LEGAL\\n\";\n      bpf \"POOL_UUID=\\n\";\n      bpf \"SIZE=%Ld\\n\" size_in_sectors;\n      bpf \"FORMAT=%s\\n\" format_for_ovirt;\n      bpf \"TYPE=%s\\n\" output_alloc_for_ovirt;\n      bpf \"DESCRIPTION=%s\\n\" (String.replace generated_by \"=\" \"_\");\n      bpf \"EOF\\n\";\n      Buffer.contents buf\n  ) (List.combine sizes image_uuids)\n\n(* Create the OVF file. *)\nlet rec create_ovf source inspect\n          { guestcaps; target_nics; target_firmware; target_boot_device }\n          sizes\n          output_alloc output_format\n          output_name\n          sd_uuid image_uuids vol_uuids\n          ?(need_actual_sizes = false) output_disks\n          vm_uuid ovf_flavour =\n  assert (List.length sizes = List.length vol_uuids);\n\n  let memsize_mb = source.s_memory /^ 1024L /^ 1024L in\n\n  let vmtype = get_vmtype inspect in\n  let vmtype = match vmtype with `Desktop -> \"0\" | `Server -> \"1\" in\n  let ostype = get_ostype inspect in\n  let biostype =\n    get_ovirt_biostype guestcaps.gcaps_arch guestcaps.gcaps_machine\n                       target_firmware in\n\n  let ovf : doc =\n    doc \"ovf:Envelope\" [\n      \"xmlns:rasd\", \"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData\";\n      \"xmlns:vssd\", \"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData\";\n      \"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\";\n      \"xmlns:ovf\", \"http://schemas.dmtf.org/ovf/envelope/1/\";\n      \"xmlns:ovirt\", \"http://www.ovirt.org/ovf\";\n      \"ovf:version\", \"0.9\"\n    ] [\n      Comment generated_by;\n      e \"References\" [] [];\n      (match ovf_flavour with\n      | OVirt ->\n        e \"NetworkSection\" [] [\n          e \"Info\" [] [PCData \"List of networks\"]\n        ]\n      | OVirtExportStorageDomain ->\n        e \"Section\" [\"xsi:type\", \"ovf:NetworkSection_Type\"] [\n          e \"Info\" [] [PCData \"List of networks\"]\n        ]\n      );\n      (match ovf_flavour with\n      | OVirt ->\n        e \"DiskSection\" [] [\n          e \"Info\" [] [PCData \"List of Virtual Disks\"]\n        ]\n      | OVirtExportStorageDomain ->\n        e \"Section\" [\"xsi:type\", \"ovf:DiskSection_Type\"] [\n          e \"Info\" [] [PCData \"List of Virtual Disks\"]\n        ]\n      );\n\n      let content_subnodes = ref [\n        e \"Name\" [] [PCData output_name];\n        e \"TemplateId\" [] [PCData \"00000000-0000-0000-0000-000000000000\"];\n        e \"TemplateName\" [] [PCData \"Blank\"];\n        e \"Description\" [] [PCData generated_by];\n        e \"Domain\" [] [];\n        e \"CreationDate\" [] [PCData iso_time];\n        e \"IsInitilized\" (* sic *) [] [PCData \"True\"];\n        e \"IsAutoSuspend\" [] [PCData \"False\"];\n        e \"TimeZone\" [] [];\n        e \"IsStateless\" [] [PCData \"False\"];\n        e \"VmType\" [] [PCData vmtype];\n        (* See https://bugzilla.redhat.com/show_bug.cgi?id=1961107#c39 *)\n        e \"DefaultDisplayType\" [] [PCData \"2\"];\n      ] in\n\n      (match biostype with\n       | None ->\n          (* omitting <BiosType> means use the cluster default *)\n          ()\n       | Some biostype ->\n          List.push_back content_subnodes\n                         (e \"BiosType\" [] [PCData (string_of_int biostype)])\n      );\n\n      (match source.s_cpu_model with\n        | None -> ()\n        | Some model ->\n           List.push_back content_subnodes (e \"CustomCpuName\" [] [PCData model])\n      );\n\n      (* Add the <Origin/> element if we can. *)\n      (match origin_of_source_hypervisor source.s_hypervisor with\n       | None -> ()\n       | Some origin ->\n          List.push_back content_subnodes\n                    (e \"Origin\" [] [PCData (string_of_int origin)])\n      );\n\n      List.push_back content_subnodes (\n        let osinfo_subnodes = [\n          e \"Info\" [] [PCData inspect.i_product_name];\n          e \"Description\" [] [PCData ostype];\n        ] in\n        (match ovf_flavour with\n        | OVirt ->\n          let ovirt_osid = get_ovirt_osid inspect in\n          e \"OperatingSystemSection\" [\"ovf:id\", vm_uuid;\n                                      \"ovf:required\", \"false\";\n                                      \"ovirt:id\", string_of_int ovirt_osid]\n            osinfo_subnodes\n        | OVirtExportStorageDomain ->\n          e \"Section\" [\"ovf:id\", vm_uuid; \"ovf:required\", \"false\";\n                       \"xsi:type\", \"ovf:OperatingSystemSection_Type\"]\n            osinfo_subnodes\n        )\n      );\n\n      let virtual_hardware_section_items = ref [\n        e \"Info\" [] [PCData (sprintf \"%d CPU, %Ld Memory\"\n                                     source.s_vcpu memsize_mb)]\n      ] in\n\n      List.push_back virtual_hardware_section_items (\n        e \"Item\" [] ([\n          e \"rasd:Caption\" [] [PCData (sprintf \"%d virtual cpu\" source.s_vcpu)];\n          e \"rasd:Description\" [] [PCData \"Number of virtual CPU\"];\n          e \"rasd:InstanceId\" [] [PCData \"1\"];\n          e \"rasd:ResourceType\" [] [PCData \"3\"]\n        ] @\n          (match source.s_cpu_topology with\n          | None ->\n            [ e \"rasd:num_of_sockets\" [] [PCData \"1\"];\n              e \"rasd:cpu_per_socket\"[] [PCData (string_of_int source.s_vcpu)] ]\n          | Some { s_cpu_sockets = sockets; s_cpu_cores = cores;\n                   s_cpu_threads = threads } ->\n            [ e \"rasd:num_of_sockets\" [] [PCData (string_of_int sockets)];\n              e \"rasd:cpu_per_socket\"[] [PCData (string_of_int cores)];\n              e \"rasd:threads_per_cpu\"[] [PCData (string_of_int threads)] ]\n          )\n        )\n      );\n\n      List.push_back_list virtual_hardware_section_items [\n        e \"Item\" [] [\n          e \"rasd:Caption\" [] [PCData (sprintf \"%Ld MB of memory\" memsize_mb)];\n          e \"rasd:Description\" [] [PCData \"Memory Size\"];\n          e \"rasd:InstanceId\" [] [PCData \"2\"];\n          e \"rasd:ResourceType\" [] [PCData \"4\"];\n          e \"rasd:AllocationUnits\" [] [PCData \"MegaBytes\"];\n          e \"rasd:VirtualQuantity\" [] [PCData (Int64.to_string memsize_mb)];\n        ];\n\n        e \"Item\" [] [\n          e \"rasd:Caption\" [] [PCData \"USB Controller\"];\n          e \"rasd:InstanceId\" [] [PCData \"3\"];\n          e \"rasd:ResourceType\" [] [PCData \"23\"];\n          e \"rasd:UsbPolicy\" [] [PCData \"Disabled\"];\n        ];\n\n        (* We always add a standard VGA-compatible video controller when\n         * outputting to oVirt. See RHBZ#1213701 and RHBZ#1211231 for the\n         * reasoning behind that. The device model used to be QXL previously,\n         * but only the unaccelerated standard VGA framebuffer is needed; so\n         * the (simpler) standard VGA device itself suffices. Refer to\n         * RHBZ#1961107.\n         *)\n        let monitor_resourcetype =\n          match ovf_flavour with\n          | OVirt -> 32768 (* RHBZ#1598715, RHBZ#1534644 *)\n          | OVirtExportStorageDomain -> 20 in\n        e \"Item\" [] [\n          e \"rasd:Caption\" [] [PCData \"Graphical Controller\"];\n          e \"rasd:InstanceId\" [] [PCData (uuidgen ())];\n          e \"rasd:ResourceType\" []\n            [PCData (string_of_int monitor_resourcetype)];\n          e \"Type\" [] [PCData \"video\"];\n          e \"rasd:VirtualQuantity\" [] [PCData \"1\"];\n          e \"Device\" [] [PCData \"vga\"];\n        ]\n      ];\n\n      (* Add the miscellaneous KVM devices. *)\n      if guestcaps.gcaps_virtio_rng then\n        List.push_back virtual_hardware_section_items (\n          e \"Item\" [] [\n            e \"rasd:Caption\" [] [PCData \"RNG Device\"];\n            e \"rasd:InstanceId\" [] [PCData (uuidgen ())];\n            e \"rasd:ResourceType\" [] [PCData \"0\"];\n            e \"Type\" [] [PCData \"rng\"];\n            e \"Device\" [] [PCData \"virtio\"];\n            e \"SpecParams\" [] [\n              e \"source\" [] [PCData \"urandom\"]\n            ]\n          ]\n        );\n      if guestcaps.gcaps_virtio_balloon then\n        List.push_back virtual_hardware_section_items (\n          e \"Item\" [] [\n            e \"rasd:Caption\" [] [PCData \"Memory Ballooning Device\"];\n            e \"rasd:InstanceId\" [] [PCData (uuidgen ())];\n            e \"rasd:ResourceType\" [] [PCData \"0\"];\n            e \"Type\" [] [PCData \"balloon\"];\n            e \"Device\" [] [PCData \"memballoon\"];\n            e \"SpecParams\" [] [\n              e \"model\" [] [PCData \"virtio\"]\n            ]\n          ]\n        );\n\n      List.push_back content_subnodes (\n        match ovf_flavour with\n        | OVirt ->\n          e \"VirtualHardwareSection\" [] !virtual_hardware_section_items\n        | OVirtExportStorageDomain ->\n          e \"Section\" [\"xsi:type\", \"ovf:VirtualHardwareSection_Type\"]\n            !virtual_hardware_section_items\n      );\n\n      (match ovf_flavour with\n      | OVirt ->\n        e \"VirtualSystem\" [\"ovf:id\", vm_uuid] !content_subnodes\n      | OVirtExportStorageDomain ->\n        e \"Content\" [\"ovf:id\", \"out\"; \"xsi:type\", \"ovf:VirtualSystem_Type\"]\n          !content_subnodes\n      )\n    ] in\n\n  (* Add disks to the OVF XML. *)\n  add_disks sizes guestcaps target_boot_device output_alloc output_format\n    sd_uuid image_uuids vol_uuids need_actual_sizes output_disks\n    ovf_flavour ovf;\n\n  (* Old virt-v2v ignored removable media. XXX *)\n\n  (* Add networks to the OVF XML. *)\n  add_networks target_nics guestcaps ovf_flavour ovf;\n\n  (* Add sound card to the OVF XML. *)\n  add_sound_card source.s_sound ovf_flavour ovf;\n\n  (* Old virt-v2v didn't really look at the video and display\n   * metadata, instead just adding a single standard display (see\n   * above).  However it did warn if there was a password on the\n   * display of the old guest.\n   *)\n  (match source with\n  | { s_display = Some { s_password = Some _ } } ->\n    warning (f_\"This guest required a password for connection to its display, \\\n                but this is not supported by oVirt.  Therefore the converted \\\n                guest’s display will not require a separate password \\\n                to connect.\");\n    | _ -> ());\n\n  if verbose () then (\n    eprintf \"OVF:\\n\";\n    doc_to_chan Stdlib.stderr ovf\n  );\n\n  (* Return the OVF document. *)\n  ovf\n\n(* Find appropriate section depending on the OVF flavour being generated.\n *\n * For example normal disk section is in node <DiskSection> whereas in case of\n * OVirt export storage domain it is <Section xsi:type=\"ovf:DiskSection_Type\">.\n *)\nand get_flavoured_section ovf ovirt_path esd_path esd_path_attr = function\n  | OVirt ->\n     let nodes = path_to_nodes ovf ovirt_path in\n     (match nodes with\n      | [node] -> node\n      | [] | _::_::_ -> assert false)\n  | OVirtExportStorageDomain ->\n     let nodes = path_to_nodes ovf esd_path in\n     try find_node_by_attr nodes esd_path_attr\n     with Not_found -> assert false\n\n(* This modifies the OVF DOM, adding a section for each disk. *)\nand add_disks sizes guestcaps target_boot_device output_alloc output_format\n    sd_uuid image_uuids vol_uuids need_actual_sizes output_disks\n    ovf_flavour ovf =\n  let references =\n    let nodes = path_to_nodes ovf [\"ovf:Envelope\"; \"References\"] in\n    match nodes with\n    | [] | _::_::_ -> assert false\n    | [node] -> node in\n  let disk_section =\n    get_flavoured_section ovf\n                          [\"ovf:Envelope\"; \"DiskSection\"]\n                          [\"ovf:Envelope\"; \"Section\"]\n                          (\"xsi:type\", \"ovf:DiskSection_Type\")\n                          ovf_flavour in\n  let virtualhardware_section =\n    get_flavoured_section ovf\n                          [\"ovf:Envelope\"; \"VirtualSystem\";\n                               \"VirtualHardwareSection\"]\n                          [\"ovf:Envelope\"; \"Content\"; \"Section\"]\n                          (\"xsi:type\", \"ovf:VirtualHardwareSection_Type\")\n                          ovf_flavour in\n\n  (* Iterate over the disks, adding them to the OVF document. *)\n  List.iteri (\n    fun i (size, image_uuid, vol_uuid, output_uri) ->\n      let is_bootable_drive, boot_order =\n        match target_boot_device with\n        | None -> i = 0, i+1\n        | Some disk_index when disk_index = i -> true, 1\n        | Some _ -> false, i+2 in\n\n      let fileref =\n        match ovf_flavour with\n        | OVirt ->\n          vol_uuid\n        | OVirtExportStorageDomain ->\n          sprintf \"%s/%s\" image_uuid vol_uuid in\n\n      (* ovf:size and ovf:actual_size fields are integer GBs.  If you\n       * use floating point numbers then oVirt will fail to parse them.\n       * In case the size is just below a gigabyte boundary, round up.\n       *)\n      let bytes_to_gb b =\n        let b = roundup64 b 1073741824L in\n        b /^ 1073741824L\n      in\n      let size_gb = bytes_to_gb size in\n      let actual_size =\n        if need_actual_sizes then\n          get_disk_allocated (NBD_URI.to_uri output_uri)\n        else\n          None\n      in\n\n      let format_for_ovirt =\n        match output_format with\n        | \"raw\" -> \"RAW\"\n        | \"qcow2\" -> \"COW\"\n        | _ ->\n          error (f_\"oVirt does not support the output format ‘%s’, \\\n                    only raw or qcow2\") output_format in\n\n      (* Note: Upper case in the .meta, mixed case in the OVF. *)\n      let output_alloc_for_ovirt =\n        match output_alloc with\n        | Sparse -> \"Sparse\"\n        | Preallocated -> \"Preallocated\" in\n\n      (* Add disk to <References/> node. *)\n      let disk =\n        let attrs = ref [\n          \"ovf:href\", fileref;\n          \"ovf:id\", vol_uuid;\n          \"ovf:description\", generated_by;\n        ] in\n        (match actual_size with\n         | None -> ()\n         | Some actual_size ->\n            List.push_back attrs (\"ovf:size\", Int64.to_string actual_size)\n        );\n        e \"File\" !attrs [] in\n      append_child disk references;\n\n      (* Add disk to DiskSection. *)\n      let disk =\n        let attrs = ref [\n          \"ovf:diskId\",\n          (match ovf_flavour with\n          | OVirt -> image_uuid\n          | OVirtExportStorageDomain -> vol_uuid);\n          \"ovf:size\", Int64.to_string size_gb;\n          \"ovf:capacity\", Int64.to_string size;\n          \"ovf:fileRef\", fileref;\n          \"ovf:parentRef\", \"\";\n          \"ovf:vm_snapshot_id\", uuidgen ();\n          \"ovf:volume-format\", format_for_ovirt;\n          \"ovf:volume-type\", output_alloc_for_ovirt;\n          \"ovf:format\", \"http://en.wikipedia.org/wiki/Byte\"; (* wtf? *)\n          \"ovf:disk-interface\",\n          (match guestcaps.gcaps_block_bus with\n          | Virtio_blk -> \"VirtIO\"\n          | Virtio_SCSI -> \"VirtIO_SCSI\"\n          | IDE -> \"IDE\");\n          \"ovf:disk-type\", \"System\"; (* RHBZ#744538 *)\n          \"ovf:boot\", if is_bootable_drive then \"True\" else \"False\";\n        ] in\n        if need_actual_sizes then\n          (* Ovirt-engine considers the \"ovf:actual_size\" attribute mandatory.\n           * If we don't know the actual size, we must create the attribute\n           * with empty contents.\n           *)\n          List.push_back attrs\n            (\"ovf:actual_size\",\n             match actual_size with\n              | None -> \"\"\n              | Some actual_size -> Int64.to_string (bytes_to_gb actual_size)\n            );\n        e \"Disk\" !attrs [] in\n      append_child disk disk_section;\n\n      (* Add disk to VirtualHardware. *)\n      let item =\n        (* This text MUST begin with the string \"Drive \" or the file\n         * will not parse.\n         *)\n        let caption = sprintf \"Drive %d\" (i+1) in\n        let item_subnodes = ref [\n          e \"rasd:Caption\" [] [PCData caption];\n          e \"rasd:InstanceId\" [] [PCData vol_uuid];\n          e \"rasd:ResourceType\" [] [PCData \"17\"];\n          e \"Type\" [] [PCData \"disk\"];\n          e \"rasd:HostResource\" [] [PCData fileref];\n          e \"rasd:Parent\" [] [PCData \"00000000-0000-0000-0000-000000000000\"];\n          e \"rasd:Template\" [] [PCData \"00000000-0000-0000-0000-000000000000\"];\n          e \"rasd:ApplicationList\" [] [];\n          e \"rasd:StorageId\" [] [PCData sd_uuid];\n          e \"rasd:StoragePoolId\" [] [PCData \"00000000-0000-0000-0000-000000000000\"];\n          e \"rasd:CreationDate\" [] [PCData iso_time];\n          e \"rasd:LastModified\" [] [PCData iso_time];\n          e \"rasd:last_modified_date\" [] [PCData iso_time];\n        ] in\n        if is_bootable_drive then\n          List.push_back item_subnodes\n                    (e \"BootOrder\" [] [PCData (string_of_int boot_order)]);\n\n        e \"Item\" [] !item_subnodes in\n      append_child item virtualhardware_section;\n  ) (List.combine4 sizes image_uuids vol_uuids output_disks)\n\n(* This modifies the OVF DOM, adding a section for each NIC. *)\nand add_networks nics guestcaps ovf_flavour ovf =\n  let network_section =\n    get_flavoured_section ovf\n                          [\"ovf:Envelope\"; \"NetworkSection\"]\n                          [\"ovf:Envelope\"; \"Section\"]\n                          (\"xsi:type\", \"ovf:NetworkSection_Type\")\n                          ovf_flavour in\n  let virtualhardware_section =\n    get_flavoured_section ovf\n                          [\"ovf:Envelope\"; \"VirtualSystem\";\n                               \"VirtualHardwareSection\"]\n                          [\"ovf:Envelope\"; \"Content\"; \"Section\"]\n                          (\"xsi:type\", \"ovf:VirtualHardwareSection_Type\")\n                          ovf_flavour in\n\n  (* Iterate over the NICs, adding them to the OVF document. *)\n  List.iteri (\n    fun i { s_mac = mac; s_vnet_type = vnet_type; s_vnet = vnet } ->\n      let dev = sprintf \"eth%d\" i in\n\n      let model =\n        match guestcaps.gcaps_net_bus with\n        | RTL8139 -> \"1\"\n        | E1000 -> \"2\"\n        | Virtio_net -> \"3\"\n      (*| bus ->\n        warning (f_\"unknown NIC model %s for ethernet device %s.  This NIC will be imported as rtl8139 instead.\")\n        bus dev;\n        \"1\" *) in\n\n      let network = e \"Network\" [\"ovf:name\", vnet] [] in\n      append_child network network_section;\n\n      let item =\n        let item_subnodes = ref [\n          e \"rasd:InstanceId\" [] [PCData (uuidgen ())];\n          e \"rasd:Caption\" [] [PCData (sprintf \"Ethernet adapter on %s\" vnet)];\n          e \"rasd:ResourceType\" [] [PCData \"10\"];\n          e \"rasd:ResourceSubType\" [] [PCData model];\n          e \"Type\" [] [PCData \"interface\"];\n          e \"rasd:Connection\" [] [PCData vnet];\n          e \"rasd:Name\" [] [PCData dev];\n        ] in\n        (match mac with\n         | None -> ()\n         | Some mac ->\n            List.push_back item_subnodes\n                      (e \"rasd:MACAddress\" [] [PCData mac])\n        );\n        e \"Item\" [] !item_subnodes in\n      append_child item virtualhardware_section;\n  ) nics\n\n(* This modifies the OVF DOM, adding a sound card, if oVirt can emulate it. *)\nand add_sound_card sound ovf_flavour ovf =\n  let device =\n    match sound with\n    | None -> None\n    | Some { s_sound_model = AC97 } -> Some \"ac97\"\n    | Some { s_sound_model = ICH6 } -> Some \"ich6\"\n    | Some { s_sound_model = model } ->\n       warning (f_\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from the output.\")\n               (string_of_source_sound_model model);\n       None in\n\n  match device with\n  | Some device ->\n     let virtualhardware_section =\n       get_flavoured_section ovf\n                             [\"ovf:Envelope\"; \"VirtualSystem\";\n                                  \"VirtualHardwareSection\"]\n                             [\"ovf:Envelope\"; \"Content\"; \"Section\"]\n                             (\"xsi:type\", \"ovf:VirtualHardwareSection_Type\")\n                             ovf_flavour in\n\n     let item =\n       e \"Item\" [] [\n         e \"rasd:InstanceId\" [] [PCData (uuidgen ())];\n         e \"rasd:ResourceType\" [] [PCData \"0\"];\n         e \"Type\" [] [PCData \"sound\"];\n         e \"Device\" [] [PCData device];\n       ] in\n     append_child item virtualhardware_section\n\n  | None -> ()\n"
  },
  {
    "path": "lib/create_ovf.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Functions for creating OVF files, used in OVirt output modes. *)\n\ntype ovf_flavour =\n  | OVirt\n  | OVirtExportStorageDomain\n\n(** The string representation of available OVF flavours. *)\nval ovf_flavours : string list\n\n(** Convert from a string to the corresponding OVF flavour.\n\n    Throw [Invalid_argument] if the string does not match any\n    valid flavour. *)\nval ovf_flavour_of_string : string -> ovf_flavour\n\n(** Convert an OVF flavour to its string representation. *)\nval ovf_flavour_to_string : ovf_flavour -> string\n\n(** Create OVF and related files for oVirt.\n\n    The format for oVirt export storage domain is described in:\n    http://resources.ovirt.org/old-site-files/Ovirt_ovf_format.odt\n\n    The format understood by oVirt has no known documentation.\n\n    OVF isn't a real standard, so it's likely that if we ever had to\n    create OVF for another target management system then we would need\n    to heavily modify or even duplicate this code. *)\n\nval create_ovf : Types.source -> Types.inspect ->\n                 Types.target_meta -> int64 list ->\n                 Types.output_allocation -> string -> string ->\n                 string -> string list ->\n                 string list ->\n                 ?need_actual_sizes:bool -> NBD_URI.t list ->\n                 string ->\n                 ovf_flavour -> DOM.doc\n(** Create the OVF file.\n\n    Actually a {!DOM} document is created, not a file.  It can be written\n    to the desired output location using {!DOM.doc_to_chan}. *)\n\nval create_meta_files : Types.output_allocation -> string -> string -> string list -> int64 list -> string list\n(** Create the .meta file associated with each target.\n\n    Note this does not write them, since output_ovirt has to do a\n    permissions dance when writing files.  Instead the contents of each\n    file is returned (one per target), and they must be written to\n    [target_file ^ \".meta\"]. *)\n\n(**/**)\n\n(* For use by v2v_unit_tests only. *)\nval get_ostype : Types.inspect -> string\n"
  },
  {
    "path": "lib/dummy.c",
    "content": "/* Dummy source, to be used for OCaml-based tools with no C sources. */\nenum { foo = 1 };\n"
  },
  {
    "path": "lib/guestfs-internal-all.h",
    "content": "/* libguestfs\n * Copyright (C) 2013-2025 Red Hat Inc.\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n */\n\n/**\n * This header contains definitions which are shared by all parts of\n * libguestfs, ie. the daemon, the library, language bindings and virt\n * tools (ie. I<all> C code).\n *\n * If you need a definition used by only the library, put it in\n * F<lib/guestfs-internal.h> instead.\n *\n * If a definition is used by only a single tool, it should not be in\n * any shared header file at all.\n */\n\n#ifndef GUESTFS_INTERNAL_ALL_H_\n#define GUESTFS_INTERNAL_ALL_H_\n\n#include <string.h>\n\n/* This is also defined in <guestfs.h>, so don't redefine it. */\n#if defined(__GNUC__) && !defined(GUESTFS_GCC_VERSION)\n# define GUESTFS_GCC_VERSION \\\n    (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)\n#endif\n\n#if !defined(__attribute__) && defined(__GNUC__) && GUESTFS_GCC_VERSION < 20800 /* gcc < 2.8 */\n# define __attribute__(x) /* empty */\n#endif\n\n#ifndef ATTRIBUTE_UNUSED\n# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))\n#endif\n\n#define STREQ(a,b) (strcmp((a),(b)) == 0)\n#define STRCASEEQ(a,b) (strcasecmp((a),(b)) == 0)\n#define STRNEQ(a,b) (strcmp((a),(b)) != 0)\n#define STRCASENEQ(a,b) (strcasecmp((a),(b)) != 0)\n#define STREQLEN(a,b,n) (strncmp((a),(b),(n)) == 0)\n#define STRCASEEQLEN(a,b,n) (strncasecmp((a),(b),(n)) == 0)\n#define STRNEQLEN(a,b,n) (strncmp((a),(b),(n)) != 0)\n#define STRCASENEQLEN(a,b,n) (strncasecmp((a),(b),(n)) != 0)\n#define STRPREFIX(a,b) (strncmp((a),(b),strlen((b))) == 0)\n#define STRCASEPREFIX(a,b) (strncasecmp((a),(b),strlen((b))) == 0)\n#define STRSUFFIX(a,b) (strlen((a)) >= strlen((b)) && STREQ((a)+strlen((a))-strlen((b)),(b)))\n\n/* A simple (indeed, simplistic) way to build up short lists of\n * arguments.  Your code must define MAX_ARGS to a suitable \"larger\n * than could ever be needed\" value.  (If the value is exceeded then\n * your code will abort).  For more complex needs, use something else\n * more suitable.\n */\n#define ADD_ARG(argv,i,v)                                               \\\n  do {                                                                  \\\n    if ((i) >= MAX_ARGS) {                                              \\\n      fprintf (stderr, \"%s: %d: internal error: exceeded MAX_ARGS (%zu) when constructing the command line\\n\", __FILE__, __LINE__, (size_t) MAX_ARGS); \\\n      abort ();                                                         \\\n    }                                                                   \\\n    (argv)[(i)++] = (v);                                                \\\n  } while (0)\n\n#ifndef SOCK_CLOEXEC\n#define SOCK_CLOEXEC 0\n#endif\n\n#ifndef MAX\n#define MAX(a,b) ((a)>(b)?(a):(b))\n#endif\n\n#ifndef MIN\n#define MIN(a,b) ((a)<(b)?(a):(b))\n#endif\n\n#ifdef __APPLE__\n#define xdr_uint32_t xdr_u_int32_t\n#endif\n\n/* Return true iff the buffer is all zero bytes.\n *\n * The clever approach here was suggested by Eric Blake.  See:\n * https://www.redhat.com/archives/libguestfs/2017-April/msg00171.html\n */\nstatic inline int\nis_zero (const char *buffer, size_t size)\n{\n  size_t i;\n  const size_t limit = MIN (size, 16);\n\n  for (i = 0; i < limit; ++i)\n    if (buffer[i])\n      return 0;\n  if (size != limit)\n    return !memcmp (buffer, buffer + 16, size - 16);\n\n  return 1;\n}\n\n/* Macro which compiles the regexp once when the program/library is\n * loaded, and frees it when the library is unloaded.\n */\n#define COMPILE_REGEXP(name,pattern,options)                            \\\n  static void compile_regexp_##name (void) __attribute__((constructor)); \\\n  static void free_regexp_##name (void) __attribute__((destructor));    \\\n  static pcre2_code *name;                                              \\\n                                                                        \\\n  static void                                                           \\\n  compile_regexp_##name (void)                                          \\\n  {                                                                     \\\n    int errnum;                                                         \\\n    PCRE2_SIZE offset;                                                  \\\n    name = pcre2_compile ((PCRE2_SPTR)(pattern),                        \\\n                          PCRE2_ZERO_TERMINATED,                        \\\n                          (options), &errnum, &offset, NULL);           \\\n    if (name == NULL) {                                                 \\\n      PCRE2_UCHAR err[256];                                             \\\n      pcre2_get_error_message (errnum, err, sizeof err);                \\\n      ignore_value (write (2, err, strlen ((char *)err)));              \\\n      abort ();                                                         \\\n    }                                                                   \\\n  }                                                                     \\\n                                                                        \\\n  static void                                                           \\\n  free_regexp_##name (void)                                             \\\n  {                                                                     \\\n    pcre2_code_free (name);                                             \\\n  }\n\n/* The type field of a parsed mountable.\n *\n * This is used both by mountable_t in the daemon, and\n * struct guestfs_int_mountable_internal in the library.\n */\n\ntypedef enum {\n  MOUNTABLE_DEVICE,     /* A bare device */\n  MOUNTABLE_BTRFSVOL,   /* A btrfs subvolume: device + volume */\n  MOUNTABLE_PATH        /* An already mounted path: device = path */\n} mountable_type_t;\n\n#endif /* GUESTFS_INTERNAL_ALL_H_ */\n"
  },
  {
    "path": "lib/libvirt_utils.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\n(* This module provides helper methods on top of the Libvirt\n    module. *)\n\nlet auth_for_password_file ?password_file () =\n  let password = Option.map read_first_line_from_file password_file in\n  let auth_fn creds =\n    List.map (\n      function\n      | { Libvirt.Connect.typ = Libvirt.Connect.CredentialPassphrase } ->\n         password\n      | _ -> None\n    ) creds\n  in\n\n  let base_auth = Libvirt.Connect.get_auth_default () in\n\n  if password_file = None then\n    base_auth\n  else\n    { base_auth with\n      cb = auth_fn;\n    }\n\nlet get_domain conn name =\n  let dom =\n    try\n      Libvirt.Domain.lookup_by_uuid_string conn name\n    with\n    (* No such domain. *)\n    | Libvirt.Virterror { code = VIR_ERR_NO_DOMAIN }\n    (* Invalid UUID string. *)\n    | Libvirt.Virterror { code = VIR_ERR_INVALID_ARG; domain = VIR_FROM_DOMAIN } ->\n      (try\n        Libvirt.Domain.lookup_by_name conn name\n      with\n        Libvirt.Virterror { code = VIR_ERR_NO_DOMAIN; message } ->\n          error (f_\"cannot find libvirt domain ‘%s’: %s\")\n            name (Option.value ~default:\"\" message)\n      ) in\n\n  (* As a side-effect we check that the domain is shut down (RHBZ#1138586).\n   * In earlier versions of virt-v2v this was a hard error.  Now it's\n   * a warning, since we can't easily tell if the user is converting\n   * from a snapshot - which is safe (RHEL-88543).\n   *)\n  let uri = Libvirt.Connect.get_uri conn in\n  if not (String.starts_with \"test:\" uri) then (\n    (match (Libvirt.Domain.get_info dom).Libvirt.Domain.state with\n     | InfoRunning | InfoBlocked | InfoPaused ->\n        warning (f_\"libvirt domain ‘%s’ is running or paused.  Converting \\\n                    a live guest will result in corrupted output. \\\n                    However this is safe if you're converting from a \\\n                    snapshot\")\n          (Libvirt.Domain.get_name dom)\n     | InfoNoState | InfoShutdown | InfoShutoff | InfoCrashed\n     | InfoPMSuspended ->\n        ()\n    )\n  );\n\n  dom\n\nlet get_pool conn name =\n  try\n    Libvirt.Pool.lookup_by_uuid_string conn name\n  with\n  (* No such pool. *)\n  | Libvirt.Virterror { code = VIR_ERR_NO_STORAGE_POOL }\n  (* Invalid UUID string. *)\n  | Libvirt.Virterror { code = VIR_ERR_INVALID_ARG; domain = VIR_FROM_STORAGE } ->\n    (try\n      Libvirt.Pool.lookup_by_name conn name\n    with Libvirt.Virterror { code = VIR_ERR_NO_STORAGE_POOL; message } ->\n      error (f_\"cannot find libvirt pool ‘%s’: %s\\n\\nUse \\\n                ‘virsh pool-list --all’ to list all available pools, \\\n                and ‘virsh pool-dumpxml <pool>’ to display details \\\n                about a particular pool.\\n\\nTo set the pool which \\\n                virt-v2v uses, add the ‘-os <pool>’ option.\")\n        name (Option.value ~default:\"\" message)\n    )\n\nlet get_volume pool name =\n  try\n    Libvirt.Volume.lookup_by_name pool name\n  with\n  (* No such volume. *)\n  | Libvirt.Virterror { code = VIR_ERR_NO_STORAGE_VOL; message } ->\n    error (f_\"cannot find libvirt volume ‘%s’: %s\")\n      name (Option.value ~default:\"\" message)\n\nlet domain_exists conn dom =\n  try\n    ignore (Libvirt.Domain.lookup_by_name conn dom);\n    true\n  with\n    Libvirt.Virterror { code = VIR_ERR_NO_DOMAIN } -> false\n\nlet libvirt_get_version () =\n  let v, _ = Libvirt.get_version () in\n  let v_major = v / 1000000 in\n  let v_minor = (v / 1000) mod 1000 in\n  let v_micro = v mod 1000 in\n  (v_major, v_minor, v_micro)\n"
  },
  {
    "path": "lib/libvirt_utils.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** This module provides helper methods on top of the [Libvirt]\n    module. *)\n\nval auth_for_password_file : ?password_file:string -> unit -> Libvirt.Connect.auth\n(** [auth_for_password_file ?password_file ()] returns a\n    {!Libvirt.Connect.auth} record to use when opening a new libvirt\n    connection with {!Libvirt.Connect.connect_auth} or\n    {!Libvirt.Connect.connect_auth_readonly}.  The record will\n    authenticate using the password specified in the first line of\n    [?password_file], if specified. *)\n\nval get_domain : Libvirt.rw Libvirt.Connect.t -> string -> Libvirt.rw Libvirt.Domain.t\n(** [get_domain conn dom] returns the libvirt domain with the\n    specified [dom] name or UUID.  [conn] is the libvirt\n    connection. *)\n\nval get_pool : Libvirt.rw Libvirt.Connect.t -> string -> Libvirt.rw Libvirt.Pool.t\n(** [get_pool conn pool] returns the libvirt pool with the\n    specified [pool] name or UUID.  [conn] is the libvirt\n    connection. *)\n\nval get_volume : Libvirt.rw Libvirt.Pool.t -> string -> Libvirt.rw Libvirt.Volume.t\n(** [get_volume pool vol] returns the libvirt volume with the\n    specified [vol] name or UUID, as part of the pool [pool]. *)\n\nval domain_exists : Libvirt.rw Libvirt.Connect.t -> string -> bool\n(** [domain_exists conn dom] returns a boolean indicating if the\n    the libvirt XML domain [dom] exists.  [conn] is the libvirt\n    connection.\n    [dom] may be a guest name, but not a UUID. *)\n\nval libvirt_get_version : unit -> int * int * int\n(** [libvirt_get_version] returns the triple [(major, minor, release)]\n    version number of the libvirt library that we are linked against. *)\n"
  },
  {
    "path": "lib/nbdkit.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Unix\nopen Printf\n\nopen Common_gettext.Gettext\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\n\nopen Utils\n\nlet is_installed =\n  let cmd = sprintf \"%s --version >/dev/null 2>&1\" Config.nbdkit in\n  let test = lazy (Sys.command cmd = 0) in\n  fun () -> Lazy.force test\n\ntype config = (string * string) list\n\nlet config =\n  let output =\n    lazy (\n      let cmd = sprintf \"%s --dump-config\" Config.nbdkit in\n      let lines = external_command cmd in\n      List.map (String.split \"=\") lines\n    ) in\n  fun () -> Lazy.force output\n\ntype version = int * int * int\n\nlet rex = PCRE.compile \"^(\\\\d+)\\\\.(\\\\d+)\\\\.(\\\\d+)\"\nlet version =\n  let v =\n    lazy (\n      let config = config () in\n      let version =\n        try List.assoc \"version\" config\n        with Not_found -> failwith \"nbdkit: no version in --dump-config\" in\n      if not (PCRE.matches rex version) then\n        error (f_\"nbdkit: unexpected version in --dump-config: %s\") version;\n      let major = int_of_string (PCRE.sub 1)\n      and minor = int_of_string (PCRE.sub 2)\n      and release = int_of_string (PCRE.sub 3) in\n      if verbose () then (\n        eprintf \"info: nbdkit version:\\n%!\";\n        ignore (Sys.command (sprintf \"%s --version >&2\" Config.nbdkit));\n        eprintf \"parsed version: %d.%d.%d\\n%!\" major minor release\n      );\n      (major, minor, release)\n    ) in\n  fun () -> Lazy.force v\n\nlet probe_server_parameter name =\n  let list_options =\n    if String.length name = 2 &&\n         name.[0] = '-' &&\n         name.[1] <> '-' then\n      \"--short-options\"\n    else\n      \"--long-options\" in\n  let regex = sprintf \"^%s$\" name in\n  let cmd = sprintf \"nbdkit %s | grep -sq %s\" list_options (quote regex) in\n  Sys.command cmd = 0\n\nlet probe_plugin name =\n  let cmd = sprintf \"%s %s --version >/dev/null 2>&1\" Config.nbdkit (quote name) in\n  Sys.command cmd = 0\n\nlet probe_plugin_parameter name regex =\n  let cmd = sprintf \"%s %s --help | grep -sq %s\"\n              Config.nbdkit (quote name) (quote regex) in\n  Sys.command cmd = 0\n\nlet probe_filter name =\n  let cmd = sprintf \"%s null --filter=%s --version >/dev/null 2>&1\"\n              Config.nbdkit (quote name) in\n  Sys.command cmd = 0\n\nlet probe_filter_parameter name regex =\n  let cmd = sprintf \"%s null --filter=%s --help | grep -sq %s\"\n              Config.nbdkit (quote name) (quote regex) in\n  Sys.command cmd = 0\n\ntype cmd = {\n  plugin : string;\n  name : string option;\n  mutable filters : string list;\n  mutable args : (string * string) list; (* stored reversed *)\n  mutable env : (string * string) list;\n  mutable debug_flags : (string * string) list;\n  mutable readonly : bool;\n  mutable threads : int;\n  verbose : bool;\n}\n\nlet create ?(quiet = false) ?name plugin = {\n  plugin;\n  name;\n  filters = [];\n  args = [];\n  env = [ \"LANG\", \"C\" ];\n  debug_flags = [];\n  readonly = false;\n  threads = 16;\n  verbose = not quiet && verbose ()\n}\n\nlet add_debug_flag cmd name value =\n  cmd.debug_flags <- (name, value) :: cmd.debug_flags\n\nlet set_readonly cmd v = cmd.readonly <- v\nlet set_threads cmd v = cmd.threads <- v\nlet add_filter cmd v = cmd.filters <- v :: cmd.filters\nlet add_arg cmd key value = cmd.args <- (key, value) :: cmd.args\nlet add_args cmd kvs = cmd.args <- List.rev kvs @ cmd.args\nlet add_env cmd name value = cmd.env <- (name, value) :: cmd.env\n\nlet add_filter_if_available cmd filter =\n  if probe_filter filter then add_filter cmd filter\n\nlet reduce_memory_pressure cmd =\n  assert (cmd.plugin = \"file\");\n  if probe_plugin_parameter cmd.plugin \"reduce-memory-pressure=\" then\n    add_arg cmd \"reduce-memory-pressure\" \"on\"\n  else if probe_plugin_parameter cmd.plugin \"cache=\" then\n    add_arg cmd \"cache\" \"none\"\n  else\n    assert false\n\nlet run_unix socket cmd =\n  (* Create a temporary directory where we place the PID file. *)\n  let piddir = Mkdtemp.temp_dir \"v2vnbdkit.\" in\n  On_exit.rm_rf piddir;\n\n  let id = unique () in\n  let pidfile = piddir // sprintf \"nbdkit%d.pid\" id in\n\n  (* Construct the final command line. *)\n  let add_arg, add_args_reversed, get_args =\n    let r = ref [] in\n    let add_arg v = List.push_front v r in\n    let add_args_reversed vs = r := vs @ !r in\n    let get_args () = List.rev !r in\n    add_arg, add_args_reversed, get_args\n  in\n\n  add_arg Config.nbdkit;\n\n  (match cmd.name with\n   | None -> ()\n   | Some name ->\n      (* --name parameter should be first, so it appears early in 'ps'. *)\n      if probe_server_parameter \"--name\" then (\n        add_arg \"--name\";\n        add_arg name\n      )\n  );\n\n  add_arg \"--exit-with-parent\";\n  add_arg \"--foreground\";\n  add_arg \"--pidfile\"; add_arg pidfile;\n  add_arg \"--unix\"; add_arg socket;\n  add_arg \"--threads\"; add_arg (string_of_int cmd.threads);\n\n  if have_selinux () then (\n    add_arg \"--selinux-label\";\n    add_arg \"system_u:object_r:svirt_socket_t:s0\"\n  );\n\n  (* Reduce verbosity in nbdkit. *)\n  add_arg \"-D\"; add_arg \"nbdkit.backend.datapath=0\";\n\n  List.iter (\n    fun (name, value) ->\n      add_arg \"-D\"; add_arg (sprintf \"%s=%s\" name value)\n  ) cmd.debug_flags;\n  if cmd.readonly then add_arg \"--readonly\";\n  if cmd.verbose then add_arg \"--verbose\";\n  List.iter (fun filter -> add_arg \"--filter\"; add_arg filter) cmd.filters;\n\n  add_arg cmd.plugin;\n  add_args_reversed (List.map (fun (k, v) -> sprintf \"%s=%s\" k v) cmd.args);\n  let args = get_args () in\n\n  (* Print the full command we are about to run when debugging. *)\n  if verbose () then (\n    eprintf \"running nbdkit:\\n\";\n    List.iter (fun (k, v) -> eprintf \" %s=%s\" k v) cmd.env;\n    List.iter (fun arg -> eprintf \" %s\" (quote arg)) args;\n    prerr_newline ()\n  );\n\n  (* Start an nbdkit instance in the background. *)\n  let args = Array.of_list args in\n  let pid = fork () in\n  if pid = 0 then (\n    (* Child process (nbdkit). *)\n    List.iter (fun (k, v) -> putenv k v) cmd.env;\n    execvp Config.nbdkit args\n  );\n\n  (* Wait for the pidfile to appear so we know that nbdkit\n   * is listening for requests.\n   *)\n  if not (wait_for_file pidfile 30) then (\n    if verbose () then\n      error (f_\"nbdkit did not start up.  See previous debugging messages for problems.\")\n    else\n      error (f_\"nbdkit did not start up.  There may be errors printed by nbdkit above.\n\nIf the messages above are not sufficient to diagnose the problem then add the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\")\n  );\n\n  if have_selinux () then (\n    (* Note that Unix domain sockets have both a file label and\n     * a socket/process label.  Using --selinux-label above\n     * only set the socket label, but we must also set the file\n     * label.\n     *)\n    ignore (run_command [\"chcon\"; \"system_u:object_r:svirt_image_t:s0\";\n                         socket]);\n  );\n\n  (* Set the regular Unix permissions, in case nbdkit is\n   * running as another user.\n   *)\n  chown_for_libvirt_rhbz_1045069 socket;\n  chmod socket 0o700;\n\n  socket, pid\n"
  },
  {
    "path": "lib/nbdkit.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** nbdkit as an abstract data type.\n\n    This \"standalone\" library can be used to examine nbdkit on\n    the system, probe for plugins and filters, and construct\n    and run nbdkit commands. *)\n\nval is_installed : unit -> bool\n(** Return true iff nbdkit is installed and passes some\n    rudimentary tests that it is working.  Note this may\n    return true even if none of the basic plugins are\n    installed. *)\n\n(** {2 Probe configuration of nbdkit} *)\n\ntype config = (string * string) list\n\nval config : unit -> config\n(** Returns the list of tuples from the [nbdkit --dump-config] command. *)\n\ntype version = int * int * int\n(** Version of nbdkit: [major, minor, release].  The major\n    will always be 1. *)\n\nval version : unit -> version\n(** Get the installed version of nbdkit. *)\n\nval probe_server_parameter : string -> bool\n(** Probe if a particular server parameter is available.\n\n    eg. [probe_server_parameter \"--name\"] tests if the [--name]\n    parameter is available in this build of nbdkit. *)\n\nval probe_plugin : string -> bool\n(** Probe if a particular plugin is available. *)\n\nval probe_plugin_parameter : string -> string -> bool\n(** Probe if a particular plugin parameter is available.\n\n    [probe_plugin_parameter filter regex] greps for regex\n    in the output of [nbdkit plugin --help]. *)\n\nval probe_filter : string -> bool\n(** Probe if a particular filter is available. *)\n\nval probe_filter_parameter : string -> string -> bool\n(** Probe if a particular filter parameter is available.\n\n    [probe_filter_parameter filter regex] greps for regex\n    in the output of [nbdkit --filter=filter null --help]. *)\n\n(** {2 Create an nbdkit command and run it} *)\n\ntype cmd\n(** An nbdkit command. *)\n\nval create : ?quiet:bool -> ?name:string -> string -> cmd\n(** Create a new nbdkit command.\n\n    The parameter is the required plugin name.\n\n    Normally the nbdkit verbose ([-v]) flag is inherited from\n    virt-v2v but exceptionally you can use [~quiet:true] to make\n    nbdkit always quiet.\n\n    The optional [?name] parameter can be used to name this\n    nbdkit instance (the name appears in debugging messages\n    if using nbdkit >= 1.46). *)\n\nval add_debug_flag : cmd -> string -> string -> unit\n(** Add a debug flag ([-D] option). *)\n\nval set_readonly : cmd -> bool -> unit\n(** If true, set the readonly flag ([-r] option). *)\n\nval set_threads : cmd -> int -> unit\n(** Set the number of threads ([--threads] option).\n    The default is 16. *)\n\nval add_filter : cmd -> string -> unit\n(** Add a filter.  You may need to use {!probe_filter} first to check\n    the filter is installed, otherwise nbdkit will fail to run.\n    The filters are added closest to the plugin first. *)\n\nval add_filter_if_available : cmd -> string -> unit\n(** Same as {!add_filter} but does the {!probe_filter} check and\n    omits the filter if it's not available. *)\n\nval add_arg : cmd -> string -> string -> unit\nval add_args : cmd -> (string * string) list -> unit\n(** Add a key=value argument(s) to the command line.\n\n    The arguments are added left to right. *)\n\nval reduce_memory_pressure : cmd -> unit\n(** This is short-hand for detecting if the file plugin supports the\n    [reduce-memory-pressure=on] option, and adding it to the nbdkit\n    command line.  Otherwise it adds the old, confusing [cache=none]\n    option instead.\n\n    Only use this with the file plugin. *)\n\nval add_env : cmd -> string -> string -> unit\n(** Add name=value environment variable. *)\n\nval run_unix : string -> cmd -> string * int\n(** Start nbdkit command listening on a Unix domain socket, waiting\n    for the process to start up.\n\n    Returns the Unix domain socket name and the nbdkit process ID.\n\n    The [--exit-with-parent], [--foreground], [--pidfile], [--newstyle]\n    and [--unix] flags are added automatically.  Other flags are set as\n    in the {!cmd} struct. *)\n"
  },
  {
    "path": "lib/networks.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(* Network, bridge and MAC address mapping. *)\n\nopen Printf\n\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\n\ntype t = {\n  (* Map specific NIC with MAC address to a network or bridge. *)\n  mutable macs : (vnet_type * string) StringMap.t;\n\n  (* If specific NIC mapping fails, for networks we use this to map\n   * a named network, or use the default network if no named\n   * network exists.\n   *)\n  mutable network_map : string StringMap.t;\n  mutable default_network : string option;\n\n  (* If that fails, same as above but for bridges. *)\n  mutable bridge_map : string StringMap.t;\n  mutable default_bridge : string option;\n}\n\nlet map t nic =\n  try\n    let mac = match nic.s_mac with None -> raise Not_found | Some mac -> mac in\n    let mac = String.lowercase_ascii mac in\n    let vnet_type, vnet = StringMap.find mac t.macs in\n    { nic with s_vnet_type = vnet_type; s_vnet = vnet }\n  with Not_found ->\n       match nic.s_vnet_type with\n       | Network ->\n          (try\n             let vnet = StringMap.find nic.s_vnet t.network_map in\n             { nic with s_vnet = vnet }\n           with Not_found ->\n             match t.default_network with\n             | None -> nic (* no mapping done *)\n             | Some default_network ->\n                { nic with s_vnet = default_network }\n          )\n       | Bridge ->\n          (try\n             let vnet = StringMap.find nic.s_vnet t.bridge_map in\n             { nic with s_vnet = vnet }\n           with Not_found ->\n             match t.default_bridge with\n             | None -> nic (* no mapping done *)\n             | Some default_bridge ->\n                { nic with s_vnet = default_bridge }\n          )\n\nlet create () = {\n  macs = StringMap.empty;\n  network_map = StringMap.empty;\n  default_network = None;\n  bridge_map = StringMap.empty;\n  default_bridge = None\n}\n\nlet add_mac t mac vnet_type vnet =\n  let mac = String.lowercase_ascii mac in\n  if StringMap.mem mac t.macs then\n    error (f_\"duplicate --mac parameter.  Duplicate mappings specified \\\n              for MAC address %s.\") mac;\n  t.macs <- StringMap.add mac (vnet_type, vnet) t.macs\n\nlet add_network t i o =\n  if StringMap.mem i t.network_map then\n    error (f_\"duplicate -n/--network parameter.  Duplicate mappings \\\n              specified for network %s.\") i;\n  t.network_map <- StringMap.add i o t.network_map\n\nlet add_default_network t o =\n  if t.default_network <> None then\n    error (f_\"duplicate -n/--network parameter.  Only one \\\n              default mapping is allowed.\");\n  t.default_network <- Some o\n\nlet add_bridge t i o =\n  if StringMap.mem i t.bridge_map then\n    error (f_\"duplicate -b/--bridge parameter.  Duplicate mappings \\\n              specified for bridge %s.\") i;\n  t.bridge_map <- StringMap.add i o t.bridge_map\n\nlet add_default_bridge t o =\n  if t.default_bridge <> None then\n    error (f_\"duplicate -b/--bridge parameter.  Only one default mapping \\\n              is allowed.\");\n  t.default_bridge <- Some o\n"
  },
  {
    "path": "lib/networks.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Network, bridge and MAC address mapping. *)\n\ntype t                          (** The map. *)\n\nval create : unit -> t\n(** Create an empty mapping. *)\n\nval add_network : t -> string -> string -> unit\n(** Add a network mapping from C<in> to C<out>.\n\n    Equivalent to the [--network in:out] option. *)\n\nval add_default_network : t -> string -> unit\n(** Add a default network mapping.\n\n    Equivalent to the [--network out] option. *)\n\nval add_bridge : t -> string -> string -> unit\n(** Add a bridge mapping from C<in> to C<out>.\n\n    Equivalent to the [--bridge in:out] option. *)\n\nval add_default_bridge : t -> string -> unit\n(** Add a default bridge mapping.\n\n    Equivalent to the [--bridge out] option. *)\n\nval add_mac : t -> string -> Types.vnet_type -> string -> unit\n(** Add a MAC address mapping.\n\n    Equivalent to the [-mac MAC:<network|bridge>:out] option. *)\n\nval map : t -> Types.source_nic -> Types.source_nic\n(** Apply the mapping to the source NIC, returning the updated\n    NIC with possibly modified [s_vnet] and [s_vnet_type] fields.\n\n    MAC address mappings take precedence, followed by network\n    and bridge mappings if no MAC address mapping for the NIC can\n    be found. *)\n"
  },
  {
    "path": "lib/qemuNBD.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(* qemu-nbd as an abstract data type. *)\n\nopen Unix\nopen Printf\n\nopen Common_gettext.Gettext\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\n\nopen Utils\n\nlet is_installed =\n  let test = lazy (Sys.command \"qemu-nbd --version >/dev/null 2>&1\" = 0) in\n  fun () -> Lazy.force test\n\nlet qemu_nbd_has_selinux_label_option =\n  let test = lazy (Sys.command \"qemu-nbd --help |& grep -sq selinux\" = 0) in\n  fun () -> Lazy.force test\n\ntype version = int * int * int\n\nlet version =\n  let rex = PCRE.compile \"(\\\\d+)\\\\.(\\\\d+)\\\\.(\\\\d+)\" in\n  fun config ->\n    let lines = external_command \"qemu-nbd --version\" in\n    let line = List.hd lines in\n    if not (PCRE.matches rex line) then\n      error (f_\"qemu-nbd: unexpected version in --version: %s\") line;\n    let major = int_of_string (PCRE.sub 1)\n    and minor = int_of_string (PCRE.sub 2)\n    and release = int_of_string (PCRE.sub 3) in\n    debug \"qemu-nbd version: %d.%d.%d\" major minor release;\n    (major, minor, release)\n\ntype cmd = {\n  disk : string;\n  mutable snapshot : bool;\n  mutable format : string option;\n  mutable imgopts : bool;\n}\n\nlet create disk = { disk; snapshot = false; format = None; imgopts = false }\n\nlet set_snapshot cmd snap = cmd.snapshot <- snap\nlet set_format cmd format = cmd.format <- format\nlet set_image_opts cmd imgopts = cmd.imgopts <- imgopts\n\nlet run_unix socket { disk; snapshot; format; imgopts } =\n  assert (disk <> \"\");\n\n  (* Create a temporary directory where we place the PID file. *)\n  let piddir = Mkdtemp.temp_dir \"v2vqemunbd.\" in\n  On_exit.rm_rf piddir;\n\n  let id = unique () in\n  let pidfile = piddir // sprintf \"qemunbd%d.pid\" id in\n\n  (* Construct the qemu-nbd command line. *)\n  let args = ref [] in\n  List.push_back_list args\n    [\"qemu-nbd\";\n     \"-t\";\n     \"--shared=0\";\n     \"--discard=unmap\";\n     \"--pid-file\"; pidfile;\n     \"--socket\"; socket];\n\n  (* -s adds a protective overlay. *)\n  if snapshot then List.push_back args \"-s\";\n\n  (* --image-opts reinterprets the filename parameter as a set of\n   * image options.\n   *)\n  if imgopts then List.push_back args \"--image-opts\";\n\n  if have_selinux () && qemu_nbd_has_selinux_label_option () then (\n    List.push_back args \"--selinux-label\";\n    List.push_back args \"system_u:object_r:svirt_socket_t:s0\"\n  );\n\n  Option.iter (\n    fun format ->\n      List.push_back args \"--format\";\n      List.push_back args format\n  ) format;\n\n  List.push_back args disk;\n\n  (* Print the full command we are about to run when debugging. *)\n  if verbose () then (\n    eprintf \"running qemu-nbd:\\n\";\n    List.iter (fun arg -> eprintf \" %s\" (quote arg)) !args;\n    prerr_newline ()\n  );\n\n  let args = Array.of_list !args in\n  let pid = fork () in\n  if pid = 0 then (\n    (* Child process. *)\n    execvp \"qemu-nbd\" args\n  );\n\n  (* Wait for qemu-nbd to write a PID file. *)\n  if not (wait_for_file pidfile 30) then (\n    if verbose () then\n      error (f_\"qemu-nbd did not start up.  See previous debugging messages for problems.\")\n    else\n      error (f_\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\n\nIf the messages above are not sufficient to diagnose the problem then add the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\")\n  );\n\n  if have_selinux () then (\n    (* Note that Unix domain sockets have both a file label and\n     * a socket/process label.  Using --selinux-label above\n     * only set the socket label, but we must also set the file\n     * label.\n     *)\n    ignore (run_command [\"chcon\"; \"system_u:object_r:svirt_image_t:s0\";\n                         socket]);\n  );\n\n  (* Set the regular Unix permissions, in case qemu is\n   * running as another user.\n   *)\n  chown_for_libvirt_rhbz_1045069 socket;\n  chmod socket 0o700;\n\n  (* We don't need the PID file any longer. *)\n  unlink pidfile;\n\n  socket, pid\n"
  },
  {
    "path": "lib/qemuNBD.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** qemu-nbd as an abstract data type. *)\n\nval is_installed : unit -> bool\n(** Return true iff qemu-nbd is installed and passes some\n    rudimentary tests that it is working. *)\n\ntype version = int * int * int\n(** Version of qemu-nbd: [major, minor, release]. *)\n\nval version : unit -> version\n(** Get the installed version of qemu-nbd. *)\n\ntype cmd\n(** A qemu-nbd command line. *)\n\nval create : string -> cmd\n(** Create a new qemu-nbd command.\n\n    The parameter is the required filename or URI of the\n    disk image to serve. *)\n\nval set_snapshot : cmd -> bool -> unit\n(** If true, set the snapshot [-s] flag.\n\n    For safety, all input methods where [options.read_only] is true\n    must set this, to ensure the input is not modified. *)\n\nval set_format : cmd -> string option -> unit\n(** Set the format [--format] parameter. *)\n\nval set_image_opts : cmd -> bool -> unit\n(** Set whether the [--image-opts] parameter is used.  This changes\n    the meaning of the [filename] parameter to a set of image options.\n    Consult the qemu-nbd man page for more details. *)\n\nval run_unix : string -> cmd -> string * int\n(** Start qemu-nbd command listening on a Unix domain socket,\n    waiting for the process to start up.\n\n    Returns the Unix domain socket name and the qemu-nbd process ID. *)\n"
  },
  {
    "path": "lib/types.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\n(* Types.  See types.mli for documentation. *)\n\ntype source = {\n  s_hypervisor : source_hypervisor;\n  s_name : string;\n  s_genid : string option;\n  s_memory : int64;\n  s_vcpu : int;\n  s_cpu_vendor : string option;\n  s_cpu_model : string option;\n  s_cpu_topology : source_cpu_topology option;\n  s_features : string list;\n  s_firmware : source_firmware;\n  s_uefi_secureboot : bool;\n  s_display : source_display option;\n  s_sound : source_sound option;\n  s_disks : source_disk list;\n  s_removables : source_removable list;\n  s_nics : source_nic list;\n}\nand source_hypervisor =\n  | QEmu | KQemu | KVM | Xen | LXC | UML | OpenVZ\n  | Test | VMware | HyperV | VBox | Phyp | Parallels\n  | Bhyve\n  | Physical (* used by virt-p2v *)\n  | UnknownHV (* used by -i disk *)\n  | OtherHV of string\nand source_firmware =\n  | BIOS\n  | UEFI\n  | UnknownFirmware\nand source_disk = {\n  s_disk_id : int;\n  s_controller : s_controller option;\n}\nand s_controller = Source_IDE | Source_SATA | Source_SCSI | Source_NVME |\n                   Source_virtio_blk | Source_virtio_SCSI\nand source_removable = {\n  s_removable_type : s_removable_type;\n  s_removable_controller : s_controller option;\n  s_removable_slot : int option;\n}\nand s_removable_type = CDROM | Floppy\nand source_nic = {\n  s_mac : string option;\n  s_nic_model : s_nic_model option;\n  s_vnet : string;\n  s_vnet_type : vnet_type;\n}\nand s_nic_model = Source_other_nic of string |\n                  Source_rtl8139 | Source_e1000 | Source_virtio_net\nand vnet_type = Bridge | Network\nand source_display = {\n  s_display_type : s_display_type;\n  s_keymap : string option;\n  s_password : string option;\n  s_listen : s_display_listen;\n  s_port : int option;\n}\nand s_display_type = Window | VNC | Spice\nand s_display_listen =\n  | LNoListen\n  | LAddress of string\n  | LNetwork of string\n  | LSocket of string option\n  | LNone\n\nand source_sound = {\n  s_sound_model : source_sound_model;\n}\nand source_sound_model =\n  AC97 | ES1370 | ICH6 | ICH9 | PCSpeaker | SB16 | USBAudio\nand source_cpu_topology = {\n  s_cpu_sockets : int;\n  s_cpu_cores : int;\n  s_cpu_threads : int;\n}\n\nlet rec string_of_source s =\n  sprintf \"    source name: %s\nhypervisor type: %s\n       VM genid: %s\n         memory: %Ld (bytes)\n       nr vCPUs: %d\n     CPU vendor: %s\n      CPU model: %s\n   CPU topology: %s\n   CPU features: %s\n       firmware: %s\nUEFI secureboot: %b\n        display: %s\n          sound: %s\ndisks:\n%s\nremovable media:\n%s\nNICs:\n%s\n\"\n    s.s_name\n    (string_of_source_hypervisor s.s_hypervisor)\n    (Option.value ~default:\"\" s.s_genid)\n    s.s_memory\n    s.s_vcpu\n    (Option.value ~default:\"\" s.s_cpu_vendor)\n    (Option.value ~default:\"\" s.s_cpu_model)\n    (match s.s_cpu_topology with\n    | None -> \"\"\n    | Some topology -> string_of_source_cpu_topology topology)\n    (String.concat \",\" (List.sort compare s.s_features))\n    (string_of_source_firmware s.s_firmware)\n    s.s_uefi_secureboot\n    (match s.s_display with\n    | None -> \"\"\n    | Some display -> string_of_source_display display)\n    (match s.s_sound with\n    | None -> \"\"\n    | Some sound -> string_of_source_sound sound)\n    (String.concat \"\\n\" (List.map string_of_source_disk s.s_disks))\n    (String.concat \"\\n\" (List.map string_of_source_removable s.s_removables))\n    (String.concat \"\\n\" (List.map string_of_source_nic s.s_nics))\n\nand string_of_source_hypervisor = function\n  | QEmu -> \"qemu\"\n  | KQemu -> \"kqemu\"\n  | KVM -> \"kvm\"\n  | Xen -> \"xen\"\n  | LXC -> \"lxc\"\n  | UML -> \"uml\"\n  | OpenVZ -> \"openvz\"\n  | Test -> \"test\"\n  | VMware -> \"vmware\"\n  | HyperV -> \"hyperv\"\n  | VBox -> \"vbox\"\n  | Phyp -> \"phyp\"\n  | Parallels -> \"parallels\"\n  | Bhyve -> \"bhyve\"\n  | Physical -> \"physical\"\n  | UnknownHV -> \"unknownhv\"\n  | OtherHV s -> s\n\nand source_hypervisor_of_string = function\n  | \"qemu\" -> QEmu\n  | \"kqemu\" -> KQemu\n  | \"kvm\" -> KVM\n  | \"xen\" -> Xen\n  | \"lxc\" -> LXC\n  | \"uml\" -> UML\n  | \"openvz\" -> OpenVZ\n  | \"test\" -> Test\n  | \"vmware\" -> VMware\n  | \"hyperv\" -> HyperV\n  | \"vbox\" -> VBox\n  | \"phyp\" -> Phyp\n  | \"parallels\" -> Parallels\n  | \"bhyve\" -> Bhyve\n  | \"physical\" -> Physical\n  | \"unknownhv\" -> UnknownHV\n  | s -> OtherHV s\n\nand string_of_source_firmware = function\n  | BIOS -> \"bios\"\n  | UEFI -> \"uefi\"\n  | UnknownFirmware -> \"unknown\"\n\nand string_of_source_disk { s_disk_id = id; s_controller = controller } =\n  sprintf \"\\t%d%s\" id\n    (match controller with\n    | None -> \"\"\n    | Some controller -> \" [\" ^ string_of_controller controller ^ \"]\")\n\nand string_of_controller = function\n  | Source_IDE -> \"ide\"\n  | Source_SATA -> \"sata\"\n  | Source_SCSI -> \"scsi\"\n  | Source_NVME -> \"nvme\"\n  | Source_virtio_blk -> \"virtio-blk\"\n  | Source_virtio_SCSI -> \"virtio-scsi\"\n\nand string_of_source_removable { s_removable_type = typ;\n                                 s_removable_controller = controller;\n                                 s_removable_slot = i } =\n  sprintf \"\\t%s%s%s\"\n    (match typ with CDROM -> \"CD-ROM\" | Floppy -> \"Floppy\")\n    (match controller with\n    | None -> \"\"\n    | Some controller -> \" [\" ^ string_of_controller controller ^ \"]\")\n    (match i with None -> \"\" | Some i -> sprintf \" in slot %d\" i)\n\nand string_of_source_nic { s_mac = mac; s_nic_model = model; s_vnet = vnet;\n                           s_vnet_type = typ } =\n  sprintf \"\\t%s \\\"%s\\\"%s%s\"\n    (string_of_vnet_type typ)\n    vnet\n    (match mac with\n    | None -> \"\"\n    | Some mac -> \" mac: \" ^ mac)\n    (match model with\n    | None -> \"\"\n    | Some model -> \" [\" ^ string_of_nic_model model ^ \"]\")\n\nand string_of_vnet_type = function\n  | Bridge -> \"Bridge\"\n  | Network -> \"Network\"\n\nand string_of_nic_model = function\n  | Source_virtio_net -> \"virtio\"\n  | Source_e1000 -> \"e1000\"\n  | Source_rtl8139 -> \"rtl8139\"\n  | Source_other_nic model -> model\n\nand nic_model_of_string = function\n  | \"virtio\" -> Source_virtio_net\n  | \"e1000\" -> Source_e1000\n  | \"rtl8139\" -> Source_rtl8139\n  | model -> Source_other_nic model\n\nand string_of_source_display { s_display_type = typ;\n                               s_keymap = keymap; s_password = password;\n                               s_listen = listen } =\n  sprintf \"%s%s%s%s\"\n    (match typ with Window -> \"window\" | VNC -> \"vnc\" | Spice -> \"spice\")\n    (match keymap with None -> \"\" | Some km -> \" \" ^ km)\n    (match password with None -> \"\" | Some _ -> \" with password\")\n    (match listen with\n    | LNoListen -> \"\"\n    | LAddress a -> sprintf \" listening on address %s\" a\n    | LNetwork n -> sprintf \" listening on network %s\" n\n    | LSocket (Some s) -> sprintf \" listening on Unix domain socket %s\" s\n    | LSocket None ->\n       sprintf \" listening on automatically created Unix domain socket\"\n    | LNone -> \" listening on private fd\"\n    )\n\nand string_of_source_sound { s_sound_model = model } =\n  string_of_source_sound_model model\n\n(* NB: This function must produce names compatible with libvirt.  The\n * documentation for libvirt is incomplete, look instead at the\n * sources.\n *)\nand string_of_source_sound_model = function\n  | AC97      -> \"ac97\"\n  | ES1370    -> \"es1370\"\n  | ICH6      -> \"ich6\"\n  | ICH9      -> \"ich9\"\n  | PCSpeaker -> \"pcspk\"\n  | SB16      -> \"sb16\"\n  | USBAudio  -> \"usb\"\n\nand source_sound_model_of_string = function\n  | \"ac97\"    -> Some AC97\n  | \"es1370\"  -> Some ES1370\n  | \"ich6\"    -> Some ICH6\n  | \"ich9\"    -> Some ICH9\n  | \"pcspk\"   -> Some PCSpeaker\n  | \"sb16\"    -> Some SB16\n  | \"usb\"     -> Some USBAudio\n  | _         -> None\n\nand string_of_source_cpu_topology { s_cpu_sockets; s_cpu_cores;\n                                    s_cpu_threads } =\n  sprintf \"sockets: %d cores/socket: %d threads/core: %d\"\n    s_cpu_sockets s_cpu_cores s_cpu_threads\n\ntype inspect = {\n  i_root : string;\n  i_type : string;\n  i_distro : string;\n  i_osinfo : string;\n  i_arch : string;\n  i_major_version : int;\n  i_minor_version : int;\n  i_package_format : string;\n  i_package_management : string;\n  i_product_name : string;\n  i_product_variant : string;\n  i_mountpoints : (string * string) list;\n  i_filesystems : filesystem list;\n  i_apps : Guestfs.application2 list;\n  i_apps_map : Guestfs.application2 list StringMap.t;\n  i_windows_systemroot : string;\n  i_windows_software_hive : string;\n  i_windows_system_hive : string;\n  i_windows_current_control_set : string;\n  i_windows_group_policy : bool;\n  i_drive_mappings : (string * string) list;\n}\n\nand filesystem = {\n  fs_dev : string;\n  fs_type : string option;\n  fs_version : string option;\n  fs_label : string option;\n  fs_uuid : string option;\n}\n\nlet string_of_inspect inspect =\n  sprintf \"\\\ni_root = %s\ni_type = %s\ni_distro = %s\ni_osinfo = %s\ni_arch = %s\ni_major_version = %d\ni_minor_version = %d\ni_package_format = %s\ni_package_management = %s\ni_product_name = %s\ni_product_variant = %s\ni_windows_systemroot = %s\ni_windows_software_hive = %s\ni_windows_system_hive = %s\ni_windows_current_control_set = %s\ni_windows_group_policy = %b\ni_drive_mappings = %s\n\" inspect.i_root\n  inspect.i_type\n  inspect.i_distro\n  inspect.i_osinfo\n  inspect.i_arch\n  inspect.i_major_version\n  inspect.i_minor_version\n  inspect.i_package_format\n  inspect.i_package_management\n  inspect.i_product_name\n  inspect.i_product_variant\n  inspect.i_windows_systemroot\n  inspect.i_windows_software_hive\n  inspect.i_windows_system_hive\n  inspect.i_windows_current_control_set\n  inspect.i_windows_group_policy\n  (String.concat \"; \"\n     (List.map (fun (d, dev) -> sprintf \"%s => %s\" d dev)\n        inspect.i_drive_mappings))\n\ntype disk_stats = {\n  mutable target_actual_size : int64 option;\n}\n\ntype overlay = {\n  ov_overlay_file : string;\n  ov_sd : string;\n  ov_virtual_size : int64;\n  ov_source : source_disk;\n  ov_stats : disk_stats;\n}\n\nlet string_of_overlay ov =\n  sprintf \"             overlay file: %s\n      overlay device name: %s\noverlay virtual disk size: %Ld\n       target actual size: %s\n\"\n    ov.ov_overlay_file\n    ov.ov_sd\n    ov.ov_virtual_size\n    (match ov.ov_stats.target_actual_size with\n    | None -> \"None\" | Some i -> Int64.to_string i)\n\ntype target = {\n  target_file : target_file;\n  target_format : string;\n  target_overlay : overlay;\n}\nand target_file =\n  | TargetFile of string\n  | TargetURI of string\n\nlet string_of_target t =\n  sprintf \"          target file: %s\n        target format: %s\n\"\n    (match t.target_file with\n     | TargetFile s -> \"[file] \" ^ s\n     | TargetURI s -> \"[qemu] \" ^ s)\n    t.target_format\n\ntype target_firmware = TargetBIOS | TargetUEFI\n\nlet string_of_target_firmware = function\n  | TargetBIOS -> \"bios\"\n  | TargetUEFI -> \"uefi\"\n\ntype target_nics = source_nic list\n\ntype guestcaps = {\n  gcaps_block_bus : guestcaps_block_type;\n  gcaps_net_bus : guestcaps_net_type;\n  gcaps_virtio_rng : bool;\n  gcaps_virtio_balloon : bool;\n  gcaps_isa_pvpanic : bool;\n  gcaps_virtio_socket : bool;\n  gcaps_machine : guestcaps_machine;\n  gcaps_arch : string;\n  gcaps_arch_min_version : int;\n  gcaps_virtio_1_0 : bool;\n  gcaps_rtc_utc : bool;\n}\nand guestcaps_block_type = Virtio_blk | Virtio_SCSI | IDE\nand guestcaps_net_type = Virtio_net | E1000 | RTL8139\nand guestcaps_machine = I440FX | Q35 | Virt\n\ntype domcaps_features = {\n  supports_floppy : bool;\n}\n\nlet string_of_domcaps domcaps =\n  sprintf \"\\\n           supports_floppy = %b\\n\\\n          \"\n  domcaps.supports_floppy\n\nlet string_of_block_type = function\n  | Virtio_blk -> \"virtio-blk\"\n  | Virtio_SCSI -> \"virtio-scsi\"\n  | IDE -> \"ide\"\nlet string_of_net_type = function\n  | Virtio_net -> \"virtio-net\"\n  | E1000 -> \"e1000\"\n  | RTL8139 -> \"rtl8139\"\nlet string_of_machine = function\n  | I440FX -> \"i440fx\"\n  | Q35 -> \"q35\"\n  | Virt -> \"virt\"\n\nlet string_of_guestcaps gcaps =\n  sprintf \"\\\n           gcaps_block_bus = %s\\n\\\n           gcaps_net_bus = %s\\n\\\n           gcaps_virtio_rng = %b\\n\\\n           gcaps_virtio_balloon = %b\\n\\\n           gcaps_isa_pvpanic = %b\\n\\\n           gcaps_virtio_socket = %b\\n\\\n           gcaps_machine = %s\\n\\\n           gcaps_arch = %s\\n\\\n           gcaps_arch_min_version = %d\\n\\\n           gcaps_virtio_1_0 = %b\\n\\\n           gcaps_rtc_utc = %b\\n\\\n          \"\n  (string_of_block_type gcaps.gcaps_block_bus)\n  (string_of_net_type gcaps.gcaps_net_bus)\n  gcaps.gcaps_virtio_rng\n  gcaps.gcaps_virtio_balloon\n  gcaps.gcaps_isa_pvpanic\n  gcaps.gcaps_virtio_socket\n  (string_of_machine gcaps.gcaps_machine)\n  gcaps.gcaps_arch\n  gcaps.gcaps_arch_min_version\n  gcaps.gcaps_virtio_1_0\n  gcaps.gcaps_rtc_utc\n\ntype target_buses = {\n  target_virtio_blk_bus : target_bus_slot array;\n  target_ide_bus : target_bus_slot array;\n  target_scsi_bus : target_bus_slot array;\n  target_floppy_bus : target_bus_slot array;\n}\n\nand target_bus_slot =\n  | BusSlotEmpty\n  | BusSlotDisk of source_disk\n  | BusSlotRemovable of source_removable\n\nlet string_of_target_bus_slots bus_name slots =\n  let slots =\n    Array.mapi (\n      fun slot_nr slot ->\n        sprintf \"%s slot %d:\\n\" bus_name slot_nr ^\n          (match slot with\n           | BusSlotEmpty -> \"\\t(slot empty)\\n\"\n           | BusSlotDisk d -> string_of_source_disk d ^ \"\\n\"\n           | BusSlotRemovable r -> string_of_source_removable r ^ \"\\n\"\n          )\n    ) slots in\n  String.concat \"\" (Array.to_list slots)\n\nlet string_of_target_buses buses =\n  string_of_target_bus_slots \"virtio-blk\" buses.target_virtio_blk_bus ^\n  string_of_target_bus_slots \"ide\" buses.target_ide_bus ^\n  string_of_target_bus_slots \"scsi\" buses.target_scsi_bus\n\ntype target_meta = {\n  guestcaps : guestcaps;\n  target_buses : target_buses;\n  target_nics : target_nics;\n  target_firmware : target_firmware;\n  target_boot_device : int option;\n}\n\ntype root_choice = AskRoot | SingleRoot | FirstRoot | RootDev of string\n\nlet default_root_choice = AskRoot\n\nlet set_root_choice root_choice = function\n  | \"ask\" -> root_choice := AskRoot\n  | \"single\" -> root_choice := SingleRoot\n  | \"first\" -> root_choice := FirstRoot\n  | dev when String.starts_with \"/dev/\" dev -> root_choice := RootDev dev\n  | s -> error (f_\"unknown --root option: %s\") s\n\ntype output_allocation = Sparse | Preallocated\n\ntype bandwidth =\n| StaticBandwidth of string\n| DynamicBandwidth of string option * string\n\ntype static_ip = {\n  if_mac_addr : string;\n  if_ip_address : string;\n  if_default_gateway : string option;\n  if_prefix_length : int option;\n  if_nameservers : string list;\n}\n"
  },
  {
    "path": "lib/types.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Types.\n\n    This module contains the data types used throughout virt-v2v.\n\n    There is a progression during conversion: source -> overlay ->\n    target: We start with a description of the source VM (or physical\n    machine for virt-p2v) with one or more source disks.  We place\n    wriable overlay(s) on top of the source disk(s).  We do the\n    conversion into the overlay(s).  We copy the overlay(s) to the\n    target disk(s).\n\n    (This progression does not apply for in-place conversions\n    which happen on the source only.)\n\n    Overlay disks contain a pointer back to source disks.\n    Target disks contain a pointer back to overlay disks.\n\n{v\n┌──────┐\n│source│\n│struct│\n└──┬───┘\n   │ source.s_disks\n   │\n   │    ┌───────┐  ┌───────┐  ┌───────┐\n   └────┤ disk1 ├──┤ disk2 ├──┤ disk3 │  Source disks\n        └───▲───┘  └───▲───┘  └───▲───┘\n            │          │          │\n            │          │          │ overlay.ov_source\n        ┌───┴───┐  ┌───┴───┐  ┌───┴───┐\n        │ ovl1  ├──┤ ovl2  ├──┤ ovl3  │  Overlay disks\n        └───▲───┘  └───▲───┘  └───▲───┘\n            │          │          │\n            │          │          │ target.target_overlay\n        ┌───┴───┐  ┌───┴───┐  ┌───┴───┐\n        │ targ1 ├──┤ targ2 ├──┤ targ3 │  Target disks\n        └───────┘  └───────┘  └───────┘\nv}\n*)\n\n(** {2 Source, source disks} *)\n\ntype source = {\n  s_hypervisor : source_hypervisor;     (** Source hypervisor. *)\n  s_name : string;                      (** Guest name. *)\n  s_genid : string option;              (** VM Generation ID. *)\n  s_memory : int64;                     (** Memory size (bytes). *)\n  s_vcpu : int;                         (** Number of CPUs. *)\n  s_cpu_vendor : string option;         (** Source CPU vendor. *)\n  s_cpu_model : string option;          (** Source CPU model. *)\n  s_cpu_topology : source_cpu_topology option; (** Source CPU topology. *)\n  s_features : string list;             (** Machine features. *)\n  s_firmware : source_firmware;         (** Firmware (BIOS or EFI). *)\n  s_uefi_secureboot : bool;             (** UEFI secure boot toggle. *)\n  s_display : source_display option;    (** Guest display. *)\n  s_sound : source_sound option;        (** Sound card. *)\n  s_disks : source_disk list;           (** Source disks. *)\n  s_removables : source_removable list; (** CDROMs etc. *)\n  s_nics : source_nic list;             (** NICs. *)\n}\n(** The source: metadata, disk images.\n\n  [s_uefi_secureboot] is a toggle stored in the UEFI NVRAM of a guest.\n\n  When enabled it causes UEFI to verify EFI binary signatures\n  eg on [shim.efi].  When disabled, EFI binary signatures are ignored.\n\n  When enabled it is equivalent to this libvirt fragment:\n{v\n      <os>\n         <firmware>\n           <feature name=\"secure-boot\" enabled=\"yes\"/>\n           <feature name=\"enrolled-keys\" enabled=\"yes\"/>\nv}\n  When disabled:\n{v\n      <os>\n         <firmware>\n           <feature name=\"secure-boot\" enabled=\"no\"/>\nv}\n  More: https://libvirt.org/kbase/secureboot.html\n*)\n\nand source_hypervisor =\n  | QEmu | KQemu | KVM | Xen | LXC | UML | OpenVZ\n  | Test | VMware | HyperV | VBox | Phyp | Parallels\n  | Bhyve\n  | Physical (** used by virt-p2v *)\n  | UnknownHV (** used by -i disk *)\n  | OtherHV of string\n(** Possible source hypervisors.  See\n    [libvirt.git/docs/schemas/domaincommon.rng] for the list supported\n    by libvirt. *)\n\nand source_firmware =\n  | BIOS                                (** PC BIOS or default firmware *)\n  | UEFI                                (** UEFI *)\n  | UnknownFirmware                     (** Unknown: try to autodetect. *)\n(** The firmware from the source metadata.  Note that\n    [UnknownFirmware] state corresponds to disks (where we have no\n    metadata) and temporarily also to libvirt because of\n    RHBZ#1217444. *)\n\nand source_disk = {\n  s_disk_id : int;                      (** A unique ID for each source disk. *)\n  s_controller : s_controller option;   (** Controller, eg. IDE, SCSI. *)\n}\n(** A source disk. *)\n\nand s_controller = Source_IDE | Source_SATA | Source_SCSI | Source_NVME |\n                   Source_virtio_blk | Source_virtio_SCSI\n(** Source disk controller. *)\n\nand source_removable = {\n  s_removable_type : s_removable_type;  (** Type.  *)\n  s_removable_controller : s_controller option; (** Controller, eg. IDE, SCSI.*)\n  s_removable_slot : int option; (** Slot, eg. hda = 0, hdc = 2 *)\n}\n(** Removable media. *)\n\nand s_removable_type = CDROM | Floppy\n\nand source_nic = {\n  s_mac : string option;                (** MAC address. *)\n  s_nic_model : s_nic_model option;     (** Network adapter model. *)\n  s_vnet : string;                      (** Source network name. *)\n  s_vnet_type : vnet_type;              (** Source network type. *)\n}\n(** Network adapter models. *)\nand s_nic_model = Source_other_nic of string |\n                  Source_rtl8139 | Source_e1000 | Source_virtio_net\n(** Network interfaces. *)\nand vnet_type = Bridge | Network\n\nand source_display = {\n  s_display_type : s_display_type; (** Display type. *)\n  s_keymap : string option;        (** Guest keymap. *)\n  s_password : string option;      (** If required, password to access\n                                       the display. *)\n  s_listen : s_display_listen;     (** Listen address. *)\n  s_port : int option;             (** Display port. *)\n}\nand s_display_type = Window | VNC | Spice\nand s_display_listen =\n  | LNoListen                      (** No parseable <listen/> element. *)\n  | LAddress of string             (** Listen address. *)\n  | LNetwork of string             (** Listen network. *)\n  | LSocket of string option       (** Listen Unix domain socket. *)\n  | LNone                          (** <listen type='none'> *)\n\nand source_sound = {\n  s_sound_model : source_sound_model; (** Sound model. *)\n}\nand source_sound_model =\n  AC97 | ES1370 | ICH6 | ICH9 | PCSpeaker | SB16 | USBAudio\n\nand source_cpu_topology = {\n  s_cpu_sockets : int;             (** Number of sockets. *)\n  s_cpu_cores : int;               (** Number of cores per socket. *)\n  s_cpu_threads : int;             (** Number of threads per core. *)\n}\n\nval string_of_source : source -> string\nval string_of_source_disk : source_disk -> string\nval string_of_controller : s_controller -> string\nval string_of_source_nic : source_nic -> string\nval string_of_nic_model : s_nic_model -> string\nval nic_model_of_string : string -> s_nic_model\nval string_of_vnet_type : vnet_type -> string\nval string_of_source_sound_model : source_sound_model -> string\nval source_sound_model_of_string : string -> source_sound_model option\nval string_of_source_cpu_topology : source_cpu_topology -> string\n\nval string_of_source_hypervisor : source_hypervisor -> string\nval source_hypervisor_of_string : string -> source_hypervisor\n\n(** {2 Inspection data} *)\n\ntype inspect = {\n  i_root : string;                      (** Root device. *)\n  i_type : string;                      (** Usual inspection fields. *)\n  i_distro : string;\n  i_osinfo : string;\n  i_arch : string;\n  i_major_version : int;\n  i_minor_version : int;\n  i_package_format : string;\n  i_package_management : string;\n  i_product_name : string;\n  i_product_variant : string;\n  i_mountpoints : (string * string) list;\n  i_filesystems : filesystem list;\n  i_apps : Guestfs.application2 list;   (** List of packages installed. *)\n  i_apps_map : Guestfs.application2 list StringMap.t;\n    (** This is a map from the app name to the application object.\n        Since RPM allows multiple packages with the same name to be\n        installed, the value is a list. *)\n  i_windows_systemroot : string;\n  i_windows_software_hive : string;\n  i_windows_system_hive : string;\n  i_windows_current_control_set : string;\n  i_windows_group_policy : bool;\n  i_drive_mappings : (string * string) list;\n}\n\nand filesystem = {\n  fs_dev : string;\n  fs_type : string option;\n  fs_version : string option;\n  fs_label : string option;\n  fs_uuid : string option;\n}\n\nval string_of_inspect : inspect -> string\n\n(** {2 Disk stats} *)\ntype disk_stats = {\n  mutable target_actual_size : int64 option; (** Actual size on target. *)\n}\n\n(** {2 Overlay disks} *)\n\ntype overlay = {\n  ov_overlay_file : string;  (** Local overlay file (qcow2 format). *)\n  ov_sd : string;            (** \"sda\", \"sdb\" etc - canonical device name. *)\n  ov_virtual_size : int64;   (** Virtual disk size in bytes. *)\n\n  (* Note: The ov_source is for information ONLY (eg. printing\n   * error messages).  It must NOT be opened/read/modified.\n   *)\n  ov_source : source_disk;   (** Link back to the source disk. *)\n\n  ov_stats : disk_stats;     (** Size stats for this disk. *)\n}\n(** Overlay disk. *)\n\nval string_of_overlay : overlay -> string\n\n(** {2 Target disks} *)\n\ntype target = {\n  target_file : target_file; (** Destination file or QEMU URI. *)\n  target_format : string;    (** Destination format (eg. -of option). *)\n\n  target_overlay : overlay;  (** Link back to the overlay disk. *)\n}\n(** Target disk. *)\n\nand target_file =\n  | TargetFile of string     (** Target is a file. *)\n  | TargetURI of string      (** Target is a QEMU URI. *)\n\nval string_of_target : target -> string\n\n(** {2 Guest firmware} *)\n\ntype target_firmware = TargetBIOS | TargetUEFI\n\nval string_of_target_firmware : target_firmware -> string\n\n(** {2 Target NICs} *)\n\ntype target_nics = source_nic list\n\n(** {2 Guest capabilities} *)\n\ntype guestcaps = {\n  gcaps_block_bus : guestcaps_block_type;\n  gcaps_net_bus : guestcaps_net_type;\n  (** Best block device and network device guest can access.  These are\n      determined during conversion by inspecting the guest (and in some cases\n      conversion can actually enhance these by installing drivers).  Thus this\n      is not known until after conversion. *)\n\n  gcaps_virtio_rng : bool;      (** Guest supports virtio-rng. *)\n  gcaps_virtio_balloon : bool;  (** Guest supports virtio balloon. *)\n  gcaps_isa_pvpanic : bool;     (** Guest supports ISA pvpanic device. *)\n  gcaps_virtio_socket : bool;   (** Guest supports virtio socket. *)\n  gcaps_machine : guestcaps_machine; (** Machine model. *)\n  gcaps_arch : string;          (** Architecture that KVM must emulate. *)\n\n  gcaps_arch_min_version : int;\n  (** Some guest OSes require not just a specific architecture, but a\n      minimum version.  Notably RHEL >= 9 requires at least x86_64-v2.\n\n      If the guest is capable of running on QEMU's default VCPU model\n      for the architecture ([-cpu qemu64]) then this is set to [0].\n\n      Note this capability is not actually used by any current output\n      mode.  It is retained in case we might use it in future, but we\n      might remove it if it is not used. *)\n\n  gcaps_virtio_1_0 : bool;\n  (** The guest supports the virtio devices that it does at the virtio-1.0\n      protocol level. *)\n\n  gcaps_rtc_utc : bool;\n  (** Is the RTC set to UTC ([true]) or localtime ([false])?  For\n      Linux guests this is always true.  For Windows we find out\n      what the guest is expecting by looking at the registry. *)\n}\n(** Guest capabilities after conversion.  eg. Was virtio found or installed? *)\n\nand guestcaps_block_type = Virtio_blk | Virtio_SCSI | IDE\nand guestcaps_net_type = Virtio_net | E1000 | RTL8139\nand guestcaps_machine = I440FX | Q35 | Virt\n\ntype domcaps_features = {\n  supports_floppy : bool; (* domain arch/type supports floppy *)\n}\n\nval string_of_guestcaps : guestcaps -> string\nval string_of_domcaps : domcaps_features -> string\n\n(** {2 Guest buses} *)\n\ntype target_buses = {\n  target_virtio_blk_bus : target_bus_slot array;\n  target_ide_bus : target_bus_slot array;\n  target_scsi_bus : target_bus_slot array;\n  target_floppy_bus : target_bus_slot array;\n}\n(** Mapping of fixed and removable disks to buses.\n\n    As shown in the diagram below, there are (currently) four buses\n    attached to the target VM.  Each contains a chain of fixed or\n    removable disks.  Slots can also be empty.\n\n    We try to assign disks to the same slot number as they would\n    occupy on the source, although that is not always possible.\n\n{v\n┌──────┐\n│Target│\n│  VM  │\n└──┬───┘\n   │    ┌─────┐   ┌─────┐   ┌─────┐\n   ├────┤ sda ├───┤  -  ├───┤ sdc │  SCSI bus\n   │    └─────┘   └─────┘   └─────┘\n   │    ┌─────┐   ┌─────┐   ┌─────┐   ┌─────┐\n   ├────┤ hda ├───┤ hdb ├───┤ hdc ├───┤ hdd │  IDE bus\n   │    └─────┘   └─────┘   └─────┘   └─────┘\n   │    ┌─────┐   ┌─────┐\n   ├────┤  -  ├───┤ vdb │  Virtio-blk bus\n   │    └─────┘   └─────┘\n   │    ┌─────┐\n   └────┤ fda │  Floppy disks\n        └─────┘\nv}\n *)\n\nand target_bus_slot =\n| BusSlotEmpty                  (** This bus slot is empty. *)\n| BusSlotDisk of source_disk    (** Contains a fixed disk. *)\n| BusSlotRemovable of source_removable (** Contains a removable CD/floppy. *)\n\nval string_of_target_buses : target_buses -> string\n\n(** {2 Target metadata super-struct}\n\n    This contains all target-related metadata in a single struct\n    to simplify calling [output#create_metadata] *)\n\ntype target_meta = {\n  guestcaps : guestcaps;\n  target_buses : target_buses;\n  target_nics : target_nics;\n\n  target_firmware : target_firmware;\n\n  target_boot_device : int option;\n  (** The disk index of the device containing the bootloader (index\n      starting from 0).\n\n      For libvirt guests this should usually be mapped to\n      [<boot order='1'>] for this disk, and [<boot order='N'>]\n      where N > 1 for each other disk (order does not matter\n      for the other disks).\n\n      This is only necessary for SeaBIOS so only collected for\n      a subset of BIOS guests (RHEL-108991). *)\n}\n\n(** {2 Command line parameters} *)\n\ntype root_choice =\n  | AskRoot                     (** Ask the user interactively (default) *)\n  | SingleRoot                  (** Fail if multi-boot *)\n  | FirstRoot                   (** First from list returned by libguestfs *)\n  | RootDev of string           (** Named device *)\n(** Type of [--root] (root choice) option. *)\n\nval default_root_choice : root_choice\n(** The default {!root_choice} if no [--root] on the command line. *)\n\nval set_root_choice : root_choice ref -> string -> unit\n(** Parse a string (from the command line) into the {!root_choice} option.\n    The reference (first parameter) is updated. *)\n\ntype output_allocation = Sparse | Preallocated\n(** Type of [-oa] (output allocation) option. *)\n\ntype bandwidth =\n| StaticBandwidth of string\n| DynamicBandwidth of string option * string\n(** [--bandwidth] and [--bandwidth-file] options. *)\n\ntype static_ip = {\n  if_mac_addr : string;\n  if_ip_address : string;\n  if_default_gateway : string option;\n  if_prefix_length : int option;\n  if_nameservers : string list;\n}\n(** [--mac ..:ip:..] option. *)\n"
  },
  {
    "path": "lib/utils.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(* Utilities used in virt-v2v only. *)\n\nopen Printf\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\nopen Common_gettext.Gettext\n\nlet large_tmpdir =\n  try Sys.getenv \"VIRT_V2V_TMPDIR\"\n  with Not_found -> (open_guestfs ())#get_cachedir ()\n\nlet string_of_process_status = function\n  | Unix.WEXITED 0 -> s_\"success\"\n  | WEXITED i -> sprintf (f_\"exited with non-zero error code %d\") i\n  | WSIGNALED i -> sprintf (f_\"signalled by signal %d\") i\n  | WSTOPPED i -> sprintf (f_\"stopped by signal %d\") i\n\n(* Is SELinux enabled and enforcing on the host? *)\nlet have_selinux =\n  let cmd = \"getenforce 2>/dev/null | grep -isq Enforcing\" in\n  let test = lazy (0 = Sys.command cmd) in\n  fun () -> Lazy.force test\n\n(* URI quoting. *)\nlet uri_quote str =\n  let len = String.length str in\n  let xs = ref [] in\n  for i = 0 to len-1 do\n    xs :=\n      (match str.[i] with\n      | ('A'..'Z' | 'a'..'z' | '0'..'9' | '/' | '.' | '-') as c ->\n        String.make 1 c\n      | c ->\n        sprintf \"%%%02x\" (Char.code c)\n      ) :: !xs\n  done;\n  String.concat \"\" (List.rev !xs)\n\n(* Escape characters like [?] and [*] which are special for fnmatch(3). *)\nlet fnmatch_escape str =\n  let len = String.length str in\n  let xs = ref [] in\n  for i = 0 to len-1 do\n    xs :=\n      (match str.[i] with\n       | '[' | ']' | '?' | '*' as c ->\n          sprintf \"\\\\%c\" c\n       | c ->\n          String.make 1 c\n      ) :: !xs\n  done;\n  String.concat \"\" (List.rev !xs)\n\n(* Map guest architecture found by inspection to the architecture\n * that KVM must emulate.  Note for x86 we assume a 64 bit hypervisor.\n *)\nlet kvm_arch = function\n  | \"i386\" | \"i486\" | \"i586\" | \"i686\"\n  | \"x86_64\" -> \"x86_64\"\n  | \"unknown\" -> \"x86_64\" (* most likely *)\n  | arch -> arch\n\n(* Does qemu support the given sound card? *)\nlet qemu_supports_sound_card = function\n  | Types.AC97\n  | Types.ES1370\n  | Types.ICH6\n  | Types.ICH9\n  | Types.PCSpeaker\n  | Types.SB16\n  | Types.USBAudio\n    -> true\n\nlet compare_app2_versions app1 app2 =\n  let i = compare app1.Guestfs.app2_epoch app2.Guestfs.app2_epoch in\n  if i <> 0 then i\n  else (\n    let i =\n      compare_version app1.Guestfs.app2_version app2.Guestfs.app2_version in\n    if i <> 0 then i\n    else\n      compare_version app1.Guestfs.app2_release app2.Guestfs.app2_release\n  )\n\nlet du filename =\n  (* There's no OCaml binding for st_blocks, so run coreutils 'du'. *)\n  let cmd =\n    sprintf \"du --block-size=1 %s | awk '{print $1}'\" (quote filename) in\n  (* XXX This can call error and so exit, but it would be preferable\n   * to raise an exception here.\n   *)\n  let lines = external_command cmd in\n  match lines with\n  | line::_ -> Int64.of_string line\n  | [] -> invalid_arg filename\n\nlet qemu_img_supports_offset_and_size () =\n  (* We actually attempt to create a qcow2 file with a raw backing\n   * file that has an offset and size.\n   *)\n  let tmp = Filename.temp_file \"v2vqemuimgtst\" \".img\" in\n  On_exit.unlink tmp;\n  Unix.truncate tmp 1024;\n\n  let json = [\n      \"file\", JSON.Dict [\n        \"driver\", JSON.String \"raw\";\n        \"offset\", JSON.Int 512_L;\n        \"size\", JSON.Int 512_L;\n        \"file\", JSON.Dict [\n          \"filename\", JSON.String tmp\n        ]\n      ]\n  ] in\n\n  let cmd =\n    sprintf \"qemu-img info json:%s >/dev/null%s\"\n            (quote (JSON.string_of_doc ~fmt:JSON.Compact json))\n            (if verbose () then \"\" else \" 2>&1\") in\n  debug \"%s\" cmd;\n  let r = 0 = Sys.command cmd in\n  debug \"qemu-img supports \\\"offset\\\" and \\\"size\\\" in json URLs: %b\" r;\n  r\n\nlet backend_is_libvirt () =\n  let backend = (open_guestfs ())#get_backend () in\n  let backend = fst (String.split \":\" backend) in\n  backend = \"libvirt\"\n\nlet rec chown_for_libvirt_rhbz_1045069 file =\n  let running_as_root = Unix.geteuid () = 0 in\n  if running_as_root && backend_is_libvirt () then (\n    let user = Option.value ~default:\"qemu\" (libvirt_qemu_user ()) in\n    let uid =\n      if String.starts_with \"+\" user then\n        int_of_string (String.sub user 1 (String.length user - 1))\n      else\n        (Unix.getpwnam user).pw_uid in\n    debug \"setting owner of %s to %d:root\" file uid;\n    Unix.chown file uid 0\n  )\n\n(* Get the local user that libvirt uses to run qemu when we are\n * running as root.  This is returned as an optional string\n * containing the username.  The username might be \"+NNN\"\n * meaning a numeric UID.\n * https://listman.redhat.com/archives/libguestfs/2022-March/028450.html\n *)\nand libvirt_qemu_user =\n  let user =\n    lazy (\n      let conn = Libvirt.Connect.connect_readonly () in\n      let xml = Libvirt.Connect.get_capabilities conn in\n      let doc = Xml.parse_memory xml in\n      let xpathctx = Xml.xpath_new_context doc in\n      let expr =\n        \"//secmodel[./model=\\\"dac\\\"]/baselabel[@type=\\\"kvm\\\"]/text()\" in\n      let uid_gid = Xpath_helpers.xpath_string xpathctx expr in\n      match uid_gid with\n      | None -> None\n      | Some uid_gid ->\n         (* The string will be something like \"+107:+107\", return the\n          * UID part.\n          *)\n         Some (fst (String.split \":\" uid_gid))\n    ) in\n  fun () -> Lazy.force user\n\nlet nbdcopy_supports_blkhash =\n  let check =\n    lazy (\n      let cmd = sprintf \"%s --help | grep -sq -- --blkhash\" Config.nbdcopy in\n      0 = Sys.command cmd\n    ) in\n  fun () -> Lazy.force check\n\n(* Create the directory containing inX and outX sockets. *)\nlet create_v2v_directory () =\n  let d = Mkdtemp.temp_dir \"v2v.\" in\n  On_exit.rm_rf d;\n  chown_for_libvirt_rhbz_1045069 d;\n  d\n\n(* Wait for a file to appear until a timeout. *)\nlet rec wait_for_file filename timeout =\n  if Sys.file_exists filename then true\n  else if timeout = 0 then false\n  else (\n    Unix.sleep 1;\n    wait_for_file filename (timeout-1)\n  )\n\nlet with_nbd_connect_uri ?(meta_contexts = []) ~uri f =\n  let nbd = NBD.create () in\n  Fun.protect\n    (fun () ->\n          NBD.set_debug nbd (verbose ());\n          List.iter (NBD.add_meta_context nbd) meta_contexts;\n          NBD.connect_uri nbd uri;\n          Fun.protect\n            (fun () -> f nbd)\n            ~finally:(fun () -> NBD.shutdown nbd)\n       )\n    ~finally:(fun () -> NBD.close nbd)\n\nlet get_disk_allocated uri =\n  let alloc_ctx = \"base:allocation\" in\n  with_nbd_connect_uri ~uri ~meta_contexts:[alloc_ctx]\n    (fun nbd ->\n         if NBD.can_meta_context nbd alloc_ctx then (\n           (* Get the list of extents, using a 2GiB chunk size as hint. *)\n           let size = NBD.get_size nbd\n           and allocated = ref 0_L\n           and fetch_offset = ref 0_L in\n           while !fetch_offset < size do\n             let remaining = size -^ !fetch_offset in\n             let fetch_size = min 0x8000_0000_L remaining in\n             NBD.block_status nbd fetch_size !fetch_offset\n               (fun ctx offset entries err ->\n                  assert (ctx = alloc_ctx);\n                  for i = 0 to Array.length entries / 2 - 1 do\n                    let len = entries.(i * 2)\n                    and typ = entries.(i * 2 + 1) in\n                    assert (len > 0_L);\n                    if typ &^ 1_L = 0_L then\n                      allocated := !allocated +^ len;\n                    fetch_offset := !fetch_offset +^ len\n                  done;\n                  0\n               )\n           done;\n           Some !allocated\n         ) else None\n       )\n\nlet get_uefi_arch_suffix = function\n  | \"x86_64\" -> Some \"X64\"\n  | \"i386\" -> Some \"X32\"\n  | _ -> None\n\nlet name_from_disk disk =\n  let name = Filename.basename disk in\n  (* Remove the extension (or suffix), only if it's one usually\n   * used for disk images. *)\n  let suffixes = [\n    \".img\"; \".ova\"; \".qcow2\"; \".raw\"; \".vmdk\"; \".vmx\";\n    \"-sda\";\n  ] in\n  let rec loop = function\n    | suff :: xs ->\n       if Filename.check_suffix name suff then\n         Filename.chop_suffix name suff\n       else\n         loop xs\n    | [] -> name\n  in\n  let name = loop suffixes in\n  if name = \"\" then\n    error (f_\"invalid input filename (%s)\") disk;\n  name\n\nlet sanitize_slash =\n  String.map (fun c -> if c = '/' then '_' else c)\n"
  },
  {
    "path": "lib/utils.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Utilities used in virt-v2v only. *)\n\nval large_tmpdir : string\n(** [VIRT_V2V_TMPDIR] or [/var/tmp].  Create all large temporary files\n    such as overlays in this directory.  Small temporary files can\n    use the default behaviour eg. of {!Filename.temp_file} *)\n\nval string_of_process_status : Unix.process_status -> string\n(** Convert a process status (such as returned by {!Unix.wait}) into\n    a printable string. *)\n\nval have_selinux : unit -> bool\n(** Return true if SELinux is enabled and enforcing on the host. *)\n\nval uri_quote : string -> string\n(** Take a string and perform %xx escaping as used in some parts of URLs. *)\n\nval fnmatch_escape : string -> string\n(** Escape characters like [?] and [*] which are special for fnmatch(3).  *)\n\nval kvm_arch : string -> string\n(** Map guest architecture found by inspection to the architecture\n    that KVM must emulate.  Note for x86 we assume a 64 bit hypervisor. *)\n\nval qemu_supports_sound_card : Types.source_sound_model -> bool\n(** Does qemu support the given sound card? *)\n\nval compare_app2_versions : Guestfs.application2 -> Guestfs.application2 -> int\n(** Compare two app versions. *)\n\nval du : string -> int64\n(** Return the true size of a file in bytes, including any wasted\n    space caused by internal fragmentation (the overhead of using\n    blocks).\n\n    This can raise either [Failure] or [Invalid_argument] in case\n    of errors. *)\n\nval qemu_img_supports_offset_and_size : unit -> bool\n(** Return true iff [qemu-img] supports the [\"offset\"] and [\"size\"]\n    parameters to open a subset of a file. *)\n\nval backend_is_libvirt : unit -> bool\n(** Return true iff the current backend is libvirt. *)\n\nval chown_for_libvirt_rhbz_1045069 : string -> unit\n(** If running as root, and if the backend is libvirt, libvirt\n    will run qemu as a non-root user.  This prevents access\n    to root-owned files and directories.  To fix this, provide\n    a function to chown things we might need to qemu:root so\n    qemu can access them.  Note that root normally ignores\n    permissions so can still access the resource. *)\n\nval nbdcopy_supports_blkhash : unit -> bool\n(** Return true if [nbdcopy] supports the [--blkhash] flag. *)\n\nval create_v2v_directory : unit -> string\n(** Create the directory containing inX and outX sockets. *)\n\nval wait_for_file : string -> int -> bool\n(** [wait_for_file filename timeout] waits up to [timeout] seconds for\n    [filename] to appear.  It returns [true] if the file appeared. *)\n\nval with_nbd_connect_uri : ?meta_contexts:string list ->\n                           uri:string ->\n                           (NBD.t -> 'a) ->\n                           'a\n(** [with_nbd_connect_uri uri meta_contexts f] calls function [f] with the\n    NBD server at [uri] connected, and the metadata contexts in\n    [meta_contexts] requested (each of which is not necessarily\n    supported by the server though). The connection is torn down either on\n    normal return or if the function [f] throws an exception. *)\n\nval get_disk_allocated : string -> int64 option\n(** Examines the disk [uri].  Return the number of bytes allocated\n    in the disk image, according to the \"base:allocation\" metadata\n    context.  If the context is not supported by the NBD server\n    behind the socket, the function returns None.\n\n    For output disks this is callable only in the finalization step. *)\n\nval get_uefi_arch_suffix : string -> string option\n(** [get_uefi_arch_suffix arch] maps [arch] from [inspect.i_arch] representation\n    to UEFI spec representation.  If a mapping cannot be found, [None] is\n    returned. *)\n\nval name_from_disk : string -> string\n(** Take a disk name and derive from it a suitable source name.\n\n    Used in particular by [-i disk], [-i ova] and [-i vmx] modes. *)\n\nval sanitize_slash : string -> string\n(** Replace '/' with '_' in guest names for filesystem paths and\n    libvirt domain names. *)\n"
  },
  {
    "path": "m4/guestfs-bash-completion.m4",
    "content": "# libguestfs\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ndnl Bash completion.\nPKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0], [\n    bash_completion=yes\n    AC_MSG_CHECKING([for bash-completions directory])\n    BASH_COMPLETIONS_DIR=\"`pkg-config --variable=completionsdir bash-completion`\"\n    AC_MSG_RESULT([$BASH_COMPLETIONS_DIR])\n    AC_SUBST([BASH_COMPLETIONS_DIR])\n],[\n    bash_completion=no\n    AC_MSG_WARN([bash-completion not installed])\n])\nAM_CONDITIONAL([HAVE_BASH_COMPLETION],[test \"x$bash_completion\" = \"xyes\"])\n"
  },
  {
    "path": "m4/guestfs-c.m4",
    "content": "# libguestfs\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ndnl The C compiler environment.\ndnl Define the host CPU architecture (defines 'host_cpu')\nAC_CANONICAL_HOST\n\ndnl Check for basic C environment.\nAC_PROG_CC\nAC_PROG_INSTALL\nAC_PROG_CPP\n\nAC_C_PROTOTYPES\ntest \"x$U\" != \"x\" && AC_MSG_ERROR([Compiler not ANSI compliant])\n\nAM_PROG_CC_C_O\n\nAC_ARG_ENABLE([werror],\n    [AS_HELP_STRING([--enable-werror],\n                    [turn on lots of GCC warnings (for developers)])],\n     [case $enableval in\n      yes|no) ;;\n      *)      AC_MSG_ERROR([bad value $enableval for werror option]) ;;\n      esac\n      gcc_warnings=$enableval],\n      [gcc_warnings=no]\n)\nWARN_CFLAGS=\"-Wall\"\nAC_SUBST([WARN_CFLAGS])\nif test \"x$gcc_warnings\" = \"xyes\"; then\n    WERROR_CFLAGS=\"-Werror\"\nfi\nAC_SUBST([WERROR_CFLAGS])\n\n# Provide a global place to set CFLAGS.  (Note that setting AM_CFLAGS\n# is no use because it doesn't override target_CFLAGS).\n#---\n# Kill -fstrict-overflow which is a license for the C compiler to make\n# dubious and often unsafe optimizations, in a time-wasting attempt to\n# deal with CPU architectures that do not exist.\nCFLAGS=\"$CFLAGS -fno-strict-overflow -Wno-strict-overflow\"\n\ndnl Check support for 64 bit file offsets.\nAC_SYS_LARGEFILE\n\ndnl Check sizeof long.\nAC_CHECK_SIZEOF([long])\n\ndnl Check if __attribute__((cleanup(...))) works.\ndnl Set -Werror, otherwise gcc will only emit a warning for attributes\ndnl that it doesn't understand.\nacx_nbdkit_save_CFLAGS=\"${CFLAGS}\"\nCFLAGS=\"${CFLAGS} -Werror\"\nAC_MSG_CHECKING([if __attribute__((cleanup(...))) works with this compiler])\nAC_COMPILE_IFELSE([\nAC_LANG_SOURCE([[\n#include <stdio.h>\n#include <stdlib.h>\n\nvoid\nfreep (void *ptr)\n{\n  exit (EXIT_SUCCESS);\n}\n\nvoid\ntest (void)\n{\n  __attribute__((cleanup(freep))) char *ptr = malloc (100);\n}\n\nint\nmain (int argc, char *argv[])\n{\n  test ();\n  exit (EXIT_FAILURE);\n}\n]])\n    ],[\n    AC_MSG_RESULT([yes])\n    AC_DEFINE([HAVE_ATTRIBUTE_CLEANUP],[1],[Define to 1 if '__attribute__((cleanup(...)))' works with this compiler.])\n    ],[\n    AC_MSG_ERROR(\n['__attribute__((cleanup(...)))' does not work.\n\nYou may not be using a sufficiently recent version of GCC or CLANG, or\nyou may be using a C compiler which does not support this attribute,\nor the configure test may be wrong.])])\ndnl restore CFLAGS\nCFLAGS=\"${acx_nbdkit_save_CFLAGS}\"\n"
  },
  {
    "path": "m4/guestfs-libraries.m4",
    "content": "# virt-v2v\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ndnl Any C libraries required by virt-v2v.\n\ndnl Of course we need libguestfs.\ndnl\ndnl We need libguestfs 1.59.2 for guestfs_xfs_info2.\ndnl We need libguestfs 1.59.7 for text: and base64: prefix in LUKS funcs.\nPKG_CHECK_MODULES([LIBGUESTFS], [libguestfs >= 1.59.7])\nprintf \"libguestfs version is \"; $PKG_CONFIG --modversion libguestfs\n\ndnl And libnbd.\nPKG_CHECK_MODULES([LIBNBD], [libnbd >= 1.14])\nprintf \"libnbd version is \"; $PKG_CONFIG --modversion libnbd\n\ndnl Test if it's GNU or XSI strerror_r.\nAC_FUNC_STRERROR_R\n\ndnl Define a C symbol for the host CPU architecture.\nAC_DEFINE_UNQUOTED([host_cpu],[\"$host_cpu\"],[Host architecture.])\n\ndnl Headers.\nAC_CHECK_HEADERS([\\\n    byteswap.h \\\n    errno.h \\\n    linux/magic.h \\\n    sys/mount.h \\\n    sys/socket.h \\\n    sys/statfs.h \\\n    sys/statvfs.h \\\n    sys/time.h \\\n    sys/types.h \\\n    sys/un.h \\\n    sys/vfs.h \\\n    sys/wait.h \\\n    windows.h])\n\ndnl Functions.\nAC_CHECK_FUNCS([\\\n    fsync \\\n    posix_fadvise \\\n    statfs \\\n    statvfs \\\n    sync])\n\ndnl Which header file defines major, minor, makedev.\nAC_HEADER_MAJOR\n\ndnl GNU gettext tools (optional).\nAC_CHECK_PROG([XGETTEXT],[xgettext],[xgettext],[no])\nAC_CHECK_PROG([MSGCAT],[msgcat],[msgcat],[no])\nAC_CHECK_PROG([MSGFMT],[msgfmt],[msgfmt],[no])\nAC_CHECK_PROG([MSGMERGE],[msgmerge],[msgmerge],[no])\n\ndnl Check they are the GNU gettext tools.\nAC_MSG_CHECKING([msgfmt is GNU tool])\nif $MSGFMT --version >/dev/null 2>&1 && $MSGFMT --version | grep -q 'GNU gettext'; then\n    msgfmt_is_gnu=yes\nelse\n    msgfmt_is_gnu=no\nfi\nAC_MSG_RESULT([$msgfmt_is_gnu])\nAM_CONDITIONAL([HAVE_GNU_GETTEXT],\n    [test \"x$XGETTEXT\" != \"xno\" && test \"x$MSGCAT\" != \"xno\" && test \"x$MSGFMT\" != \"xno\" && test \"x$MSGMERGE\" != \"xno\" && test \"x$msgfmt_is_gnu\" != \"xno\"])\n\ndnl Check for gettext.\nAC_CHECK_HEADERS([libintl.h])\nAC_SEARCH_LIBS([dgettext], [intl], [\nif test \"$ac_cv_search_dgettext\" != \"none required\"; then\n  LIBINTL=\"$ac_cv_search_dgettext\"\n  LTLIBINTL=\"$ac_cv_search_dgettext\"\nfi\n])\nAC_SUBST([LIBINTL])\nAC_SUBST([LTLIBINTL])\n\ndnl Check for PCRE2 (required)\nPKG_CHECK_MODULES([PCRE2], [libpcre2-8], [], [\n    AC_CHECK_PROGS([PCRE2_CONFIG], [pcre2-config], [no])\n    AS_IF([test \"x$PCRE2_CONFIG\" = \"xno\"], [\n        AC_MSG_ERROR([Please install the pcre2 devel package])\n    ])\n    PCRE_CFLAGS=`$PCRE2_CONFIG --cflags`\n    PCRE_LIBS=`$PCRE2_CONFIG --libs8`\n])\n\ndnl libvirt (required)\nPKG_CHECK_MODULES([LIBVIRT], [libvirt >= 0.10.2])\nprintf \"libvirt version is \"; $PKG_CONFIG --modversion libvirt\n\nlibvirt_ro_uri='qemu+unix:///system?socket=/var/run/libvirt/libvirt-sock-ro'\nAC_SUBST([libvirt_ro_uri])\n\ndnl libxml2 (required)\nPKG_CHECK_MODULES([LIBXML2], [libxml-2.0])\nprintf \"libxml2 version is \"; $PKG_CONFIG --modversion libxml-2.0\nold_LIBS=\"$LIBS\"\nLIBS=\"$LIBS $LIBXML2_LIBS\"\nAC_CHECK_FUNCS([xmlBufferDetach])\nLIBS=\"$old_LIBS\"\n\ndnl Check for JSON-C library (required).\nPKG_CHECK_MODULES([JSON_C], [json-c >= 0.14])\nprintf \"json-c version is \"; $PKG_CONFIG --modversion json-c\n\ndnl Check for libosinfo (mandatory)\nPKG_CHECK_MODULES([LIBOSINFO], [libosinfo-1.0])\nprintf \"libosinfo version is \"; $PKG_CONFIG --modversion libosinfo-1.0\n\ndnl glibc 2.27 removes crypt(3) and suggests using libxcrypt.\nPKG_CHECK_MODULES([LIBCRYPT], [libxcrypt], [\n    AC_SUBST([LIBCRYPT_CFLAGS])\n    AC_SUBST([LIBCRYPT_LIBS])\n],[\n    dnl Check if crypt() is provided by another library.\n    old_LIBS=\"$LIBS\"\n    AC_SEARCH_LIBS([crypt],[crypt])\n    LIBS=\"$old_LIBS\"\n    if test \"$ac_cv_search_crypt\" = \"-lcrypt\" ; then\n        LIBCRYPT_LIBS=\"-lcrypt\"\n    fi\n    AC_SUBST([LIBCRYPT_LIBS])\n])\n\ndnl Do we need to include <crypt.h>?\nold_CFLAGS=\"$CFLAGS\"\nCFLAGS=\"$CFLAGS $LIBCRYPT_CFLAGS\"\nAC_CHECK_HEADERS([crypt.h])\nCFLAGS=\"$old_CFLAGS\"\n"
  },
  {
    "path": "m4/guestfs-ocaml-gettext.m4",
    "content": "# libguestfs\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ndnl Write a common gettext module used by each OCaml tool.\ndnl If OCaml gettext is not available then we write dummy functions.\n\nAC_DEFUN([GUESTFS_CREATE_COMMON_GETTEXT_ML],[\n    dnl Check for ocaml-gettext package to translate OCaml tools.\n    AC_CHECK_OCAML_PKG(gettext)\n\n    AC_MSG_NOTICE([creating $1])\n    rm -f $1\n\n    cat <<EOF > $1\n(* This file is generated automatically by ./configure. *)\n\nEOF\n\n    if test \"x$OCAML_PKG_gettext\" != \"xno\"; then\n        # ocaml-gettext available: real module.\n        cat <<EOF >>$1\nmodule Gettext = Gettext.Program (\n  struct\n    let textdomain = \"$PACKAGE_NAME\"\n    let codeset = None\n    let dir = None\n    let dependencies = [[]]\n  end\n) (GettextStub.Native)\nEOF\n    else\n        # No gettext: module containing dummy gettext functions.\n        cat <<EOF >>$1\nmodule Gettext = struct\n  external s_ : string -> string = \"%identity\"\n  external f_ : ('a, 'b, 'c, 'd, 'e, 'f) format6\n    -> ('a, 'b, 'c, 'd, 'e, 'f) format6\n    = \"%identity\"\n  let sn_ : string -> string -> int -> string\n    = fun s p n -> if n = 1 then s else p\n  let fn_ : ('a, 'b, 'c, 'd, 'e, 'f) format6\n    -> ('a, 'b, 'c, 'd, 'e, 'f) format6\n    -> int -> ('a, 'b, 'c, 'd, 'e, 'f) format6\n    = fun s p n -> if n = 1 then s else p\nend\nEOF\n    fi\n\n    chmod -w $1\n])\n"
  },
  {
    "path": "m4/guestfs-ocaml.m4",
    "content": "# libguestfs\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ndnl Check for OCaml (required, for OCaml bindings and OCaml tools).\n\ndnl OCAMLC and OCAMLFIND have to be unset first, otherwise\ndnl AC_CHECK_TOOL (inside AC_PROG_OCAML) will not look.\nOCAMLC=\nOCAMLFIND=\nAC_PROG_OCAML\nAC_PROG_FINDLIB\n\nAS_IF([test \"x$OCAMLC\" = \"xno\"],[\n    AC_MSG_ERROR([OCaml compiler is required])\n])\n\nAS_IF([test \"x$OCAMLFIND\" = \"xno\"],[\n    AC_MSG_ERROR([OCaml findlib is required])\n])\n\ndnl --disable-ocaml only disables OCaml bindings and OCaml virt tools.\nAC_ARG_ENABLE([ocaml],\n    AS_HELP_STRING([--disable-ocaml], [disable OCaml language bindings and tools]),\n    [],\n    [enable_ocaml=yes])\n\ndnl OCaml >= 4.08 is required.\nocaml_ver_str=4.08\nocaml_min_major=4\nocaml_min_minor=8\nAC_MSG_CHECKING([if OCaml version >= $ocaml_ver_str])\nocaml_major=\"`echo $OCAMLVERSION | $AWK -F. '{print $1}'`\"\nocaml_minor=\"`echo $OCAMLVERSION | $AWK -F. '{print $2}' | sed 's/^0//'`\"\nAS_IF([test \"$ocaml_major\" -ge $((ocaml_min_major+1)) || ( test \"$ocaml_major\" -eq $ocaml_min_major && test \"$ocaml_minor\" -ge $ocaml_min_minor )],[\n    AC_MSG_RESULT([yes ($ocaml_major, $ocaml_minor)])\n],[\n    AC_MSG_RESULT([no])\n    AC_MSG_FAILURE([OCaml compiler is not new enough.  At least OCaml $ocaml_ver_str is required])\n])\n\nAM_CONDITIONAL([HAVE_OCAML],\n               [test \"x$enable_ocaml\" != \"xno\"])\nAM_CONDITIONAL([HAVE_OCAMLOPT],\n               [test \"x$OCAMLOPT\" != \"xno\"])\nAM_CONDITIONAL([HAVE_OCAMLDOC],\n               [test \"x$OCAMLDOC\" != \"xno\"])\n\ndnl Check if ocamlc/ocamlopt -runtime-variant _pic works.  It was\ndnl added in OCaml >= 4.03, but in theory might be disabled by\ndnl downstream distros.\nOCAML_RUNTIME_VARIANT_PIC_OPTION=\"\"\nif test \"x$OCAMLC\" != \"xno\"; then\n    AC_MSG_CHECKING([if OCaml ‘-runtime-variant _pic’ works])\n    rm -f conftest.ml contest\n    echo 'print_endline \"hello world\"' > conftest.ml\n    if $OCAMLOPT conftest.ml -runtime-variant _pic -o conftest >&5 2>&5 ; then\n        AC_MSG_RESULT([yes])\n        OCAML_RUNTIME_VARIANT_PIC_OPTION=\"-runtime-variant _pic\"\n    else\n        AC_MSG_RESULT([no])\n    fi\n    rm -f conftest.ml contest\nfi\nAC_SUBST([OCAML_RUNTIME_VARIANT_PIC_OPTION])\n\ndnl ocaml guestfs module is required.\nOCAML_PKG_guestfs=no\nAC_CHECK_OCAML_PKG(guestfs)\nif test \"x$OCAML_PKG_guestfs\" = \"xno\"; then\n    AC_MSG_ERROR([the OCaml module 'guestfs' is required])\nfi\n\ndnl ocaml libvirt module is required.\nOCAML_PKG_libvirt=no\nAC_CHECK_OCAML_PKG(libvirt)\nif test \"x$OCAML_PKG_libvirt\" = \"xno\"; then\n    AC_MSG_ERROR([the OCaml module 'libvirt' is required])\nfi\n\ndnl ocaml nbd (libnbd) module is required.\nOCAML_PKG_nbd=no\nAC_CHECK_OCAML_PKG(nbd)\nif test \"x$OCAML_PKG_nbd\" = \"xno\"; then\n    AC_MSG_ERROR([the OCaml module 'nbd' (from libnbd) is required])\nfi\n\nOCAML_PKG_gettext=no\nAS_IF([test \"x$OCAMLC\" != \"xno\"],[\n    # Create common/mlgettext/common_gettext.ml gettext functions or stubs.\n\n    # If we're building in a different directory, then common/mlgettext\n    # might not exist yet, so create it:\n    mkdir -p common/mlgettext\n\n    GUESTFS_CREATE_COMMON_GETTEXT_ML([common/mlgettext/common_gettext.ml])\n])\nAM_CONDITIONAL([HAVE_OCAML_PKG_GETTEXT],\n               [test \"x$OCAML_PKG_gettext\" != \"xno\"])\n\nAC_CHECK_PROG([OCAML_GETTEXT],[ocaml-gettext],[ocaml-gettext],[no])\nAM_CONDITIONAL([HAVE_OCAML_GETTEXT],\n               [test \"x$OCAML_PKG_gettext\" != \"xno\" && test \"x$OCAML_GETTEXT\" != \"xno\"])\n\ndnl Flags we want to pass to every OCaml compiler call.\nOCAML_WARN_ERROR=\"-warn-error +C+D+E+F+L+M+P+S+U+V+Y+Z+X+52-3-6 -w -6\"\nAC_SUBST([OCAML_WARN_ERROR])\nOCAML_FLAGS=\"-g -annot $safe_string_option\"\nAC_SUBST([OCAML_FLAGS])\n"
  },
  {
    "path": "m4/guestfs-perl.m4",
    "content": "# libguestfs\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ndnl Check for perl (required).\nAC_CHECK_PROG([PERL],[perl],[perl],[no])\ntest \"x$PERL\" = \"xno\" &&\n    AC_MSG_ERROR([perl must be installed])\n\ndnl Check for Pod::Man, Pod::Simple (for man pages).\nAC_MSG_CHECKING([for Pod::Man])\nif ! $PERL -MPod::Man -e1 >&AS_MESSAGE_LOG_FD 2>&1; then\n    AC_MSG_ERROR([perl Pod::Man must be installed])\nelse\n    AC_MSG_RESULT([yes])\nfi\nAC_MSG_CHECKING([for Pod::Simple])\nif ! $PERL -MPod::Simple -e1 >&AS_MESSAGE_LOG_FD 2>&1; then\n    AC_MSG_ERROR([perl Pod::Simple must be installed])\nelse\n    AC_MSG_RESULT([yes])\nfi\n\ndnl Define the path to the podwrapper program.\nPODWRAPPER=\"\\$(guestfs_am_v_podwrapper)$PERL $(pwd)/podwrapper.pl\"\nAC_SUBST([PODWRAPPER])\n\ndnl Check for Perl modules needed by Perl documentation and tests.\ndnl XXX These should probably be required.\nAS_IF([test \"x$PERL\" != \"xno\"],[\n    missing_perl_modules=no\n    for pm in Pod::Usage Getopt::Long IPC::Run3 Sys::Guestfs ; do\n        AC_MSG_CHECKING([for $pm])\n        if ! $PERL -M$pm -e1 >&AS_MESSAGE_LOG_FD 2>&1; then\n            AC_MSG_RESULT([no])\n            missing_perl_modules=yes\n        else\n            AC_MSG_RESULT([yes])\n        fi\n    done\n    if test \"x$missing_perl_modules\" = \"xyes\"; then\n        AC_MSG_WARN([some Perl modules required to compile the documentation and tests are missing])\n    fi\n])\n\nAM_CONDITIONAL([HAVE_TOOLS],\n    [test \"x$PERL\" != \"xno\" && test \"x$missing_perl_modules\" != \"xyes\"])\n"
  },
  {
    "path": "m4/guestfs-progs.m4",
    "content": "# libguestfs\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Check for external programs required to either build or run\n# libguestfs.\n#\n# AC_CHECK_PROG(S) or AC_PATH_PROG(S)?\n#\n# Use AC_CHECK_PROG(S) for programs which are only used during build.\n#\n# Use AC_PATH_PROG(S) for program names which are compiled into the\n# binary and used at run time.  The reason is so that we know which\n# programs the binary actually uses.\n\n# Define $(SED).\nm4_ifdef([AC_PROG_SED],[\n    AC_PROG_SED\n],[\n    dnl ... else hope for the best\n    AC_SUBST([SED], \"sed\")\n])\n\n# Define $(AWK).\nAC_PROG_AWK\n\nAC_PROG_LN_S\n\ndnl Check for xorriso/genisoimage/mkisofs.\nAC_PATH_PROGS([MKISOFS],[xorrisofs genisoimage mkisofs],[no],\n    [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin])\ntest \"x$MKISOFS\" = \"xno\" && AC_MSG_ERROR([xorriso or genisoimage or mkisofs must be installed])\n\ndnl po4a for translating man pages and POD files (optional).\nAC_CHECK_PROG([PO4A_GETTEXTIZE],[po4a-gettextize],[po4a-gettextize],[no])\nAC_CHECK_PROG([PO4A_TRANSLATE],[po4a-translate],[po4a-translate],[no])\nAC_CHECK_PROG([PO4A_UPDATEPO],[po4a-updatepo],[po4a-updatepo],[no])\nAM_CONDITIONAL([HAVE_PO4A], [test \"x$PO4A_GETTEXTIZE\" != \"xno\" && test \"x$PO4A_TRANSLATE\" != \"xno\" && test \"x$PO4A_UPDATEPO\" != \"xno\"])\n\ndnl Check for sqlite3 (optional).\nAC_CHECK_PROG([SQLITE3],[sqlite3],[sqlite3],[no])\n\ndnl zip/unzip, used by virt-v2v\nAC_PATH_PROGS([ZIP],[zip],[no])\nAC_DEFINE_UNQUOTED([ZIP],[\"$ZIP\"],[Name of zip program.])\nAM_CONDITIONAL([HAVE_ZIP],[test \"x$ZIP\" != \"xno\"])\nAC_PATH_PROGS([UNZIP],[unzip],[no])\nAC_DEFINE_UNQUOTED([UNZIP],[\"$UNZIP\"],[Name of unzip program.])\n\ndnl Detect nbdkit also under /usr/sbin or /sbin in case they're not on $PATH\nAC_PATH_PROG([NBDKIT], [nbdkit], [no],\n                       [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin])\nAS_IF([test \"x$NBDKIT\" = \"xno\"],\n      [AC_MSG_WARN([nbdkit binary (from nbdkit) not found, some runtime functionality will be missing])])\n\ndnl nbdinfo, nbdcopy, required by virt-v2v\nAC_CHECK_PROG([NBDINFO], [nbdinfo], [nbdinfo], [no])\nAC_CHECK_PROG([NBDCOPY], [nbdcopy], [nbdcopy], [no])\nAS_IF([test \"x$NBDINFO\" = \"xno\" || test \"x$NBDCOPY\" = \"xno\"],\n      [AC_MSG_ERROR([nbdinfo and nbdcopy (from libnbd) must be installed])])\n\ndnl Check for valgrind\nAC_CHECK_PROG([VALGRIND],[valgrind],[valgrind],[no])\nAS_IF([test \"x$VALGRIND\" != \"xno\"],[\n    # Substitute the whole valgrind command.\n    # --read-inline-info=no is a temporary workaround for RHBZ#1662656.\n    VG='libtool --mode=execute $(VALGRIND) --vgdb=no --leak-check=full --error-exitcode=119 --suppressions=$(abs_top_srcdir)/valgrind-suppressions --trace-children=no --child-silent-after-fork=yes --run-libc-freeres=no --num-callers=100 --read-inline-info=no'\n    ],[\n    # No valgrind, so substitute VG with something that will break.\n    VG=VALGRIND_IS_NOT_INSTALLED\n])\nAC_SUBST([VG])\nAM_SUBST_NOTMAKE([VG])\n\ndnl pycodestyle, used to check the Python scripts.\nAC_CHECK_PROGS([PYCODESTYLE],[pycodestyle],[no])\n"
  },
  {
    "path": "m4/ocaml.m4",
    "content": "dnl autoconf macros for OCaml\ndnl\ndnl Copyright © 2009      Richard W.M. Jones\ndnl Copyright © 2009      Stefano Zacchiroli\ndnl Copyright © 2000-2005 Olivier Andrieu\ndnl Copyright © 2000-2005 Jean-Christophe Filliâtre\ndnl Copyright © 2000-2005 Georges Mariano\ndnl\ndnl For documentation, please read the ocaml.m4 man page.\n\nAC_DEFUN([AC_PROG_OCAML],\n[dnl\n  # checking for ocamlc\n  AC_CHECK_TOOL([OCAMLC],[ocamlc],[no])\n\n  if test \"$OCAMLC\" != \"no\"; then\n     OCAMLVERSION=`$OCAMLC -v | sed -n -e 's|.*version* *\\(.*\\)$|\\1|p'`\n     AC_MSG_RESULT([OCaml version is $OCAMLVERSION])\n     OCAMLLIB=`$OCAMLC -where 2>/dev/null || $OCAMLC -v|tail -1|cut -d ' ' -f 4`\n     AC_MSG_RESULT([OCaml library path is $OCAMLLIB])\n\n     AC_SUBST([OCAMLVERSION])\n     AC_SUBST([OCAMLLIB])\n\n     # checking for ocamlopt\n     AC_CHECK_TOOL([OCAMLOPT],[ocamlopt],[no])\n     OCAMLBEST=byte\n     if test \"$OCAMLOPT\" = \"no\"; then\n        AC_MSG_WARN([Cannot find ocamlopt; bytecode compilation only.])\n     else\n        TMPVERSION=`$OCAMLOPT -v | sed -n -e 's|.*version* *\\(.*\\)$|\\1|p' `\n        if test \"$TMPVERSION\" != \"$OCAMLVERSION\" ; then\n            AC_MSG_RESULT([versions differs from ocamlc; ocamlopt discarded.])\n            OCAMLOPT=no\n        else\n            OCAMLBEST=opt\n        fi\n     fi\n\n     AC_SUBST([OCAMLBEST])\n\n     # checking for ocamlc.opt\n     AC_CHECK_TOOL([OCAMLCDOTOPT],[ocamlc.opt],[no])\n     if test \"$OCAMLCDOTOPT\" != \"no\"; then\n        TMPVERSION=`$OCAMLCDOTOPT -v | sed -n -e 's|.*version* *\\(.*\\)$|\\1|p' `\n        if test \"$TMPVERSION\" != \"$OCAMLVERSION\" ; then\n            AC_MSG_RESULT([versions differs from ocamlc; ocamlc.opt discarded.])\n        else\n            OCAMLC=$OCAMLCDOTOPT\n        fi\n     fi\n\n     # checking for ocamlopt.opt\n     if test \"$OCAMLOPT\" != \"no\" ; then\n        AC_CHECK_TOOL([OCAMLOPTDOTOPT],[ocamlopt.opt],[no])\n        if test \"$OCAMLOPTDOTOPT\" != \"no\"; then\n           TMPVERSION=`$OCAMLOPTDOTOPT -v | sed -n -e 's|.*version* *\\(.*\\)$|\\1|p' `\n           if test \"$TMPVERSION\" != \"$OCAMLVERSION\" ; then\n              AC_MSG_RESULT([version differs from ocamlc; ocamlopt.opt discarded.])\n           else\n              OCAMLOPT=$OCAMLOPTDOTOPT\n           fi\n        fi\n     fi\n\n     AC_SUBST([OCAMLOPT])\n  fi\n\n  AC_SUBST([OCAMLC])\n\n  # checking for ocamldep\n  AC_CHECK_TOOL([OCAMLDEP],[ocamldep],[no])\n\n  # checking for ocamlmktop\n  AC_CHECK_TOOL([OCAMLMKTOP],[ocamlmktop],[no])\n\n  # checking for ocamlmklib\n  AC_CHECK_TOOL([OCAMLMKLIB],[ocamlmklib],[no])\n\n  # checking for ocamldoc\n  AC_CHECK_TOOL([OCAMLDOC],[ocamldoc],[no])\n\n  # checking for ocamlbuild\n  AC_CHECK_TOOL([OCAMLBUILD],[ocamlbuild],[no])\n])\n\n\nAC_DEFUN([AC_PROG_OCAMLLEX],\n[dnl\n  # checking for ocamllex\n  AC_CHECK_TOOL([OCAMLLEX],[ocamllex],[no])\n  if test \"$OCAMLLEX\" != \"no\"; then\n    AC_CHECK_TOOL([OCAMLLEXDOTOPT],[ocamllex.opt],[no])\n    if test \"$OCAMLLEXDOTOPT\" != \"no\"; then\n        OCAMLLEX=$OCAMLLEXDOTOPT\n    fi\n  fi\n  AC_SUBST([OCAMLLEX])\n])\n\nAC_DEFUN([AC_PROG_OCAMLYACC],\n[dnl\n  AC_CHECK_TOOL([OCAMLYACC],[ocamlyacc],[no])\n  AC_SUBST([OCAMLYACC])\n])\n\n\nAC_DEFUN([AC_PROG_CAMLP4],\n[dnl\n  AC_REQUIRE([AC_PROG_OCAML])dnl\n\n  # checking for camlp4\n  AC_CHECK_TOOL([CAMLP4],[camlp4],[no])\n  if test \"$CAMLP4\" != \"no\"; then\n     TMPVERSION=`$CAMLP4 -v 2>&1| sed -n -e 's|.*version *\\(.*\\)$|\\1|p'`\n     if test \"$TMPVERSION\" != \"$OCAMLVERSION\" ; then\n        AC_MSG_RESULT([versions differs from ocamlc])\n        CAMLP4=no\n     fi\n  fi\n  AC_SUBST([CAMLP4])\n\n  # checking for companion tools\n  AC_CHECK_TOOL([CAMLP4BOOT],[camlp4boot],[no])\n  AC_CHECK_TOOL([CAMLP4O],[camlp4o],[no])\n  AC_CHECK_TOOL([CAMLP4OF],[camlp4of],[no])\n  AC_CHECK_TOOL([CAMLP4OOF],[camlp4oof],[no])\n  AC_CHECK_TOOL([CAMLP4ORF],[camlp4orf],[no])\n  AC_CHECK_TOOL([CAMLP4PROF],[camlp4prof],[no])\n  AC_CHECK_TOOL([CAMLP4R],[camlp4r],[no])\n  AC_CHECK_TOOL([CAMLP4RF],[camlp4rf],[no])\n  AC_SUBST([CAMLP4BOOT])\n  AC_SUBST([CAMLP4O])\n  AC_SUBST([CAMLP4OF])\n  AC_SUBST([CAMLP4OOF])\n  AC_SUBST([CAMLP4ORF])\n  AC_SUBST([CAMLP4PROF])\n  AC_SUBST([CAMLP4R])\n  AC_SUBST([CAMLP4RF])\n])\n\n\nAC_DEFUN([AC_PROG_FINDLIB],\n[dnl\n  AC_REQUIRE([AC_PROG_OCAML])dnl\n\n  # checking for ocamlfind\n  AC_CHECK_TOOL([OCAMLFIND],[ocamlfind],[no])\n  AC_SUBST([OCAMLFIND])\n])\n\n\ndnl Thanks to Jim Meyering for working this next bit out for us.\ndnl XXX We should define AS_TR_SH if it's not defined already\ndnl (eg. for old autoconf).\nAC_DEFUN([AC_CHECK_OCAML_PKG],\n[dnl\n  AC_REQUIRE([AC_PROG_FINDLIB])dnl\n\n  AC_MSG_CHECKING([for OCaml findlib package $1])\n\n  unset found\n  unset pkg\n  found=no\n  for pkg in $1 $2 ; do\n    if $OCAMLFIND query $pkg >/dev/null 2>/dev/null; then\n      AC_MSG_RESULT([found])\n      AS_TR_SH([OCAML_PKG_$1])=$pkg\n      found=yes\n      break\n    fi\n  done\n  if test \"$found\" = \"no\" ; then\n    AC_MSG_RESULT([not found])\n    AS_TR_SH([OCAML_PKG_$1])=no\n  fi\n\n  AC_SUBST(AS_TR_SH([OCAML_PKG_$1]))\n])\n\n\nAC_DEFUN([AC_CHECK_OCAML_MODULE],\n[dnl\n  AC_MSG_CHECKING([for OCaml module $2])\n\n  cat > conftest.ml <<EOF\nopen $3\nEOF\n  unset found\n  for $1 in $$1 $4 ; do\n    if $OCAMLC -c -I \"$$1\" conftest.ml >&5 2>&5 ; then\n      found=yes\n      break\n    fi\n  done\n\n  if test \"$found\" ; then\n    AC_MSG_RESULT([$$1])\n  else\n    AC_MSG_RESULT([not found])\n    $1=no\n  fi\n  AC_SUBST([$1])\n])\n\n\ndnl XXX Cross-compiling\nAC_DEFUN([AC_CHECK_OCAML_WORD_SIZE],\n[dnl\n  AC_MSG_CHECKING([for OCaml compiler word size])\n  cat > conftest.ml <<EOF\n  print_endline (string_of_int Sys.word_size)\n  EOF\n  OCAML_WORD_SIZE=`ocaml conftest.ml`\n  AC_MSG_RESULT([$OCAML_WORD_SIZE])\n  AC_SUBST([OCAML_WORD_SIZE])\n])\n"
  },
  {
    "path": "ocaml-dep.sh.in",
    "content": "#!/bin/bash -\n# (C) Copyright 2009-2025 Red Hat Inc.\n# @configure_input@\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\n# This is a smarter wrapper around ocamldep(1) which is used to create\n# the .depend files which are present in each subdirectory that builds\n# OCaml code.\n#\n# Usage:\n#   .depend: *.mli *.ml\n#       $(top_builddir)/ocaml-dep.sh $^\n#   -include .depend\n\nset -e\n\n# List of directories that contain common OCaml libraries.  If it\n# contains OCaml code that can be included from another directory,\n# then it should go here.  Note that OCaml modules in these\n# directories must have unique names (eg. not ‘Utils’) else\n# dependencies don't get built right.\ninclude_dirs=\"\ncommon/mlcustomize\ncommon/mldrivers\ncommon/mlgettext\ncommon/mlpcre\ncommon/mlprogress\ncommon/mlstdutils\ncommon/mltools\ncommon/mlutils\ncommon/mlvisit\ncommon/mlxml\nlib\nconvert\ninput\noutput\n\"\n\n# Output file is always created in the current directory.\noutput=.depend\n\nsubdir=$(realpath --relative-to=@abs_top_builddir@ .)\nsrcdir=$(realpath --relative-to=. @abs_top_srcdir@/${subdir})\nsrcdir_re=$(realpath --relative-to=. @abs_top_srcdir@/${subdir} | sed 's/\\./[.]/g')\ntop_builddir=$(realpath --relative-to=. @abs_top_builddir@)\n\nincludes=\"-I @abs_top_srcdir@/$subdir -I @abs_top_builddir@/$subdir\"\nfor i in $include_dirs; do\n    includes=\"$includes -I @abs_top_srcdir@/$i -I @abs_top_builddir@/$i\"\ndone\n\nrm -f $output $output-t\n\necho \"# OCaml dependencies generated by $0\" > $output-t\necho >> $output-t\n\n# Rewrite paths\n# 1. Normalize absolute srcdir to relative path\n# 2. Object files (*.cm*, *.o), in srcdir: Rewrite to builddir\n# 3. Generated _config.ml in srcdir: Rewrite to builddir\n# 4. Other object files below abs_top_srcdir: rewrite to corresponding builddir\n# 5. Eliminate \"./\" prefix\n@OCAMLFIND@ ocamldep -all -one-line $includes \"$@\" \\\n    | sed \\\n          -e \"s,@abs_top_srcdir@/${subdir},.,g\" \\\n          -e \"s,\\B${srcdir_re}/\\\\([^ ]*[.]\\\\)\\\\(cm[^ ]*\\\\|o\\\\),\\\\1\\\\2,g\" \\\n          -e \"s,\\B${srcdir_re}/\\\\([^ /]*_config[.]ml\\\\),\\\\1,g\" \\\n          -e \"s,@abs_top_srcdir@/\\\\([^ ]*[.]\\\\)\\\\(cm[^ ]*\\\\|o\\\\),${top_builddir}/\\\\1\\\\2,g\" \\\n          -e 's,\\(^\\| \\)./,\\1,g' \\\n    >> $output-t\n\nchmod -w $output-t\n\nmv $output-t $output\n"
  },
  {
    "path": "ocaml-link.sh.in",
    "content": "#!/bin/bash -\n# Script used to link OCaml programs.\n# @configure_input@\n# (C) Copyright 2015-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\n# See guestfs-hacking(1) section \"HOW OCAML PROGRAMS ARE COMPILED AND LINKED\"\n\n# Hack automake to link OCaml-based binaries properly.\n# There is no other way to add the -cclib parameter to the end of\n# the command line.\n\n# Usage:\n#   ./ocaml-link.sh -cclib '...' -- ARGS\n# Pass the cclib argument separately, and the rest as separated\n# arguments.\n\ncclib=\n\nwhile true ; do\n  case \"$1\" in\n    -cclib|--cclib) cclib=\"$2\" ; shift 2 ;;\n    -cclib=*|--cclib=*) cclib=\"${1#*=}\"; shift 1 ;;\n    --) shift ; break ;;\n    *)\n        printf >&2 \"usage: %s [-cclib lib] -- arg ...\\n\" \"$(basename \"$0\")\"\n        exit 2 ;;\n  esac\ndone\n\n# Without this, if we use `libguestfs/run` while `ocaml-libguestfs-*`\n# host packages are installed, we get mismatched search path warnings\n# like these, and then linking fails:\n#\n#  findlib: [WARNING] Package guestfs has multiple definitions in /tmp/libguestfs.git/ocaml/guestfs/META, /usr/lib64/ocaml/guestfs/META\n#  findlib: [WARNING] Interface guestfs.cmi occurs in several directories: /usr/lib64/ocaml/guestfs, /tmp/libguestfs.git/ocaml/guestfs\nguestfs_path=$(@OCAMLFIND@ query guestfs 2>/dev/null)\n\n# Integration with silent rules of automake: print the full command\n# line option in verbose mode.\nif [ x\"${V:-@AM_DEFAULT_VERBOSITY@}\" = x1 ]; then\n  echo \"$@\" \\\n     @OCAML_RUNTIME_VARIANT_PIC_OPTION@ \\\n     -I \"$guestfs_path\" \\\n     -linkpkg \\\n     -cclib \"'@LDFLAGS@ $cclib'\"\nfi\n# NB -cclib must come last.\nexec \"$@\" \\\n     @OCAML_RUNTIME_VARIANT_PIC_OPTION@ \\\n     -I \"$guestfs_path\" \\\n     -linkpkg \\\n     -cclib \"@LDFLAGS@ $cclib\"\n"
  },
  {
    "path": "open/Makefile.am",
    "content": "# libguestfs virt-v2v-open tool\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nEXTRA_DIST = \\\n\ttest-docs.sh \\\n\t$(SOURCES_MLI) \\\n\t$(SOURCES_ML) \\\n\t$(SOURCES_C) \\\n\tvirt-v2v-open.pod \\\n\t$(NULL)\n\nSOURCES_MLI = \\\n\topen.mli\n\nSOURCES_ML = \\\n\topen.ml\n\nSOURCES_C = \\\n\tdummy.c\n\nbin_PROGRAMS = virt-v2v-open\n\nvirt_v2v_open_SOURCES = $(SOURCES_C)\nvirt_v2v_open_CPPFLAGS = \\\n\t-DCAML_NAME_SPACE \\\n\t-I. \\\n\t-I$(top_builddir) \\\n\t-I$(shell $(OCAMLC) -where) \\\n\t-I$(top_srcdir)/lib \\\n\t$(NULL)\nvirt_v2v_open_CFLAGS = \\\n\t-pthread \\\n\t$(WARN_CFLAGS) $(WERROR_CFLAGS) \\\n\t$(LIBGUESTFS_CFLAGS) \\\n\t$(LIBVIRT_CFLAGS) \\\n\t$(NULL)\n\nBOBJECTS = $(SOURCES_ML:.ml=.cmo)\nXOBJECTS = $(BOBJECTS:.cmo=.cmx)\n\nOCAMLPACKAGES = \\\n\t-package str,unix,guestfs,libvirt,nbd \\\n\t-I $(top_builddir)/common/utils/.libs \\\n\t-I $(top_builddir)/common/qemuopts/.libs \\\n\t-I $(top_builddir)/gnulib/lib/.libs \\\n\t-I $(top_builddir)/lib \\\n\t-I $(top_builddir)/input \\\n\t-I $(top_builddir)/common/mlstdutils \\\n\t-I $(top_builddir)/common/mlutils \\\n\t-I $(top_builddir)/common/mlgettext \\\n\t-I $(top_builddir)/common/mlpcre \\\n\t-I $(top_builddir)/common/mlxml \\\n\t-I $(top_builddir)/common/mltools \\\n\t-I $(top_builddir)/common/mlcustomize \\\n\t-I $(top_builddir)/common/mldrivers \\\n\t$(NULL)\nif HAVE_OCAML_PKG_GETTEXT\nOCAMLPACKAGES += -package gettext-stub\nendif\n\nOCAMLCLIBS = \\\n\t-pthread \\\n\t-lqemuopts \\\n\t$(LIBGUESTFS_LIBS) \\\n\t$(LIBVIRT_LIBS) \\\n\t$(LIBCRYPT_LIBS) \\\n\t$(LIBXML2_LIBS) \\\n\t$(JSON_C_LIBS) \\\n\t$(LIBOSINFO_LIBS) \\\n\t$(LIBINTL) \\\n\t$(LIBNBD_LIBS) \\\n\t-lgnu \\\n\t$(NULL)\n\nOCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)'\n\nif !HAVE_OCAMLOPT\nOBJECTS = $(BOBJECTS)\nelse\nOBJECTS = $(XOBJECTS)\nendif\n\nOCAMLLINKFLAGS = \\\n\tmlstdutils.$(MLARCHIVE) \\\n\tmlgettext.$(MLARCHIVE) \\\n\tmlpcre.$(MLARCHIVE) \\\n\tmlxml.$(MLARCHIVE) \\\n\tmlcutils.$(MLARCHIVE) \\\n\tmltools.$(MLARCHIVE) \\\n\tmllibvirt.$(MLARCHIVE) \\\n\tmlcustomize.$(MLARCHIVE) \\\n\tmldrivers.$(MLARCHIVE) \\\n\tmlv2vlib.$(MLARCHIVE) \\\n\tmlinput.$(MLARCHIVE) \\\n\t$(LINK_CUSTOM_OCAMLC_ONLY) \\\n\t$(NULL)\n\nvirt_v2v_open_DEPENDENCIES = \\\n\t$(OBJECTS) \\\n\t$(top_builddir)/input/mlinput.$(MLARCHIVE) \\\n\t$(top_builddir)/lib/mlv2vlib.$(MLARCHIVE) \\\n\t$(top_srcdir)/ocaml-link.sh \\\n\t$(NULL)\nvirt_v2v_open_LINK = \\\n\t$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \\\n\t  $(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \\\n\t  $(OBJECTS) -o $@\n\n# Data directory.\n\nvirttoolsdatadir = $(datadir)/virt-tools\n\n# Dependencies.\n.depend: \\\n\t$(srcdir)/*.mli \\\n\t$(srcdir)/*.ml \\\n\t$(filter %.ml,$(BUILT_SOURCES))\n\t$(top_builddir)/ocaml-dep.sh $^\n-include .depend\n\n# Manual pages.\n\nman_MANS = virt-v2v-open.1\nnoinst_DATA = $(top_builddir)/website/virt-v2v-open.1.html\n\nvirt-v2v-open.1 $(top_builddir)/website/virt-v2v-open.1.html: stamp-virt-v2v-open.pod\n\nstamp-virt-v2v-open.pod: virt-v2v-open.pod\n\t$(PODWRAPPER) \\\n\t  --man virt-v2v-open.1 \\\n\t  --html $(top_builddir)/website/virt-v2v-open.1.html \\\n\t  --path $(top_srcdir)/common/options \\\n\t  --license GPLv2+ \\\n\t  --warning safe \\\n\t  $<\n\t$(AM_V_at)touch $@\n\nTESTS_ENVIRONMENT = $(top_builddir)/run --test\nTESTS = test-docs.sh\n"
  },
  {
    "path": "open/dummy.c",
    "content": "/* Dummy source, to be used for OCaml-based tools with no C sources. */\nenum { foo = 1 };\n"
  },
  {
    "path": "open/open.ml",
    "content": "(* virt-v2v-open\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\nopen Common_gettext.Gettext\nopen Getopt.OptionName\n\nopen Types\nopen Utils\n\nlet template_rex = PCRE.compile \"@@\"\n\nmodule G = Guestfs\n\nlet rec main () =\n  let set_string_option_once optname optref arg =\n    match !optref with\n    | Some _ ->\n       error (f_\"%s option used more than once on the command line\") optname\n    | None ->\n       optref := Some arg\n  in\n\n  let input_conn = ref None in\n  let input_format = ref None in\n  let input_password = ref None in\n  let input_transport = ref None in\n  let input_options = ref [] in\n  let io_query = ref false in\n  let set_input_option_compat k v =\n    List.push_back input_options (k, v)\n  in\n  let set_input_option option =\n    if option = \"?\" then io_query := true\n    else (\n      let k, v = String.split \"=\" option in\n      set_input_option_compat k v\n    )\n  in\n\n  let input_modes =\n    Select_input.input_modes |>\n    List.map Select_input.string_of_input_mode |>\n    String.concat \"|\" in\n  let input_mode = ref None in\n  let set_input_mode mode =\n    if !input_mode <> None then\n      error (f_\"%s option used more than once on the command line\") \"-i\";\n    input_mode := Some (Select_input.input_mode_of_string mode)\n  in\n\n  let command_template = ref None in\n\n  let argspec = [\n    [ S 'i' ],       Getopt.String (input_modes, set_input_mode),\n                                    s_\"Set input mode (default: libvirt)\";\n    [ M\"ic\" ],       Getopt.String (\"uri\", set_string_option_once \"-ic\" input_conn),\n                                    s_\"Libvirt URI\";\n    [ M\"if\" ],       Getopt.String (\"format\", set_string_option_once \"-if\" input_format),\n                                    s_\"Input format\";\n    [ M\"io\" ],       Getopt.String (\"option[=value]\", set_input_option),\n                                    s_\"Set option for input mode\";\n    [ M\"ip\" ],       Getopt.String (\"filename\", set_string_option_once \"-ip\" input_password),\n                                    s_\"Use password from file to connect to input hypervisor\";\n    [ M\"it\" ],       Getopt.String (\"transport\", set_string_option_once \"-it\" input_transport),\n                                    s_\"Input transport\";\n    [ L\"run\" ],      Getopt.String (\"COMMAND\", set_string_option_once \"--run\" command_template),\n                                    s_\"External command to run\";\n  ] in\n\n  let args = ref [] in\n  let anon_fun s = List.push_front s args in\n  let usage_msg =\n    sprintf (f_\"\\\n%s: open the virt-v2v input and run a program on it\n\nvirt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n\nA short summary of the options is given below.  For detailed help please\nread the man page virt-v2v-open(1).\n\")\n      prog in\n\n  let opthandle = create_standard_options argspec ~anon_fun ~key_opts:false\n                    ~machine_readable:true usage_msg in\n  Getopt.parse opthandle.getopt;\n\n  (* Print the version, easier than asking users to tell us. *)\n  debug \"info: %s: %s %s (%s)\"\n        prog Config.package_name Config.package_version_full\n        Config.host_cpu;\n\n  (* Print the libvirt version if debugging. *)\n  if verbose () then (\n    let major, minor, release = Libvirt_utils.libvirt_get_version () in\n    debug \"info: libvirt version: %d.%d.%d\" major minor release\n  );\n\n  (* Create the v2v directory to control conversion. *)\n  let v2vdir = create_v2v_directory () in\n\n  (* Dereference the arguments. *)\n  let args = List.rev !args in\n  let input_conn = !input_conn in\n  let input_mode = !input_mode in\n  let input_transport =\n    match !input_transport with\n    | None -> None\n    | Some \"ssh\" -> Some Input.SSH\n    | Some \"vddk\" -> Some Input.VDDK\n    | Some transport ->\n       error (f_\"unknown input transport ‘-it %s’\") transport in\n\n  let command_template =\n    match !command_template with\n    | None -> error (f_\"you must supply the --run parameter\")\n    | Some c -> c in\n\n  (* No arguments and machine-readable mode?  Print out some facts\n   * about what this binary supports.\n   *)\n  (match args, machine_readable () with\n   | [], Some { pr } ->\n      pr \"virt-v2v-open\\n\";\n      pr \"libguestfs-rewrite\\n\";\n      pr \"colours-option\\n\";\n      pr \"io\\n\";\n      Select_input.input_modes |>\n        List.map Select_input.string_of_input_mode |>\n        List.iter (pr \"input:%s\\n\");\n      exit 0\n   | _, _ -> ()\n  );\n\n  (* Select the input module. *)\n  let (module Input_module) =\n    Select_input.select_input input_mode input_conn input_transport in\n\n  let input_options = {\n    Input.bandwidth = None;\n    input_conn = input_conn;\n    input_format = !input_format;\n    input_options = !input_options;\n    input_password = !input_password;\n    input_transport = input_transport;\n    (* This must always be true so that we do not modify the\n     * source.  This is set to [false] by in-place mode.\n     *)\n    read_only = true;\n  } in\n\n  (* If -io ? then we want to query input options supported in this mode. *)\n  if !io_query then (\n    Input_module.query_input_options ();\n    exit 0\n  );\n\n  (* Before starting the input module, check there is sufficient\n   * free space in the temporary directory on the host.\n   *)\n  check_host_free_space ();\n\n  (* Start the input module (runs an NBD server in the background). *)\n  message (f_\"Setting up the source: %s\")\n    (Input_module.to_string input_options args);\n  let source, input_disks = Input_module.setup v2vdir input_options args in\n\n  message (f_\"Running external command\");\n\n  (* We're not really doing a conversion here, but write the 'convert'\n   * file around this to tune the input module correctly.\n   *)\n  with_open_out (v2vdir // \"convert\") (fun _ -> ());\n\n  (* Get the list of input sockets (NBD endpoints), formatted as\n   * a shell-quoted list of [-a] options.\n   *)\n  let add_params =\n    List.map (\n      fun uri ->\n        let uri = NBD_URI.to_uri uri in\n        sprintf \"-a %s\" (quote uri)\n    ) input_disks\n    |> String.concat \" \" in\n\n  (* Run external program. *)\n  debug \"command template: %S\" command_template;\n  let cmd = PCRE.replace template_rex add_params command_template in\n  let r = shell_command cmd in\n  if r <> 0 then exit r;\n\n  unlink (v2vdir // \"convert\");\n\n  (* Debug the v2vdir. *)\n  if verbose () then (\n    let cmd = sprintf \"ls -alZ %s 1>&2\" (quote v2vdir) in\n    ignore (Sys.command cmd)\n  );\n\n  message (f_\"Finishing off\");\n  (* As the last thing, write a file indicating success before\n   * we exit (so before we kill the helpers).  The helpers may\n   * use the presence or absence of the file to determine if\n   * on-success or on-fail cleanup is required.\n   *)\n  with_open_out (v2vdir // \"done\") (fun _ -> ())\n\n(* Some input modules use large_tmpdir to unpack OVAs or store qcow2\n * overlays and some output modules use it to store temporary files.\n * In addition the  500 MB guestfs appliance may be created there.\n * (RHBZ#1316479, RHBZ#2051394)\n *)\nand check_host_free_space () =\n  let free_space = StatVFS.free_space (StatVFS.statvfs large_tmpdir) in\n  debug \"check_host_free_space: large_tmpdir=%s free_space=%Ld\"\n        large_tmpdir free_space;\n  if free_space < 1_073_741_824L then\n    error (f_\"insufficient free space in the conversion server \\\n              temporary directory %s (%s).\\n\\nEither free up space \\\n              in that directory, or set the LIBGUESTFS_CACHEDIR \\\n              environment variable to point to another directory \\\n              with more than 1GB of free space.\\n\\nSee also the \\\n              virt-v2v(1) manual, section \\\n              \\\"Minimum free space check in the host\\\".\")\n      large_tmpdir (human_size free_space)\n\nlet () = run_main_and_handle_errors main\n"
  },
  {
    "path": "open/open.mli",
    "content": "(* virt-v2v-open\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(* virt-v2v-open utility main program.\n   Nothing is exported. *)\n"
  },
  {
    "path": "open/test-docs.sh",
    "content": "#!/bin/bash -\n# libguestfs\n# Copyright (C) 2016 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nsource ../tests/functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\n$srcdir/../podcheck.pl virt-v2v-open.pod virt-v2v-open \\\n  --path $srcdir/../common/options \\\n  --ignore=\\\n--format,\\\n--ic,\\\n--if,\\\n--io,\\\n--ip,\\\n--it\n"
  },
  {
    "path": "open/virt-v2v-open.pod",
    "content": "=head1 NAME\n\nvirt-v2v-open - Open the virt-v2v input and run a program on it\n\n=head1 SYNOPSIS\n\n virt-v2v-open [-i* options] guest --run 'program [--options] @@'\n\n virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\n\n virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\n\n=head1 DESCRIPTION\n\nVirt-v2v-open is a companion tool for L<virt-v2v(1)> and\nL<virt-v2v-inspector(1)> which can be used before conversion to open\nthe input side of virt-v2v and run a program.\n\nSome uses for this include running L<virt-inspector(1)> directly on\nthe source guest to find source operating systems (to use with the\nvirt-v2v I<--root> option).  Or running guestfish to take a look\ninside the source guest before conversion.  You can follow that by\nrunning L<virt-v2v-inspector(1)> to estimate how much space would be\nneeded to convert that guest, and if conversion of the guest is\npossible.\n\nThis manual page only documents the program options, not all of the\nI<-i*> options which are the same as virt-v2v.  You should read\nL<virt-v2v(1)> first.\n\nNotes:\n\n=over 4\n\n=item *\n\nThe source guest is always opened read-only.  You will not be able to\nmake persistent changes.\n\n=item *\n\nL<virt-inspector(1)> can be used directly on local disk images.\n\n=back\n\n=head2 Selecting the input guest\n\nYou can run virt-v2v-open with the same I<-i*> options as virt-v2v.\n(Don't use any I<-o*> options).  This will select the guest that you\nwant to open.\n\n=head2 Running the program\n\nOn the command line, put the program that you want to run on the\nsource guest and any other parameters that program needs into the\nI<--run> parameter.  C<@@> in the parameter is substituted with\nI<-a DISK ...> for each source disk, in a way which is compatible with\nL<virt-inspector(1)> and L<guestfish(1)>.\n\n virt-v2v-open [-i ...] guest \\\n               --run 'virt-inspector --format=raw @@ > output.xml'\n\n virt-v2v-open [-i ...] guest \\\n               --run 'guestfish --ro --format=raw @@ -i'\n\n virt-v2v-open [-i ...] guest \\\n               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\n\n=head1 OPTIONS\n\n=over 4\n\n=item B<--help>\n\nDisplay help.\n\n=item B<-v>\n\n=item B<--verbose>\n\nEnable verbose messages for debugging.\n\n=item B<-V>\n\n=item B<--version>\n\nDisplay version number and exit.\n\n=item B<-x>\n\nEnable tracing of libguestfs API calls.\n\n=item B<-i> ...\n\n=item B<-ic> ...\n\n=item B<-if> ...\n\n=item B<-io> ...\n\n=item B<-ip> ...\n\n=item B<-it> ...\n\nAll of the I<-i*> options supported by virt-v2v are also supported by\nvirt-v2v-open.\n\n=item B<--colors>\n\n=item B<--colours>\n\n=item B<--machine-readable>\n\n=item B<--machine-readable>=format\n\n=item B<-q>\n\n=item B<--quiet>\n\n=item B<--wrap>\n\nThese options work in the same way as the equivalent virt-v2v options.\n\n=item B<--run> COMMAND\n\nThe command that you want to run on the source guest.  C<@@> in the\ncommand is substituted with a list of I<-a DISK> options that is\ncompatible with virt-inspector and guestfish.\n\n=back\n\n=head1 FILES\n\nFiles used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\n\n=head1 ENVIRONMENT VARIABLES\n\nEnvironment variables used are the same as for virt-v2v.  See\nL<virt-v2v(1)/ENVIRONMENT VARIABLES>.\n\n=head1 SEE ALSO\n\nL<virt-v2v(1)>,\nL<virt-p2v(1)>,\nL<virt-inspector(1)>,\nL<virt-v2v-inspector(1)>,\nL<guestfs(3)>,\nL<guestfish(1)>,\nL<qemu-img(1)>,\nL<nbdkit(1)>,\nL<http://libguestfs.org/>.\n\n=head1 AUTHORS\n\nMatthew Booth\n\nCédric Bosdonnat\n\nLaszlo Ersek\n\nTomáš Golembiovský\n\nShahar Havivi\n\nRichard W.M. Jones\n\nRoman Kagan\n\nMike Latimer\n\nNir Soffer\n\nPino Toscano\n\nXiaodai Wang\n\nMing Xie\n\nTingting Zheng\n\n=head1 COPYRIGHT\n\nCopyright (C) 2009-2025 Red Hat Inc.\n"
  },
  {
    "path": "output/Makefile.am",
    "content": "# helper-v2v-output\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nBUILT_SOURCES = \\\n\toutput_ovirt_upload_cancel_source.ml \\\n\toutput_ovirt_upload_createvm_source.ml \\\n\toutput_ovirt_upload_finalize_source.ml \\\n\toutput_ovirt_upload_plugin_source.ml \\\n\toutput_ovirt_upload_precheck_source.ml \\\n\toutput_ovirt_upload_transfer_source.ml \\\n\toutput_ovirt_upload_vmcheck_source.ml\n\nEXTRA_DIST = \\\n\t$(SOURCES_MLI) \\\n\t$(SOURCES_ML) \\\n\t$(SOURCES_C) \\\n\t$(BUILT_SOURCES) \\\n\tembed.sh \\\n\tovirt-upload-cancel.py \\\n\tovirt-upload-createvm.py \\\n\tovirt-upload-finalize.py \\\n\tovirt-upload-plugin.py \\\n\tovirt-upload-precheck.py \\\n\tovirt-upload-transfer.py \\\n\tovirt-upload-vmcheck.py \\\n\ttest-python-syntax.sh\n\nSOURCES_MLI = \\\n\tchangeuid.mli \\\n\tcreate_libvirt_xml.mli \\\n\tcreate_kubevirt_yaml.mli \\\n\topenstack_image_properties.mli \\\n\toutput.mli \\\n\toutput_disk.mli \\\n\toutput_glance.mli \\\n\toutput_kubevirt.mli \\\n\toutput_libvirt.mli \\\n\toutput_null.mli \\\n\toutput_openstack.mli \\\n\toutput_ovirt.mli \\\n\toutput_ovirt_upload.mli \\\n\toutput_ovirt_upload_cancel_source.mli \\\n\toutput_ovirt_upload_createvm_source.mli \\\n\toutput_ovirt_upload_finalize_source.mli \\\n\toutput_ovirt_upload_plugin_source.mli \\\n\toutput_ovirt_upload_precheck_source.mli \\\n\toutput_ovirt_upload_transfer_source.mli \\\n\toutput_ovirt_upload_vmcheck_source.mli \\\n\toutput_qemu.mli \\\n\toutput_vdsm.mli \\\n\tpython_script.mli \\\n\tqemuopts.mli \\\n\tselect_output.mli\n\nSOURCES_ML = \\\n\tchangeuid.ml \\\n\tpython_script.ml \\\n\tcreate_libvirt_xml.ml \\\n\tcreate_kubevirt_yaml.ml \\\n\tqemuopts.ml \\\n\topenstack_image_properties.ml \\\n\toutput_ovirt_upload_cancel_source.ml \\\n\toutput_ovirt_upload_createvm_source.ml \\\n\toutput_ovirt_upload_finalize_source.ml \\\n\toutput_ovirt_upload_plugin_source.ml \\\n\toutput_ovirt_upload_precheck_source.ml \\\n\toutput_ovirt_upload_transfer_source.ml \\\n\toutput_ovirt_upload_vmcheck_source.ml \\\n\toutput.ml \\\n\toutput_disk.ml \\\n\toutput_glance.ml \\\n\toutput_kubevirt.ml \\\n\toutput_libvirt.ml \\\n\toutput_null.ml \\\n\toutput_openstack.ml \\\n\toutput_qemu.ml \\\n\toutput_ovirt.ml \\\n\toutput_ovirt_upload.ml \\\n\toutput_vdsm.ml \\\n\tselect_output.ml\n\nSOURCES_C = \\\n\tqemuopts-c.c\n\n# These files are generated and contain *.py embedded as an OCaml string.\noutput_ovirt_upload_cancel_source.ml: $(srcdir)/ovirt-upload-cancel.py\n\t$(srcdir)/embed.sh code $^ $@\noutput_ovirt_upload_createvm_source.ml: $(srcdir)/ovirt-upload-createvm.py\n\t$(srcdir)/embed.sh code $^ $@\noutput_ovirt_upload_finalize_source.ml: $(srcdir)/ovirt-upload-finalize.py\n\t$(srcdir)/embed.sh code $^ $@\noutput_ovirt_upload_plugin_source.ml: $(srcdir)/ovirt-upload-plugin.py\n\t$(srcdir)/embed.sh code $^ $@\noutput_ovirt_upload_precheck_source.ml: $(srcdir)/ovirt-upload-precheck.py\n\t$(srcdir)/embed.sh code $^ $@\noutput_ovirt_upload_transfer_source.ml: $(srcdir)/ovirt-upload-transfer.py\n\t$(srcdir)/embed.sh code $^ $@\noutput_ovirt_upload_vmcheck_source.ml: $(srcdir)/ovirt-upload-vmcheck.py\n\t$(srcdir)/embed.sh code $^ $@\n\n# We pretend that we're building a C library.  automake handles the\n# compilation of the C sources for us.  At the end we take the C\n# objects and OCaml objects and link them into the OCaml library.\n# This C library is never used.\n\nnoinst_LIBRARIES = libmloutput.a\n\nif !HAVE_OCAMLOPT\nMLOUTPUT_CMA = mloutput.cma\nelse\nMLOUTPUT_CMA = mloutput.cmxa\nendif\n\nnoinst_DATA = $(MLOUTPUT_CMA)\n\nlibmloutput_a_SOURCES = $(SOURCES_C)\nlibmloutput_a_CPPFLAGS = \\\n\t-DCAML_NAME_SPACE \\\n\t-I. \\\n\t-I$(top_builddir) \\\n\t-I$(shell $(OCAMLC) -where) \\\n\t-I$(top_srcdir)/common/qemuopts \\\n\t-I$(top_srcdir)/lib\nlibmloutput_a_CFLAGS = \\\n\t-pthread \\\n\t-fPIC \\\n\t$(WARN_CFLAGS) $(WERROR_CFLAGS) \\\n\t$(LIBGUESTFS_CFLAGS) \\\n\t$(LIBXML2_CFLAGS) \\\n\t$(JSON_C_CFLAGS)\n\nBOBJECTS = $(SOURCES_ML:.ml=.cmo)\nXOBJECTS = $(BOBJECTS:.cmo=.cmx)\n\nOCAMLPACKAGES = \\\n\t-package str,unix,guestfs,libvirt,nbd \\\n\t-I $(top_builddir)/common/utils/.libs \\\n\t-I $(top_builddir)/common/qemuopts/.libs \\\n\t-I $(top_builddir)/gnulib/lib/.libs \\\n\t-I $(top_builddir)/lib \\\n\t-I $(top_builddir)/common/mlstdutils \\\n\t-I $(top_builddir)/common/mlutils \\\n\t-I $(top_builddir)/common/mlgettext \\\n\t-I $(top_builddir)/common/mlpcre \\\n\t-I $(top_builddir)/common/mltools \\\n\t-I $(top_builddir)/common/mlxml\nif HAVE_OCAML_PKG_GETTEXT\nOCAMLPACKAGES += -package gettext-stub\nendif\n\nOCAMLCLIBS = \\\n\t-pthread \\\n\t-lqemuopts \\\n\t$(LIBGUESTFS_LIBS) \\\n\t$(LIBXML2_LIBS) \\\n\t$(JSON_C_LIBS) \\\n\t$(LIBNBD_LIBS) \\\n\t-lgnu\n\nOCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)'\n\nif !HAVE_OCAMLOPT\nOBJECTS = $(BOBJECTS)\nelse\nOBJECTS = $(XOBJECTS)\nendif\n\nOCAMLLINKFLAGS = \\\n\tmlstdutils.$(MLARCHIVE) \\\n\tmlcutils.$(MLARCHIVE) \\\n\tmlgettext.$(MLARCHIVE) \\\n\tmlpcre.$(MLARCHIVE) \\\n\tmlxml.$(MLARCHIVE) \\\n\tmltools.$(MLARCHIVE) \\\n\tmllibvirt.$(MLARCHIVE) \\\n\tmlv2vlib.$(MLARCHIVE) \\\n\t$(LINK_CUSTOM_OCAMLC_ONLY)\n\nlibmloutput_a_DEPENDENCIES = \\\n\t$(OBJECTS)\n\n$(MLOUTPUT_CMA): $(OBJECTS) libmloutput.a\n\t$(AM_V_GEN) $(OCAMLFIND) mklib $(OCAMLPACKAGES) \\\n\t    $(OBJECTS) $(libmloutput_a_OBJECTS) -o mloutput\n\n# Unit tests.\nTESTS_ENVIRONMENT = $(top_builddir)/run --test\nTESTS = test-python-syntax.sh\n\n# Dependencies.\n.depend: \\\n\t$(srcdir)/*.mli \\\n\t$(srcdir)/*.ml\n\t$(top_builddir)/ocaml-dep.sh $^\n-include .depend\n"
  },
  {
    "path": "output/changeuid.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(* Functions for making files and directories as another user. *)\n\nopen Unix\nopen Printf\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\nopen Common_gettext.Gettext\n\nopen Utils\n\ntype t = {\n  uid : int option;\n  gid : int option;\n}\n\nlet create ?uid ?gid () = { uid = uid; gid = gid }\n\nlet with_fork { uid; gid } name f =\n  let pid = fork () in\n\n  if pid = 0 then (\n    (* Child. *)\n    Option.iter setgid gid;\n    Option.iter setuid uid;\n    (try f ()\n     with exn ->\n       eprintf \"%s: changeuid: %s: %s\\n%!\" prog name (Printexc.to_string exn);\n       Exit._exit 1\n    );\n    Exit._exit 0\n  );\n\n  (* Parent. *)\n  let _, status = waitpid [] pid in\n  match status with\n  | WEXITED 0 -> ()\n  | WEXITED i ->\n    error (f_\"subprocess exited with non-zero error code %d\") i\n  | WSIGNALED i | WSTOPPED i ->\n    error (f_\"subprocess signalled or stopped by signal %d\") i\n\nlet mkdir t path perm =\n  with_fork t (sprintf \"mkdir: %s\" path) (fun () -> mkdir path perm)\n\nlet rmdir t path =\n  with_fork t (sprintf \"rmdir: %s\" path) (fun () -> rmdir path)\n\nlet output t path f =\n  with_fork t path (fun () -> with_open_out path f)\n\nlet make_file t path content =\n  output t path (fun chan -> output_string chan content)\n\nlet unlink t path =\n  with_fork t (sprintf \"unlink: %s\" path) (fun () -> unlink path)\n\nlet func t = with_fork t \"func\"\n\nlet command t cmd =\n  debug \"changeuid: running: %s\" cmd;\n  with_fork t cmd (\n    fun () ->\n      let r = Sys.command cmd in\n      if r <> 0 then failwith \"external command failed\"\n  )\n"
  },
  {
    "path": "output/changeuid.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Functions for making files and directories as another user.\n\n    [-o ovirt] output mode has to write files as UID:GID 36:36,\n    otherwise oVirt cannot read them.  Because the files are located on\n    NFS (and hence might be root-squashed) we also cannot chown the\n    files.  We cannot setuid the whole process to 36:36 because it\n    needs to do other root things like mounting and unmounting the NFS\n    volume.\n\n    The solution to this craziness is to fork a subprocess every time\n    we need to create a file, setuid in the subprocess, and write the\n    file.  The subprocess then exits, leaving the main process still\n    running as root.\n\n    This mini-library encapsulates this tomfoolery into something that\n    is slightly more sane to use.\n\n    NB. We are {b not} dropping permissions for security reasons.\n    This file has nothing to do with security. *)\n\ntype t\n(** Abstract handle. *)\n\nval create : ?uid:int -> ?gid:int -> unit -> t\n(** Create handle.  The optional [?uid] and [?gid] parameters are the\n    user/group to run as.  If omitted, then we don't change user\n    and/or group (but we still do the forking anyway). *)\n\nval mkdir : t -> string -> int -> unit\n(** [mkdir t path perm] creates the directory [path] with mode [perm]. *)\n\nval rmdir : t -> string -> unit\n(** [rmdir t path] removes the directory [path]. *)\n\nval make_file : t -> string -> string -> unit\n(** [make_file t path content] creates the file [path] with content\n    [content].  The current umask controls file permissions. *)\n\nval output : t -> string -> (out_channel -> unit) -> unit\n(** [output t path f] creates the file [path] with content from\n    function [f].  The current umask controls file permissions. *)\n\nval unlink : t -> string -> unit\n(** [unlink t path] deletes the file [path]. *)\n\nval func : t -> (unit -> unit) -> unit\n(** [func t f] runs the arbitrary function [f]. *)\n\nval command : t -> string -> unit\n(** [command t cmd] runs [cmd] as the alternate user/group after\n    forking. *)\n"
  },
  {
    "path": "output/create_kubevirt_yaml.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\nopen YAML\n\nlet create_kubevirt_yaml source inspect\n      { guestcaps; target_buses; target_nics;\n        target_firmware; target_boot_device }\n      outdisk_name output_format output_name =\n  (* The body of the YAML contains various sections attached to\n   * a tree.  We fill in these sections first.\n   *)\n  let metadata = ref [] in\n  let devices = ref [] in\n  let disks = ref [] in\n  let firmware = ref [] in\n  let resources = ref [] in\n  let cpu = ref [] in\n  let volumes = ref [] in\n\n  (* The guest name. *)\n  List.push_back metadata (\"name\", String output_name);\n\n  (* Put some information into labels\n   * here that we cannot otherwise store in the yaml.\n   * Labels are NOT arbitrary strings, see:\n   * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set\n   *)\n  let () =\n    let labels = ref [] in\n    let key n = sprintf \"libguestfs.org/%s\" n in\n    List.push_back labels (key \"virt-v2v-version\",\n                           String Guestfs_config.package_version);\n    Option.iter (\n      fun genid ->\n        List.push_back labels (key \"genid\", String genid)\n      ) source.s_genid;\n    List.push_back labels (key \"osinfo\", String inspect.i_osinfo);\n    (match source.s_hypervisor with\n     | UnknownHV -> ()\n     | hv ->\n        let hv = string_of_source_hypervisor hv in\n        List.push_back labels (key \"source\", String hv)\n    );\n    List.push_back metadata (\"labels\", Assoc !labels) in\n\n  (* The target firmware. *)\n  let bootloader =\n    match target_firmware with\n    | TargetBIOS ->\n       \"bios\", Assoc []\n    | TargetUEFI ->\n       \"efi\", Assoc [\"persistent\", Bool true] in\n  List.push_back firmware (\"bootloader\", Assoc [bootloader]);\n\n  (* Clock, and eventually utc vs localtime.  We could include\n   * this for Linux, but for now only Windows really needs it.\n   *)\n  if inspect.i_type = \"windows\" then (\n    List.push_back resources (\n      \"clock\", Assoc [\n        \"timer\", Assoc [\n          \"hpet\", Assoc [ \"present\", Bool false ];\n          \"hyperv\", Assoc [];\n          \"pit\", Assoc [ \"tickPolicy\", String \"delay\" ];\n          \"rtc\", Assoc [ \"tickPolicy\", String \"catchup\" ];\n        ];\n        (* XXX Note that we may need to set \"localtime\" here\n         * depending on guestcaps.gcaps_rtc_utc.  However that\n         * requires the following PR to be merged in Kubevirt:\n         * https://github.com/kubevirt/kubevirt/pull/9587\n         *)\n        \"utc\", Assoc []\n      ]\n    )\n  );\n\n  (* XXX genid *)\n\n  (* Memory. *)\n  let memory_str = sprintf \"%LdMi\" (source.s_memory /^ 1024_L /^ 1024_L) in\n  List.push_back resources (\"requests\", Assoc [\"memory\", String memory_str]);\n\n  (* Machine features. *)\n  let features = List.map (fun name -> name, Assoc []) source.s_features in\n  List.push_back resources (\"features\", Assoc features);\n\n  (* # vCPUs. XXX vendor, model, topology *)\n  (match source.s_cpu_model with\n   | None -> ()\n   | Some model -> List.push_back cpu (\"model\", String model)\n  );\n  (match source.s_cpu_topology with\n   | None ->\n      List.push_back cpu (\"cores\", Int source.s_vcpu);\n   | Some { s_cpu_sockets; s_cpu_cores; s_cpu_threads } ->\n      List.push_back_list cpu [\n         \"sockets\", Int s_cpu_sockets;\n         \"cores\", Int s_cpu_cores;\n         \"thread\", Int s_cpu_threads\n      ]\n  );\n\n  (* Display.\n   *\n   * Kubevirt has only \"AutoattachGraphicsDevice\" under devices, and\n   * it is very limited in how it behaves.  However it is the default\n   * so we don't need to do anything special.\n   * See also:\n   * https://github.com/kubevirt/kubevirt/blob/cecea2696cdc63154e3540252ef44161378bee2e/pkg/virt-launcher/virtwrap/converter/converter.go#L1915-L1977\n   *)\n\n  (* Add a sound device.  Kubevirt only supports ich9 or ac97. *)\n  (match source.s_sound with\n   | Some { s_sound_model = (AC97|ICH9) as model } ->\n      let model =\n        match model with AC97 -> \"ac97\" | ICH9 -> \"ich9\" | _ -> assert false in\n      List.push_back devices\n        (\"sound\", Assoc [ \"name\", String \"sound\"; \"model\", String model ])\n   | _ -> ()\n  );\n\n  (* Add an RNG if the guest has virtio_rng. *)\n  if guestcaps.gcaps_virtio_rng then\n    List.push_back devices (\"rng\", Assoc []);\n\n  (* Use virtio transitional for ancient guests. *)\n  if not guestcaps.gcaps_virtio_1_0 then\n    List.push_back devices (\"useVirtioTransitional\", Bool true);\n\n  (* XXX guestcaps: balloon, vsock\n   * Kubevirt has \"autoattachMemBalloon\", but it's the default.\n   * Kubevirt has \"autoattachVSOCK\".  It defaults to false, but\n   * it might be better to opt in rather than adding this just\n   * because the guest has a driver.\n   *)\n\n  (* We're using local (\"host\") disks here which is not realistic. *)\n  Array.iter (\n    function\n    | BusSlotEmpty ->\n       (* XXX How to place devices on the bus? *) ()\n    | BusSlotDisk d ->\n       let disk_id = sprintf \"disk-%d\" d.s_disk_id in\n       let boot_order =\n         match target_boot_device with\n         | None -> d.s_disk_id + 1\n         | Some disk_index when disk_index = d.s_disk_id -> 1\n         | Some _ -> d.s_disk_id + 2 in\n       let disk = Assoc [\n         \"disk\", Assoc [\"bus\", String \"virtio\"];\n         \"bootOrder\", Int boot_order;\n         \"name\", String disk_id\n       ] in\n       List.push_back disks disk;\n       let vol = Assoc [\n         \"hostDisk\", Assoc [\n           \"path\", String (outdisk_name d.s_disk_id);\n           \"type\", String \"Disk\";\n         ];\n         \"name\", String disk_id\n       ] in\n       List.push_back volumes vol\n    | BusSlotRemovable _ ->\n       (* XXX removables *) ()\n  ) target_buses.target_virtio_blk_bus;\n\n  (* XXX ide, scsi, floppy *)\n\n  (* Interfaces and networks. *)\n  let interfaces =\n    List.map (\n      fun { s_mac = mac; s_nic_model = model;\n            s_vnet_type = vnet_type; s_vnet = vnet } ->\n        let nic = ref [] in\n        List.push_back nic (\"name\", String (\"net_\" ^ vnet));\n        (match vnet_type with\n         | Bridge -> List.push_back nic (\"bridge\", Assoc [])\n         | Network -> List.push_back nic (\"masquerade\", Assoc [])\n        );\n        (match mac with\n         | Some mac -> List.push_back nic (\"macAddress\", String mac)\n         | None -> ()\n        );\n        (match model with\n         | Some Source_virtio_net ->\n            List.push_back nic (\"model\", String \"virtio\")\n         | Some Source_e1000 ->\n            List.push_back nic (\"model\", String \"e1000\")\n         | Some Source_rtl8139 ->\n            List.push_back nic (\"model\", String \"rtl8139\")\n         | Some Source_other_nic other ->\n            List.push_back nic (\"model\", String other)\n         | None -> ()\n        );\n        Assoc !nic\n    ) target_nics in\n  let networks =\n    List.map (\n      fun { s_vnet_type = vnet_type; s_vnet = vnet } ->\n        Assoc [ \"networkName\", String vnet; \"name\", String (\"net_\" ^ vnet) ]\n    ) target_nics in\n\n  (* Create the final document. *)\n  if !disks <> [] then\n    List.push_back devices (\"disks\", List !disks);\n  if interfaces <> [] then\n    List.push_back devices (\"interfaces\", List interfaces);\n  let domain = ref [] in\n  List.push_back domain (\"firmware\", Assoc !firmware);\n  List.push_back domain (\"resources\", Assoc !resources);\n  List.push_back domain (\"cpu\", Assoc !cpu);\n  if !devices <> [] then\n    List.push_back domain (\"devices\", Assoc !devices);\n\n  let spec = ref [] in\n  List.push_back spec (\"domain\", Assoc !domain);\n  if !volumes <> [] then\n    List.push_back spec (\"volumes\", List !volumes);\n  if networks <> [] then\n    List.push_back spec (\"networks\", List networks);\n  List.push_back spec (\"terminationGracePeriodSeconds\", Int 0);\n\n  let body = [\n    \"#\", String generated_by;\n    \"apiVersion\", String \"kubevirt.io/v1\";\n    \"kind\", String \"VirtualMachine\";\n    \"metadata\", Assoc !metadata;\n    \"spec\", Assoc [\"template\", Assoc [\"spec\", Assoc !spec]];\n  ] in\n\n  (* Return the YAML document. *)\n  Doc (Assoc body)\n"
  },
  {
    "path": "output/create_kubevirt_yaml.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Create kubevirt YAML for [-o kubevirt] mode. *)\n\nval create_kubevirt_yaml : Types.source ->\n                           Types.inspect -> Types.target_meta ->\n                           (int -> string) -> string -> string ->\n                           YAML.doc\n(** [create_kubevirt_yaml source inspect target_meta\n    target_features outdisk_map output_format output_name]\n    creates the Kubevirt machine description YAML document. *)\n"
  },
  {
    "path": "output/create_libvirt_xml.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\n\nopen Std_utils\nopen C_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\nopen DOM\n\nlet string_set_of_list =\n  List.fold_left (fun set x -> StringSet.add x set) StringSet.empty\n\nlet get_osinfo_id inspect =\n  match Libosinfo_utils.get_os_by_short_id inspect.i_osinfo\n  with\n  | Some os ->\n    Some(os#get_id ())\n  | None ->\n    warning (f_\"get_osinfo_id: unknown guest operating system: %s\")\n      inspect.i_osinfo;\n    None\n\nlet create_libvirt_xml ?pool source inspect\n      { guestcaps; target_buses; target_nics; target_firmware;\n        target_boot_device }\n      target_features domcaps_features outdisk_name output_format output_name =\n  debug \"info: domcaps: %s\" (string_of_domcaps domcaps_features);\n\n  (* The main body of the libvirt XML document. *)\n  let body = ref [] in\n\n  List.push_back_list body [\n    Comment generated_by;\n    e \"name\" [] [PCData (Utils.sanitize_slash output_name)];\n  ];\n\n  (match source.s_genid with\n   | None -> ()\n   | Some genid -> List.push_back body (e \"genid\" [] [PCData genid])\n  );\n\n  (match get_osinfo_id inspect with\n   | None -> ()\n   | Some osinfo_id ->\n     List.push_back_list body [\n       e \"metadata\" [] [\n         e \"libosinfo:libosinfo\" [\"xmlns:libosinfo\", \"http://libosinfo.org/xmlns/libvirt/domain/1.0\"] [\n           e \"libosinfo:os\" [\"id\", osinfo_id] [];\n         ];\n       ];\n     ];\n  );\n\n  let memory_k = source.s_memory /^ 1024L in\n  List.push_back_list body [\n    e \"memory\" [\"unit\", \"KiB\"] [PCData (Int64.to_string memory_k)];\n    e \"currentMemory\" [\"unit\", \"KiB\"] [PCData (Int64.to_string memory_k)];\n    e \"vcpu\" [] [PCData (string_of_int source.s_vcpu)]\n  ];\n\n  let cpu_attrs = ref []\n  and cpu = ref [] in\n\n  (match source.s_cpu_model with\n   | None ->\n      List.push_back cpu_attrs (\"mode\", \"host-model\");\n   | Some model ->\n      List.push_back cpu_attrs (\"match\", \"minimum\");\n      if model = \"qemu64\" then\n        List.push_back cpu_attrs (\"check\", \"none\");\n      (match source.s_cpu_vendor with\n       | None -> ()\n       | Some vendor ->\n          List.push_back cpu (e \"vendor\" [] [PCData vendor])\n      );\n      List.push_back cpu (e \"model\" [\"fallback\", \"allow\"] [PCData model])\n  );\n  (match source.s_cpu_topology with\n   | None -> ()\n   | Some { s_cpu_sockets; s_cpu_cores; s_cpu_threads } ->\n      let topology_attrs = [\n        \"sockets\", string_of_int s_cpu_sockets;\n        \"cores\", string_of_int s_cpu_cores;\n        \"threads\", string_of_int s_cpu_threads;\n      ] in\n      List.push_back cpu (e \"topology\" topology_attrs [])\n  );\n\n  List.push_back_list body [ e \"cpu\" !cpu_attrs !cpu ];\n\n  (* We have the machine features of the guest when it was on the\n   * source hypervisor (source.s_features).  We have the set of\n   * hypervisor features supported by the target (target_features).\n   * Combine these into a final list of features.\n   *)\n  let features = string_set_of_list source.s_features in\n  let features = StringSet.add \"acpi\" features in\n  let target_features = string_set_of_list target_features in\n\n  (* Make sure we don't add any features which are not supported by\n   * the target hypervisor.\n   *)\n  let features = StringSet.inter(*section*) features target_features in\n\n  (* But if the target supports apic or pae then we should add them\n   * anyway (old virt-v2v did this).\n   *)\n  let force_features = string_set_of_list [\"apic\"; \"pae\"] in\n  let force_features =\n    StringSet.inter(*section*) force_features target_features in\n  let features = StringSet.union features force_features in\n\n  let features = List.sort compare (StringSet.elements features) in\n\n  List.push_back_list body [\n    e \"features\" [] (List.map (fun s -> e s [] []) features);\n  ];\n\n  (* The <os> section subelements. *)\n  let os_section =\n    let os = ref [] in\n\n    let firmware_attribute =\n      match target_firmware with\n      | TargetBIOS -> []\n      | TargetUEFI -> [ \"firmware\", \"efi\" ] in\n\n    let () =\n      match target_firmware with\n      | TargetBIOS -> ()\n      | TargetUEFI ->\n         (* The UEFI secureboot setting is sort of adjacent to if\n          * the full secure boot feature is enabled, but it's what\n          * we have.\n          * https://libvirt.org/kbase/secureboot.html\n          *)\n         let sb = source.s_uefi_secureboot in\n         let enrolled_keys =\n           if sb then\n             [e \"feature\" [\"name\", \"enrolled-keys\"; \"enabled\", \"yes\"] []]\n           else [] in\n         let firmware_features =\n           (e \"feature\" [\"name\", \"secure-boot\";\n                         \"enabled\", if sb then \"yes\" else \"no\"] []) ::\n             enrolled_keys in\n         List.push_back os (e \"firmware\" [] firmware_features) in\n\n    let machine =\n      match guestcaps.gcaps_machine with\n      | I440FX -> \"pc\"\n      | Q35 -> \"q35\"\n      | Virt -> \"virt\" in\n\n    List.push_back os\n                   (e \"type\" [\"arch\", guestcaps.gcaps_arch;\n                              \"machine\", machine]\n                      [PCData \"hvm\"]);\n\n    e \"os\" firmware_attribute !os in\n\n  (* The <clock> section. *)\n  let clock_section =\n    let offset = if guestcaps.gcaps_rtc_utc then \"utc\" else \"localtime\" in\n    e \"clock\" [ \"offset\", offset ] [] in\n\n  List.push_back_list body [\n    os_section;\n    clock_section;\n\n    e \"on_poweroff\" [] [PCData \"destroy\"];\n    e \"on_reboot\" [] [PCData \"restart\"];\n    e \"on_crash\" [] [PCData \"restart\"];\n  ];\n\n  (* The devices. *)\n  let devices = ref [] in\n\n  (* This will affect all of the virtio devices (if any). *)\n  let virtio_transitional =\n    guestcaps.gcaps_machine = Q35 && not guestcaps.gcaps_virtio_1_0 in\n  let virtio_model =\n    if virtio_transitional then \"virtio-transitional\" else \"virtio\" in\n\n  (* Fixed and removable disks. *)\n  let () =\n    let make_disk bus_name ?(viotrans = false) drive_prefix i = function\n    | BusSlotEmpty -> Comment (sprintf \"%s slot %d is empty\" bus_name i)\n\n    | BusSlotDisk d ->\n       let outdisk = outdisk_name d.s_disk_id in\n\n       let boot_order =\n         match target_boot_device with\n         | None ->\n            (* No known boot device, just number them sequentially. *)\n            i+1\n         | Some disk_index when disk_index = i ->\n            (* For the boot disk, use order 1. *)\n            1\n         | Some _ ->\n            (* For the others number them sequentially starting at 2. *)\n            i+2 in\n\n        e \"disk\" (\n          [\n            \"type\", if pool = None then \"file\" else \"volume\";\n            \"device\", \"disk\"\n          ] @ if (viotrans) then [ \"model\", \"virtio-transitional\" ] else []\n        ) [\n          e \"driver\" [\n            \"name\", \"qemu\";\n            \"type\", output_format;\n          ] [];\n          (match pool with\n          | None ->\n            e \"source\" [\n              \"file\", outdisk;\n            ] []\n          | Some pool ->\n            e \"source\" [\n              \"pool\", pool;\n              \"volume\", Filename.basename outdisk;\n            ] []\n          );\n          e \"target\" [\n            \"dev\", drive_prefix ^ drive_name i;\n            \"bus\", bus_name;\n          ] [];\n          e \"boot\" [ \"order\", string_of_int boot_order ] [];\n        ]\n\n    | BusSlotRemovable { s_removable_type = CDROM } ->\n        e \"disk\" [ \"device\", \"cdrom\"; \"type\", \"file\" ] [\n          e \"driver\" [ \"name\", \"qemu\"; \"type\", \"raw\" ] [];\n          e \"target\" [\n            \"dev\", drive_prefix ^ drive_name i;\n            \"bus\", bus_name\n          ] []\n        ]\n\n    | BusSlotRemovable { s_removable_type = Floppy } ->\n        e \"disk\" [ \"device\", \"floppy\"; \"type\", \"file\" ] [\n          e \"driver\" [ \"name\", \"qemu\"; \"type\", \"raw\" ] [];\n          e \"target\" [\n            \"dev\", drive_prefix ^ drive_name i;\n          ] []\n        ]\n    in\n\n    List.push_back_list devices\n      (List.mapi (make_disk \"virtio\" ~viotrans:virtio_transitional \"vd\")\n                 (Array.to_list target_buses.target_virtio_blk_bus));\n    let ide_disks =\n      match guestcaps.gcaps_machine with\n      | I440FX ->\n         List.mapi (make_disk \"ide\" \"hd\")\n                   (Array.to_list target_buses.target_ide_bus)\n      | Q35 ->\n         List.mapi (make_disk \"sata\" \"sd\")\n                   (Array.to_list target_buses.target_ide_bus)\n      | Virt ->\n         (* mach_virt doesn't support legacy devices like IDE and SATA,\n          * so target_ide_bus must be empty, otherwise we give a warning.\n          *)\n         if Array.length target_buses.target_ide_bus > 0 then\n           warning \"machine type virt does not support IDE and SATA legacy \\\n                    devices, some legacy devices of this guest have been \\\n                    dropped from the libvirt output\";\n         [] in\n    List.push_back_list devices ide_disks;\n    List.push_back_list devices\n      (List.mapi (make_disk \"scsi\" \"sd\")\n                 (Array.to_list target_buses.target_scsi_bus));\n    let floppy_devices = Array.to_list target_buses.target_floppy_bus in\n    if not (List.for_all (function BusSlotEmpty -> true | _ -> false) floppy_devices) then (\n      if not domcaps_features.supports_floppy then\n        warning (f_\"target hypervisor does not support floppy devices, \\\n                    but floppy devices were found in the source guest\")\n      else\n        List.push_back_list devices\n          (List.mapi (make_disk \"floppy\" \"fd\") floppy_devices)\n    ) in\n\n  let nics =\n    let net_model =\n      match guestcaps.gcaps_net_bus with\n      | Virtio_net -> virtio_model | E1000 -> \"e1000\" | RTL8139 -> \"rtl8139\" in\n    List.map (\n      fun { s_mac = mac; s_vnet_type = vnet_type; s_vnet = vnet } ->\n        let vnet_type_str =\n          match vnet_type with\n          | Bridge -> \"bridge\" | Network -> \"network\" in\n\n        let nic =\n          let children = [\n            e \"source\" [ vnet_type_str, vnet ] [];\n            e \"model\" [ \"type\", net_model ] [];\n          ] in\n          e \"interface\" [ \"type\", vnet_type_str ] children in\n\n        (match mac with\n        | None -> ()\n        | Some mac ->\n          append_child (e \"mac\" [ \"address\", mac ] []) nic);\n\n        nic\n    ) target_nics in\n  List.push_back_list devices nics;\n\n  (* Same as old virt-v2v, we always add a display here even if it was\n   * missing from the old metadata.\n   *)\n  let video =\n    let video_model =\n      e \"model\" [ \"type\", \"vga\"; \"vram\", \"16384\" ] [] in\n    append_attr (\"heads\", \"1\") video_model;\n    e \"video\" [] [ video_model ] in\n  List.push_back devices video;\n\n  let graphics =\n    match source.s_display with\n    | None ->\n       e \"graphics\" [ \"type\", \"vnc\"; \"autoport\", \"yes\" ] []\n    | Some { s_display_type = Window } ->\n       e \"graphics\" [ \"type\", \"sdl\" ] []\n    | Some { s_display_type = VNC; s_port = Some p } ->\n       e \"graphics\" [ \"type\", \"vnc\"; \"port\", string_of_int p ] []\n    | Some { s_display_type = VNC; s_port = None } ->\n       e \"graphics\" [ \"type\", \"vnc\"; \"autoport\", \"yes\" ] []\n    | Some { s_display_type = Spice; s_port = Some p } ->\n       e \"graphics\" [ \"type\", \"spice\"; \"port\", string_of_int p ] []\n    | Some { s_display_type = Spice; s_port = None } ->\n       e \"graphics\" [ \"type\", \"spice\"; \"autoport\", \"yes\" ] [] in\n\n  (match source.s_display with\n   | Some { s_keymap = Some km } -> append_attr (\"keymap\", km) graphics\n   | Some { s_keymap = None } | None -> ());\n  (match source.s_display with\n   | Some { s_password = Some pw } -> append_attr (\"passwd\", pw) graphics\n   | Some { s_password = None } | None -> ());\n  (match source.s_display with\n   | Some { s_listen = listen } ->\n      (match listen with\n       | LNoListen -> ()\n       | LAddress a ->\n          let sub = e \"listen\" [ \"type\", \"address\"; \"address\", a ] [] in\n          append_child sub graphics\n       | LNetwork n ->\n          let sub = e \"listen\" [ \"type\", \"network\"; \"network\", n ] [] in\n          append_child sub graphics\n       | LSocket s ->\n          let attrs = [ \"type\", \"socket\" ] @\n            match s with None -> [] | Some s -> [ \"socket\", s ] in\n          let sub = e \"listen\" attrs [] in\n          append_child sub graphics\n       | LNone ->\n          let sub = e \"listen\" [ \"type\", \"none\" ] [] in\n          append_child sub graphics\n      )\n   | None -> ());\n  List.push_back devices graphics;\n\n  let sound =\n    match source.s_sound with\n    | None -> []\n    | Some { s_sound_model = model } ->\n       if qemu_supports_sound_card model then\n         [ e \"sound\" [ \"model\", string_of_source_sound_model model ] [] ]\n       else\n         [] in\n  List.push_back_list devices sound;\n\n  (* Miscellaneous KVM devices. *)\n  if guestcaps.gcaps_virtio_rng then\n    List.push_back devices (\n      e \"rng\" [\"model\", virtio_model] [\n        (* XXX Using /dev/urandom requires libvirt >= 1.3.4.  Libvirt\n         * was broken before that.\n         *)\n        e \"backend\" [\"model\", \"random\"] [PCData \"/dev/urandom\"]\n      ]\n    );\n  (* For the balloon device, libvirt adds an implicit device\n   * unless we use model='none', hence this:\n   *)\n  List.push_back devices (\n    e \"memballoon\"\n      [\"model\",\n       if guestcaps.gcaps_virtio_balloon then virtio_model else \"none\"]\n      []\n  );\n  if guestcaps.gcaps_isa_pvpanic then\n    List.push_back devices (\n      e \"panic\" [\"model\", \"isa\"] [\n        e \"address\" [\"type\", \"isa\"; \"iobase\", \"0x505\"] []\n      ]\n    );\n  if guestcaps.gcaps_virtio_socket then\n    List.push_back devices (e \"vsock\" [\"model\", virtio_model] []);\n\n  (* Standard devices added to every guest. *)\n  List.push_back_list devices [\n    e \"input\" [\"type\", \"tablet\"; \"bus\", \"usb\"] [];\n    e \"input\" [\"type\", \"mouse\"; \"bus\", \"ps2\"] [];\n    e \"console\" [\"type\", \"pty\"] [];\n  ];\n\n  (* Given that we install the QEMU Guest Agent for both Linux and Windows\n   * guests unconditionally, create the virtio-serial device that's needed for\n   * communication between the host and the agent.\n   *)\n  List.push_back_list devices [\n    e \"controller\" [\"type\", \"virtio-serial\"; \"model\", virtio_model] [];\n    e \"channel\" [\"type\", \"unix\"] [\n      e \"target\" [\"type\", \"virtio\"; \"name\", \"org.qemu.guest_agent.0\"] []\n    ]\n  ];\n\n  List.push_back_list body [\n    e \"devices\" [] !devices;\n  ];\n\n  let doc : doc =\n    doc \"domain\" [\n      \"type\", \"kvm\";                (* Always assume target is kvm? *)\n    ] !body in\n\n  doc\n"
  },
  {
    "path": "output/create_libvirt_xml.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Create libvirt XML for [-o libvirt] and [-o local]. *)\n\nval create_libvirt_xml : ?pool:string -> Types.source ->\n                         Types.inspect -> Types.target_meta ->\n                         string list -> Types.domcaps_features -> (int -> string) -> string -> string ->\n                         DOM.doc\n(** [create_libvirt_xml ?pool source inspect target_meta\n    target_features domcaps_features outdisk_map output_format output_name]\n    creates the final libvirt XML for the output hypervisor. *)\n"
  },
  {
    "path": "output/embed.sh",
    "content": "#!/bin/bash -\n# Embed code or other content into an OCaml file.\n# Copyright (C) 2018 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Embed code or other content into an OCaml file.\n#\n# It is embedded into a string.  As OCaml string literals have virtually\n# no restrictions on length or content we only have to escape double\n# quotes for backslash characters.\n\nif [ $# -ne 3 ]; then\n    echo \"embed.sh identifier input output\"\n    exit 1\nfi\n\nset -e\nset -u\n\nident=\"$1\"\ninput=\"$2\"\noutput=\"$3\"\n\nrm -f \"$output\" \"$output\"-t\n\nexec >\"$output\"-t\n\necho \"(* Generated by embed.sh from $input *)\"\necho\necho let \"$ident\" = '\"'\nsed -e 's/\\([\"\\]\\)/\\\\\\1/g' < \"$input\"\necho '\"'\n\nchmod -w \"$output\"-t\nmv \"$output\"-t \"$output\"\n"
  },
  {
    "path": "output/openstack_image_properties.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(* Convert metadata to a list of OpenStack image properties. *)\n\nopen Printf\n\nopen Std_utils\n\nopen Types\n\nlet create source inspect { target_buses; guestcaps; target_firmware } =\n  let properties = ref [] in\n\n  List.push_back_list properties [\n    \"architecture\", guestcaps.gcaps_arch;\n    \"hypervisor_type\", \"kvm\";\n    \"vm_mode\", \"hvm\";\n\n    \"hw_disk_bus\",\n    (match guestcaps.gcaps_block_bus with\n     | Virtio_blk -> \"virtio\"\n     | Virtio_SCSI -> \"scsi\"\n     | IDE -> \"ide\");\n    \"hw_vif_model\",\n    (match guestcaps.gcaps_net_bus with\n     | Virtio_net -> \"virtio\"\n     | E1000 -> \"e1000\"\n     | RTL8139 -> \"rtl8139\");\n    \"hw_video_model\", \"vga\";\n    \"hw_machine_type\",\n    (match guestcaps.gcaps_machine with\n     | I440FX -> \"pc\"\n     | Q35 -> \"q35\"\n     | Virt -> \"virt\");\n\n    \"os_type\", inspect.i_type;\n    \"os_distro\",\n    (match inspect.i_distro with\n     (* https://docs.openstack.org/python-glanceclient/latest/cli/property-keys.html *)\n     | \"archlinux\" -> \"arch\"\n     | \"sles\" -> \"sled\"\n     | x -> x (* everything else is the same in libguestfs and OpenStack*)\n    )\n  ];\n\n  (match source.s_cpu_topology with\n   | None ->\n      List.push_back properties (\"hw_cpu_sockets\", \"1\");\n      List.push_back properties (\"hw_cpu_cores\", string_of_int source.s_vcpu);\n   | Some { s_cpu_sockets = sockets; s_cpu_cores = cores;\n            s_cpu_threads = threads } ->\n      List.push_back properties (\"hw_cpu_sockets\", string_of_int sockets);\n      List.push_back properties (\"hw_cpu_cores\", string_of_int cores);\n      List.push_back properties (\"hw_cpu_threads\", string_of_int threads);\n  );\n\n  (match guestcaps.gcaps_block_bus with\n   | Virtio_SCSI ->\n      List.push_back properties (\"hw_scsi_model\", \"virtio-scsi\")\n   | Virtio_blk | IDE -> ()\n  );\n\n  (match inspect.i_major_version, inspect.i_minor_version with\n   | 0, 0 -> ()\n   | x, 0 -> List.push_back properties (\"os_version\", string_of_int x)\n   | x, y -> List.push_back properties (\"os_version\", sprintf \"%d.%d\" x y)\n  );\n\n  if guestcaps.gcaps_virtio_rng then\n    List.push_back properties (\"hw_rng_model\", \"virtio\");\n  (* XXX Neither memory balloon nor pvpanic are supported by\n   * Glance at this time.\n   *)\n\n  (match target_firmware with\n   | TargetBIOS -> ()\n   | TargetUEFI ->\n      List.push_back properties (\"hw_firmware_type\", \"uefi\")\n  );\n\n  !properties\n"
  },
  {
    "path": "output/openstack_image_properties.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Convert metadata to a list of OpenStack image properties.\n\n    These properties are suitable for use by Glance or Cinder.\n    Note for Cinder there is a difference between properties and\n    image properties (this module implements the latter). *)\n\nval create : Types.source -> Types.inspect -> Types.target_meta ->\n             (string * string) list\n(** [create source target_buses guestcaps inspect target_firmware]\n    translates the metadata into a list of image properties suitable\n    for OpenStack.\n\n    The returned list is a set of key=value pairs which can be passed\n    to Glance (using [--property key=value]) or to Cinder.  For\n    Cinder note that you must not use [--property] since that sets\n    volume properties which are different from image properties.\n    Instead use [openstack volume set --image-property key=value ...]. *)\n"
  },
  {
    "path": "output/output.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen C_utils\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\n\ntype options = {\n  output_alloc : Types.output_allocation;\n  output_conn : string option;\n  output_format : string;\n  output_options : (string * string) list;\n  output_name : string option;\n  output_password : string option;\n  output_storage : string option;\n}\n\nmodule type OUTPUT = sig\n  type poptions\n  type t\n  val to_string : options -> string\n  val query_output_options : unit -> unit\n  val parse_options : options -> Types.source -> poptions\n  val setup : string -> poptions -> Types.source -> NBD_URI.t list ->\n              t * NBD_URI.t list\n  val finalize : string -> poptions -> t -> NBD_URI.t list ->\n                 Types.source -> Types.inspect -> Types.target_meta ->\n                 unit\n  val request_size : int option\nend\n\nlet error_option_cannot_be_used_in_output_mode mode opt =\n  error (f_\"-o %s: %s option cannot be used in this output mode\") mode opt\n\nlet get_disk_sizes =\n  List.map (\n    fun uri ->\n      let uri = NBD_URI.to_uri uri in\n      Utils.with_nbd_connect_uri ~uri NBD.get_size\n  )\n\nlet error_if_disk_count_gt input_disks n =\n  if List.length input_disks > n then\n    error (f_\"this output module doesn't support copying more than %d disks\") n\n\ntype on_exit_kill = Kill | KillAndWait\n\nlet output_to_local_file ?name\n      ?(changeuid = fun f -> f ())\n      ?(compressed = false)\n      ?(create = true)\n      ?(on_exit_kill = Kill)\n      output_alloc output_format filename size socket =\n  (* Check nbdkit is installed and has the required plugin. *)\n  if not (Nbdkit.is_installed ()) then\n    error (f_\"nbdkit is not installed or not working.  It is required \\\n              to use ‘-o disk’.\");\n  if not (Nbdkit.probe_plugin \"file\") then\n    error (f_\"nbdkit-file-plugin is not installed or not working\");\n\n  if compressed then (\n    (* Only allow compressed with -of qcow2. *)\n    if output_format <> \"qcow2\" then\n      error (f_\"‘-oo compressed’ is only allowed when the output format \\\n                is a local qcow2-format file, i.e. ‘-of qcow2’\")\n  );\n\n  if create then (\n    let g = open_guestfs () in\n    let preallocation =\n      match output_alloc with\n      | Preallocated -> Some \"full\"\n      | Sparse -> None in\n    changeuid (\n      fun () -> g#disk_create ?preallocation filename output_format size\n    )\n  );\n\n  let pid =\n    match output_format with\n    | \"raw\" ->\n       let cmd = Nbdkit.create ?name \"file\" in\n       Nbdkit.add_arg cmd \"file\" filename;\n       Nbdkit.reduce_memory_pressure cmd;\n       if verbose () then Nbdkit.add_filter_if_available cmd \"count\";\n       let _, pid = Nbdkit.run_unix socket cmd in\n       pid\n\n    | \"qcow2\" ->\n       let cmd =\n         if compressed then (\n           let qemu_quote str = String.replace str \",\" \",,\" in\n           let image_opts = [ \"driver=compress\";\n                              \"file.driver=qcow2\";\n                              \"file.file.driver=file\";\n                              \"file.file.filename=\" ^ qemu_quote filename ] in\n           let image_opts = String.concat \",\" image_opts in\n           let cmd = QemuNBD.create image_opts in\n           QemuNBD.set_image_opts cmd true;\n           cmd\n         )\n         else (* not compressed *) (\n           let cmd = QemuNBD.create filename in\n           QemuNBD.set_format cmd (Some \"qcow2\");\n           cmd\n         ) in\n       QemuNBD.set_snapshot cmd false;\n       let _, pid = QemuNBD.run_unix socket cmd in\n       pid\n\n    | _ ->\n       error (f_\"output mode only supports raw or qcow2 format (format: %s)\")\n         output_format in\n\n  match on_exit_kill with\n  | Kill ->\n    (* Kill the NBD server on exit.  (For nbdkit we use --exit-with-parent\n     * but it's not supported everywhere).\n     *)\n    On_exit.kill pid\n\n  | KillAndWait ->\n     On_exit.f (\n       fun () ->\n         kill pid Sys.sigterm;\n         (* Errors from the NBD server don't matter.  On successful\n          * completion we've already committed the data to disk.\n          *)\n         ignore (waitpid [] pid)\n     )\n\nlet disk_name name i =\n  let name = Utils.sanitize_slash name in\n  sprintf \"%s-sd%s\" name (drive_name i)\n\nlet disk_path os name i =\n  let outdisk = sprintf \"%s/%s\" os (disk_name name i) in\n  absolute_path outdisk\n\nlet create_local_output_disks dir\n      ?(compressed = false)\n      ?(create = true)\n      output_alloc output_format output_name output_storage\n      input_disks =\n  let input_sizes = get_disk_sizes input_disks in\n\n  let output_disk_names =\n    List.mapi (fun i _ -> disk_path output_storage output_name i) input_disks in\n\n  (* In the special case where we will write to uncompressed raw\n   * local files, create a single nbdkit instance using the 'dir' option\n   * and choose which file to write using the export name.\n   *)\n  if not compressed && output_format = \"raw\" then (\n    (* Check nbdkit is installed and has the required plugin. *)\n    if not (Nbdkit.is_installed ()) then\n      error (f_\"nbdkit is not installed or not working.  It is required \\\n                to use ‘-o disk’.\");\n    if not (Nbdkit.probe_plugin \"file\") then\n      error (f_\"nbdkit-file-plugin is not installed or not working\");\n\n    (* We still have to create the output disks. *)\n    if create then (\n      let g = open_guestfs () in\n      let preallocation =\n        match output_alloc with\n        | Preallocated -> Some \"full\"\n        | Sparse -> None in\n      List.iter (\n        fun (size, filename) ->\n          g#disk_create ?preallocation filename output_format size;\n\n          (* We've had issues with there not being enough space to write\n           * the disk image.  Run df on the output filename.  df follows\n           * symlinks and reports the space on the filesystem.  But don't\n           * fail here if df cannot be run.\n           *)\n          if verbose () then (\n            let cmd = sprintf \"df %s 1>&2\" (quote filename) in\n            ignore (Sys.command cmd)\n          )\n      ) (List.combine input_sizes output_disk_names)\n    );\n\n    let socket = sprintf \"%s/out0\" dir in\n    On_exit.unlink socket;\n\n    (* Create the single nbdkit-file-plugin instance. *)\n    let cmd = Nbdkit.create ~name:\"out\" \"file\" in\n    Nbdkit.add_arg cmd \"dir\" output_storage;\n    Nbdkit.reduce_memory_pressure cmd;\n    if verbose () then Nbdkit.add_filter_if_available cmd \"count\";\n    let _, pid = Nbdkit.run_unix socket cmd in\n    On_exit.kill pid;\n\n    (* Use NBD export names to select the right disk to write. *)\n    let uris =\n      List.mapi (\n        fun i _ ->\n          let export = disk_name output_name i in\n          NBD_URI.Unix (socket, Some export)\n      ) input_disks in\n\n    uris\n  )\n  else (\n    (* Not the special case, use {!output_to_local_file} on each disk. *)\n    List.mapi (\n      fun i (size, outdisk) ->\n        let sockname = sprintf \"out%d\" i in\n        let socket = sprintf \"%s/%s\" dir sockname in\n        On_exit.unlink socket;\n\n        (* Create the actual output disk. *)\n        output_to_local_file ~name:sockname ~compressed ~create\n          output_alloc output_format\n          outdisk size socket;\n\n        NBD_URI.Unix (socket, None)\n    ) (List.combine input_sizes output_disk_names)\n  )\n"
  },
  {
    "path": "output/output.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\ntype options = {\n  output_alloc : Types.output_allocation;\n  output_conn : string option;\n  output_format : string;\n  output_options : (string * string) list;\n  output_name : string option;\n  output_password : string option;\n  output_storage : string option;\n}\n\nmodule type OUTPUT = sig\n  type poptions\n  (** Opaque parsed output options. *)\n\n  type t\n  (** Opaque data that the output mode needs to pass from\n      {!setup} to {!finalize}. *)\n\n  val to_string : options -> string\n  (** [to_string options] converts the destination to a printable\n      string (for messages). *)\n\n  val query_output_options : unit -> unit\n  (** When the user passes [-oo ?] this is used to print help. *)\n\n  val parse_options : options -> Types.source -> poptions\n  (** [parse_options source options] should check and parse the output\n      options passed on the command line.  The return value {!poptions}\n      stores the parsed information and is passed to both\n      {!setup} and {!finalize} methods. *)\n\n  val setup : string -> poptions -> Types.source -> NBD_URI.t list ->\n              t * NBD_URI.t list\n  (** [setup dir poptions source input_disks]\n\n      Set up the output mode.  Sets up a disk pipeline\n      for each output disk, and returns the list of output disks. *)\n\n  val finalize : string -> poptions -> t -> NBD_URI.t list ->\n                 Types.source -> Types.inspect -> Types.target_meta ->\n                 unit\n  (** [finalize dir poptions t output_disks inspect target_meta]\n\n      Finalizes the conversion and writes metadata. *)\n\n  val request_size : int option\n  (** Returns an optional {i hint} about the NBD request size that\n      optimizes performance.  Note that the copy program may ignore\n      this.  Use NBD block size options for enforcible limits. *)\nend\n\n(** Helper functions for output modes. *)\n\nval error_option_cannot_be_used_in_output_mode : string -> string -> unit\n(** [error_option_cannot_be_used_in_output_mode mode option]\n    prints error message that option cannot be used in this output mode. *)\n\nval get_disk_sizes : NBD_URI.t list -> int64 list\n(** Call NBD.get_size on each input disk. *)\n\nval error_if_disk_count_gt : NBD_URI.t list -> int -> unit\n(** This function lets an output module enforce a maximum disk count.\n\n    [error_if_disk_count_gt input_disks n] checks whether the domain\n    has more than [n] disks that need to be copied. *)\n\nval create_local_output_disks : string ->\n                                ?compressed:bool ->\n                                ?create:bool ->\n                                Types.output_allocation ->\n                                string -> string -> string ->\n                                NBD_URI.t list ->\n                                NBD_URI.t list\n(** When an output mode wants to create one output disk per\n    input disk, using the names \"<output_storage>/<output_name>-sdX\",\n    this function does it all, taking a list of input NBD URIs and\n    returning a list of output NBD URIs.\n\n    For anything more complicated, use {!output_to_local_file} instead. *)\n\ntype on_exit_kill = Kill | KillAndWait\n\nval output_to_local_file : ?name:string ->\n                           ?changeuid:((unit -> unit) -> unit) ->\n                           ?compressed:bool ->\n                           ?create:bool ->\n                           ?on_exit_kill:on_exit_kill ->\n                           Types.output_allocation ->\n                           string -> string -> int64 -> string ->\n                           unit\n(** When an output mode wants to create a local file with a\n    particular format (only \"raw\" or \"qcow2\" allowed) then\n    this common function can be used.\n\n    Optional parameter [?on_exit_kill] controls how the NBD server\n    is cleaned up.  The default is {!Kill} which registers an\n    {!On_exit.kill} handler that kills (but does not wait for)\n    the server when virt-v2v exits.  Most callers should use this.\n\n    Setting [~on_exit_kill:KillAndWait] should be used if the NBD\n    server must fully exit before we continue with the rest of\n    virt-v2v shut down.  This is only necessary if some other action\n    (such as unmounting a host filesystem or removing a host device)\n    depends on the NBD server releasing resources. *)\n\nval disk_name : string -> int -> string\n(** Return the sanitized disk name for the i'th disk,\n    eg. 0 => name-sda. *)\n\nval disk_path : string -> string -> int -> string\n(** For [-o disk|qemu], return the output disk name of the i'th disk,\n    eg. 0 => /path/to/name-sda. *)\n"
  },
  {
    "path": "output/output_disk.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\n\nopen Create_libvirt_xml\nopen Output\n\nmodule Disk = struct\n  type poptions = bool * Types.output_allocation * string * string * string\n\n  type t = unit\n\n  let to_string options =\n    \"-o disk\" ^\n      match options.output_storage with\n      | Some os -> \" -os \" ^ os\n      | None -> \"\"\n\n  let query_output_options () =\n    printf (f_\"Output options that can be used with -o disk:\n\n  -oo compressed      Compress the output file (used only with -of qcow2)\n\")\n\n  let parse_options options source =\n    let compressed = ref false in\n    List.iter (\n      function\n      | \"compressed\", \"\" -> compressed := true\n      | \"compressed\", v -> compressed := bool_of_string v\n      | k, _ ->\n         error (f_\"-o disk: unknown output option ‘-oo %s’\") k\n    ) options.output_options;\n\n    if options.output_password <> None then\n      error_option_cannot_be_used_in_output_mode \"local\" \"-op\";\n\n    (* -os must be set to a directory. *)\n    let output_storage =\n      match options.output_storage with\n      | None ->\n         error (f_\"-o disk: output directory was not specified, use '-os /dir'\")\n      | Some d when not (is_directory d) ->\n         error (f_\"-os %s: output directory does not exist or is not a directory\") d\n      | Some d -> d in\n\n    let output_name = Option.value ~default:source.s_name options.output_name in\n\n    !compressed, options.output_alloc, options.output_format,\n    output_name, output_storage\n\n  let setup dir options source input_disks =\n    let compressed, output_alloc, output_format, output_name, output_storage =\n      options in\n\n    let uris =\n      create_local_output_disks dir ~compressed output_alloc output_format\n        output_name output_storage input_disks in\n\n    (), uris\n\n  let finalize dir options () output_disks source inspect target_meta =\n    let _, output_alloc, output_format, output_name, output_storage = options in\n\n    (* We don't know what target features the hypervisor supports, but\n     * assume a common set that libvirt supports.\n     *)\n    let domcaps_features =\n      match target_meta.guestcaps.gcaps_arch with\n      | \"i686\" | \"x86_64\" -> { supports_floppy = true }\n      | _ -> { supports_floppy = false } in\n\n    let target_features =\n      match target_meta.guestcaps.gcaps_arch with\n      | \"i686\" -> [ \"acpi\"; \"apic\"; \"pae\" ]\n      | \"x86_64\" -> [ \"acpi\"; \"apic\" ]\n      | _ -> [] in\n\n    let doc = create_libvirt_xml source inspect target_meta\n                target_features domcaps_features\n                (disk_path output_storage output_name)\n                output_format output_name in\n\n    let file = output_storage // (sanitize_slash output_name) ^ \".xml\" in\n    with_open_out file (fun chan -> DOM.doc_to_chan chan doc);\n\n    if verbose () then (\n      eprintf \"resulting local libvirt XML:\\n\";\n      DOM.doc_to_chan Stdlib.stderr doc;\n      eprintf \"\\n%!\";\n    )\n\n  let request_size = None\nend\n"
  },
  {
    "path": "output/output_disk.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** [-o disk] output mode. *)\n\nmodule Disk : Output.OUTPUT\n"
  },
  {
    "path": "output/output_glance.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\n\nopen Output\n\nmodule Glance = struct\n  type poptions = string * string\n\n  type t = string\n\n  let to_string options = \"-o glance\"\n\n  let query_output_options () =\n    printf (f_\"No output options can be used in this mode.\\n\")\n\n  let parse_options options source =\n    if options.output_options <> [] then\n      error (f_\"no -oo (output options) are allowed here\");\n    if options.output_conn <> None then\n      error_option_cannot_be_used_in_output_mode \"glance\" \"-oc\";\n    if options.output_password <> None then\n      error_option_cannot_be_used_in_output_mode \"glance\" \"-op\";\n    if options.output_storage <> None then\n      error_option_cannot_be_used_in_output_mode \"glance\" \"-os\";\n\n    let output_name = Option.value ~default:source.s_name options.output_name in\n\n    options.output_format, output_name\n\n  let setup dir options source input_disks =\n    let input_sizes = get_disk_sizes input_disks in\n    let output_format, output_name = options in\n\n    (* This does nothing useful except to check that the user has\n     * supplied all the correct auth environment variables to make\n     * 'glance' commands work as the current user.  If not then the\n     * program exits early.\n     *)\n    if shell_command \"glance image-list > /dev/null\" <> 0 then\n      error (f_\"glance: glance client is not installed or set up correctly.  \\\n                You may need to set environment variables or source a script \\\n                to enable authentication.  \\\n                See preceding messages for details.\");\n\n    (* When debugging, query the glance client for its version. *)\n    if verbose () then (\n      eprintf \"version of the glance client:\\n%!\";\n      ignore (shell_command \"glance --version\");\n    );\n\n    (* Although glance can slurp in a stream from stdin, qemu-nbd\n     * (used for -of qcow2) cannot write to a stream.  This might\n     * be possible in future with more creative use of NBD.  (XXX)\n     *)\n    let tmpdir = Mkdtemp.temp_dir ~base_dir:large_tmpdir \"glance.\" in\n\n    (* This will write disks to the large temporary directory. *)\n    let uris =\n      List.mapi (\n        fun i size ->\n          let socket = sprintf \"%s/out%d\" dir i in\n          On_exit.unlink socket;\n\n          (* Create the actual output disk. *)\n          let outdisk = sprintf \"%s/%d\" tmpdir i in\n          output_to_local_file Sparse output_format outdisk size socket;\n\n          NBD_URI.Unix (socket, None)\n    ) input_sizes in\n\n    tmpdir, uris\n\n  let finalize dir options tmpdir output_disks source inspect target_meta =\n    let output_format, output_name = options in\n\n    let min_ram = source.s_memory /^ 1024L /^ 1024L in\n\n    (* Get the image properties. *)\n    let properties =\n      Openstack_image_properties.create source inspect target_meta in\n    let properties =\n      List.flatten (\n          List.map (\n              fun (k, v) -> [ \"--property\"; sprintf \"%s=%s\" k v ]\n            ) properties\n        ) in\n\n    (* The first disk, assumed to be the system disk, will be called\n     * \"guestname\".  Subsequent disks, assumed to be data disks,\n     * will be called \"guestname-disk2\" etc.  The manual strongly\n     * hints you should import the data disks to Cinder.\n     *)\n    List.iteri (\n      fun i _ ->\n        let name =\n          if i == 0 then output_name\n          else sprintf \"%s-disk%d\" output_name (i+1) in\n\n        let disk = sprintf \"%s/%d\" tmpdir i in\n\n        (* If glance is used with VMware then there's a vmware_disktype\n         * option which allows preallocated.  However I don't believe\n         * it's possible in general glance, so ignore the -oa option.\n         * Since we are writing to a temporary file before copying to\n         * glance, -oa preallocated just preallocates the temporary file.\n         *)\n        let cmd = [ \"glance\"; \"image-create\"; \"--name\"; name;\n                    \"--disk-format=\" ^ output_format;\n                    \"--container-format=bare\"; \"--file\"; disk;\n                    \"--min-ram\"; Int64.to_string min_ram ] @\n                    properties in\n        if run_command cmd <> 0 then\n          error (f_\"glance: image upload to glance failed, see earlier errors\");\n\n        (* Unlink the temporary files as soon as glance has got them. *)\n        try unlink disk with Unix_error _ -> ()\n    ) source.s_disks;\n\n    (* Remove the temporary directory for the large files. *)\n    (try rmdir tmpdir with Unix_error _ -> ())\n\n  let request_size = None\nend\n"
  },
  {
    "path": "output/output_glance.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** [-o glance] output mode. *)\n\nmodule Glance : Output.OUTPUT\n"
  },
  {
    "path": "output/output_kubevirt.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\n\nopen Output\nopen Create_kubevirt_yaml\n\n(* Valid output names for Kubevirt (RHBZ#2162332). *)\nlet rfc1123_re =\n  PCRE.compile\n    \"^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$\"\n\nmodule Kubevirt = struct\n  type poptions =\n    bool * bool * string list option *\n      output_allocation * string * string * string\n\n  type t = unit\n\n  let to_string options =\n    \"-o kubevirt\" ^\n      match options.output_storage with\n      | Some os -> \" -os \" ^ os\n      | None -> \"\"\n\n  let query_output_options () =\n    printf (f_\"Output options that can be used with -o kubevirt:\n\n  -oo compressed      Compress the output file (used only with -of qcow2)\n  -oo create=false    Do not create the output disks\n  -oo disk=disk1      Specify filename of output disk (if used, must be\n                          given once for each disk, else -os path is used)\n\")\n\n  let parse_options options source =\n    let compressed = ref false in\n    let create = ref true in\n    let disks = ref [] in\n    List.iter (\n      function\n      | \"compressed\", \"\" -> compressed := true\n      | \"compressed\", v -> compressed := bool_of_string v\n      | \"create\", \"\" -> create := true\n      | \"create\", v -> create := bool_of_string v\n      | \"disk\", v -> List.push_back disks v\n      | k, _ ->\n         error (f_\"-o kubevirt: unknown output option ‘-oo %s’\") k\n    ) options.output_options;\n\n    if options.output_password <> None then\n      error_option_cannot_be_used_in_output_mode \"kubevirt\" \"-op\";\n\n    (* -os must be set to a directory. *)\n    let output_storage =\n      match options.output_storage with\n      | None ->\n         error (f_\"-o kubevirt: output directory was not specified, \\\n                   use '-os /dir'\")\n      | Some d when not (is_directory d) ->\n         error (f_\"-os %s: output directory does not exist or \\\n                   is not a directory\") d\n      | Some d -> d in\n\n    let output_name = Option.value ~default:source.s_name options.output_name in\n\n    if not (PCRE.matches rfc1123_re output_name) then\n      error (f_\"-o kubevirt: the guest name must contain only lowercase \\\n                alphanumeric characters, '-' or '.', and must start and \\\n                end with an alphanumeric character.  Rerun virt-v2v with \\\n                the '-on name' option to rename it.\");\n\n    let disks = match !disks with [] -> None | disks -> Some disks in\n\n    !compressed, !create, disks,\n    options.output_alloc, options.output_format,\n    output_name, output_storage\n\n  let setup dir options source input_disks =\n    let compressed, create, disks,\n        output_alloc, output_format, output_name, output_storage = options in\n\n    let uris =\n      match disks with\n      | None ->\n         create_local_output_disks dir ~compressed ~create\n           output_alloc output_format output_name output_storage input_disks\n      | Some disks ->\n         (* -oo disk specified, so create the disks by hand. *)\n         let nr_input_disks = List.length input_disks\n         and nr_output_disks = List.length disks in\n         if nr_input_disks <> nr_output_disks then\n           error (f_\"incorrect number of '-oo disk' parameters.  This guest \\\n                     has %d disks, but the parameter was used %d times.\")\n             nr_input_disks nr_output_disks;\n\n         let input_sizes = get_disk_sizes input_disks in\n         List.mapi (\n           fun i (disk, size) ->\n             let socket = sprintf \"%s/out%d\" dir i in\n             On_exit.unlink socket;\n\n             output_to_local_file ~compressed ~create\n               output_alloc output_format disk size socket;\n\n             NBD_URI.Unix (socket, None)\n         ) (List.combine disks input_sizes)\n    in\n\n    (), uris\n\n  let finalize dir options () output_disks source inspect target_meta =\n    let _, _, disks,\n        output_alloc, output_format, output_name, output_storage = options in\n\n    (* This function will return the disk path for the i'th disk. *)\n    let disk_path =\n      match disks with\n      | None -> Output.disk_path output_storage output_name\n      | Some disks -> List.nth disks\n    in\n\n    let doc = create_kubevirt_yaml source inspect target_meta disk_path\n                output_format output_name in\n\n    let file = output_storage // (sanitize_slash output_name) ^ \".yaml\" in\n    with_open_out file (fun chan -> YAML.doc_to_chan chan doc);\n\n    if verbose () then (\n      eprintf \"resulting kubevirt YAML:\\n\";\n      YAML.doc_to_chan Stdlib.stderr doc;\n      eprintf \"\\n%!\";\n    )\n\n  let request_size = None\nend\n"
  },
  {
    "path": "output/output_kubevirt.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** [-o kubevirt] output mode. *)\n\nmodule Kubevirt : Output.OUTPUT\n"
  },
  {
    "path": "output/output_libvirt.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen C_utils\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\nopen Xpath_helpers\n\nopen Types\nopen Utils\n\nopen Create_libvirt_xml\nopen Output\n\nmodule Libvirt_ = struct\n  type poptions = Libvirt.rw Libvirt.Connect.t Lazy.t * bool *\n                  Types.output_allocation * string * string * string\n\n  type t = string * string\n\n  let to_string options =\n    \"-o libvirt\" ^\n      match options.output_storage with\n      | Some os -> \" -os \" ^ os\n      | None -> \"\"\n\n  let query_output_options () =\n    printf (f_\"Output options that can be used with -o libvirt:\n\n  -oo compressed      Compress the output file (used only with -of qcow2)\n\")\n\n  let parse_options options source =\n    let compressed = ref false in\n    List.iter (\n      function\n      | \"compressed\", \"\" -> compressed := true\n      | \"compressed\", v -> compressed := bool_of_string v\n      | k, _ ->\n         error (f_\"-o disk: unknown output option ‘-oo %s’\") k\n    ) options.output_options;\n\n    if options.output_password <> None then\n      error_option_cannot_be_used_in_output_mode \"libvirt\" \"-op\";\n\n    let conn = lazy (Libvirt.Connect.connect ?name:options.output_conn ()) in\n\n    (* -os is the name of the output pool.  It defaults to \"default\". *)\n    let output_pool = Option.value ~default:\"default\" options.output_storage in\n\n    let output_name = Option.value ~default:source.s_name options.output_name in\n\n    (conn, !compressed, options.output_alloc, options.output_format,\n     output_name, output_pool)\n\n  let setup dir options source input_disks =\n    let conn, compressed, output_alloc, output_format,\n        output_name, output_pool = options in\n    let conn = Lazy.force conn in\n\n    (* Get the capabilities from libvirt. *)\n    let capabilities_xml =\n      try Libvirt.Connect.get_capabilities conn\n      with\n        Libvirt.Virterror { message } ->\n        error (f_\"cannot get libvirt hypervisor capabilities: %s\")\n          (Option.value ~default:\"\" message) in\n    debug \"libvirt capabilities XML:\\n%s\" capabilities_xml;\n\n    (* This just checks that the capabilities XML is well-formed,\n     * early so that we catch parsing errors before conversion.\n     *)\n    ignore (Xml.parse_memory capabilities_xml);\n\n    (* Does the domain already exist on the target?  (RHBZ#889082) *)\n    if Libvirt_utils.domain_exists conn output_name then\n      error (f_\"a libvirt domain called ‘%s’ already exists on the \\\n                target.\\n\\nIf using virt-v2v directly, use the ‘-on’ \\\n                option to select a different name. Or delete the \\\n                existing domain on the target using the ‘virsh undefine’ \\\n                command.\\n\\nIf using virt-p2v, select a different ‘Name’ \\\n                in the ‘Target properties’. Or delete the existing domain \\\n                on the target using the ‘virsh undefine’ command.\")\n        output_name;\n\n    (* Connect to output libvirt instance and check that the pool exists\n     * and dump out its XML.\n     *)\n    let pool = Libvirt_utils.get_pool conn output_pool in\n    let xml = Libvirt.Pool.get_xml_desc (Libvirt.Pool.const pool) in\n    let doc = Xml.parse_memory xml in\n    let xpathctx = Xml.xpath_new_context doc in\n    let xpath_string = xpath_string xpathctx in\n\n    (* We can only output to a pool of type 'dir' (directory). *)\n    if xpath_string \"/pool/@type\" <> Some \"dir\" then\n      error (f_\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-output-local(1)\") output_pool;\n    let target_path =\n      match xpath_string \"/pool/target/path/text()\" with\n      | None ->\n         error (f_\"-o libvirt: output pool ‘%s’ does not have \\\n                   /pool/target/path element.  See \\\n                   virt-v2v-output-local(1)\") output_pool\n      | Some dir when not (is_directory dir) ->\n         error (f_\"-o libvirt: output pool ‘%s’ has type='dir' but the \\\n                   /pool/target/path element is not a local directory.  \\\n                   See virt-v2v-output-local(1)\") output_pool\n      | Some dir -> dir in\n\n    (* Get the name of the pool, since we have to use that\n     * (and not the UUID) in the XML of the guest.\n     *)\n    let pool_name = Libvirt.Pool.get_name (Libvirt.Pool.const pool) in\n\n    (* Set up the NBD servers. *)\n    let uris =\n      create_local_output_disks dir ~compressed output_alloc output_format\n        output_name target_path input_disks in\n\n    (capabilities_xml, pool_name), uris\n\n  let rec finalize dir options t output_disks source inspect target_meta =\n    let conn, _, output_alloc, output_format, output_name, output_pool =\n      options in\n    let capabilities_xml, pool_name = t in\n\n    let conn = Lazy.force conn in\n\n    (* We copied directly into the final pool directory.  However we\n     * have to tell libvirt.\n     *)\n    (try\n       let pool = Libvirt_utils.get_pool conn output_pool in\n       Libvirt.Pool.refresh (Libvirt.Pool.const pool)\n     with\n       Libvirt.Virterror { message } ->\n       warning (f_\"could not refresh libvirt pool ‘%s’: %s\")\n         output_pool (Option.value ~default:\"\" message)\n    );\n\n    (* Parse the capabilities XML in order to get the supported features. *)\n    let doc = Xml.parse_memory capabilities_xml in\n    let target_features =\n      target_features_of_capabilities_doc doc\n        target_meta.guestcaps.gcaps_arch in\n\n    (* Get domain capabilities. *)\n    let machine_string =\n      match target_meta.guestcaps.gcaps_machine with\n      | Types.I440FX -> \"i440fx\"\n      | Types.Q35 -> \"q35\"\n      | Types.Virt -> \"virt\" in\n    let domcaps_xml =\n      try Libvirt.Connect.get_domain_capabilities\n            ~arch:target_meta.guestcaps.gcaps_arch\n            ~machine:machine_string\n            ~virttype:\"kvm\"\n            conn\n      with\n        Libvirt.Virterror { message } ->\n        error (f_\"cannot get libvirt domain capabilities: %s\")\n          (Option.value ~default:\"\" message) in\n    debug \"libvirt domain capabilities XML:\\n%s\" domcaps_xml;\n\n    (* Parse domain capabilities XML to get the supported features. *)\n    let domcaps_doc = Xml.parse_memory domcaps_xml in\n    let domcaps_features = features_of_domcaps_doc domcaps_doc in\n\n    (* Create the metadata. *)\n    let doc =\n      create_libvirt_xml ~pool:pool_name source inspect target_meta\n        target_features domcaps_features\n        (disk_name output_name)\n        output_format output_name in\n\n    let tmpfile, chan = Filename.open_temp_file \"v2vlibvirt\" \".xml\" in\n    DOM.doc_to_chan chan doc;\n    close_out chan;\n\n    if verbose () then (\n      eprintf \"resulting XML for libvirt:\\n%!\";\n      DOM.doc_to_chan Stdlib.stderr doc;\n      eprintf \"\\n%!\";\n    );\n\n    (* Define the domain in libvirt. *)\n    (try\n       ignore (Libvirt.Domain.define_xml conn (DOM.doc_to_string doc));\n       (try Unix.unlink tmpfile with _ -> ())\n     with\n       Libvirt.Virterror { message } ->\n       warning (f_\"could not define libvirt domain: %s.\\nThe libvirt XML \\\n                   is still available in ‘%s’.  Try running \\\n                   ‘virsh -c %s define %s’ yourself instead.\")\n         (Option.value ~default:\"\" message) tmpfile\n         (Libvirt.Connect.get_uri conn) tmpfile\n    )\n\n  and arch_is_sane_or_die =\n    let rex = PCRE.compile ~caseless:true \"^[-_a-z0-9]+$\" in\n    fun arch -> assert (PCRE.matches rex arch)\n\n  and target_features_of_capabilities_doc doc arch =\n    let xpathctx = Xml.xpath_new_context doc in\n    let expr =\n      (* Check the arch is sane.  It comes from untrusted input.  This\n       * avoids XPath injection below.\n       *)\n      arch_is_sane_or_die arch;\n      (* NB: Pay attention to the square brackets.  This returns the\n       * <guest> nodes!\n       *)\n      sprintf \"/capabilities/guest[arch[@name='%s']/domain/@type='kvm']\" arch in\n    let obj = Xml.xpath_eval_expression xpathctx expr in\n\n    if Xml.xpathobj_nr_nodes obj < 1 then (\n      (* Old virt-v2v used to die here, but that seems unfair since the\n       * user has gone through conversion before we reach here.\n       *)\n      warning (f_\"the target hypervisor does not support a %s KVM guest\") arch;\n      []\n    ) else (\n      let node (* first matching <guest> *) = Xml.xpathobj_node obj 0 in\n      Xml.xpathctx_set_current_context xpathctx node;\n\n      (* Get guest/features/* nodes. *)\n      let features = xpath_get_nodes xpathctx \"features/*\" in\n      List.map Xml.node_name features\n    )\n\n  and features_of_domcaps_doc doc =\n    let xpathctx = Xml.xpath_new_context doc in\n    let xpath_string = xpath_string xpathctx in\n    let expr = \"/domainCapabilities/devices/disk/enum[@name='diskDevice']/value[text()='floppy']\" in\n\n    let supports_floppy =\n      match xpath_string expr with\n      | Some \"floppy\" -> true\n      | _ -> false in\n\n    { supports_floppy }\n\n  let request_size = None\nend\n"
  },
  {
    "path": "output/output_libvirt.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** [-o libvirt] output mode. *)\n\nmodule Libvirt_ : Output.OUTPUT\n"
  },
  {
    "path": "output/output_null.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\n\nopen Output\n\nmodule Null = struct\n  type poptions = unit\n  type t = unit\n\n  let to_string options = \"-o null\"\n\n  let query_output_options () =\n    printf (f_\"No output options can be used in this mode.\\n\")\n\n  let parse_options options source =\n    if options.output_options <> [] then\n      error (f_\"no -oo (output options) are allowed here\");\n    if options.output_alloc <> Sparse then\n      error_option_cannot_be_used_in_output_mode \"null\" \"-oa\";\n    if options.output_conn <> None then\n      error_option_cannot_be_used_in_output_mode \"null\" \"-oc\";\n    if options.output_format <> \"raw\" then\n      error_option_cannot_be_used_in_output_mode \"null\" \"-of\";\n    if options.output_password <> None then\n      error_option_cannot_be_used_in_output_mode \"null\" \"-op\";\n    if options.output_storage <> None then\n      error_option_cannot_be_used_in_output_mode \"null\" \"-os\"\n\n  let setup dir () source input_disks =\n    (* Check nbdkit is installed and has the required plugin. *)\n    if not (Nbdkit.is_installed ()) then\n      error (f_\"nbdkit is not installed or not working.  \\\n                It is required to use ‘-o null’.\");\n    if not (Nbdkit.probe_plugin \"null\") then\n      error (f_\"nbdkit-null-plugin is not installed or not working\");\n\n    (* We only need to run one nbdkit instance (even if there is\n     * more than one disk) and we can ignore the size of the inputs\n     * and set the size of the output to 7E.\n     *)\n    let socket = sprintf \"%s/out0\" dir in\n    On_exit.unlink socket;\n\n    let () =\n      let cmd = Nbdkit.create ~quiet:true \"null\" in\n      Nbdkit.add_arg cmd \"size\" \"7E\";\n      let _, pid = Nbdkit.run_unix socket cmd in\n\n      (* --exit-with-parent should ensure nbdkit is cleaned\n       * up when we exit, but it's not supported everywhere.\n       *)\n      On_exit.kill pid in\n\n    (* Same socket repeated for each input disk. *)\n    let uris =\n      List.make (List.length input_disks) (NBD_URI.Unix (socket, None)) in\n\n    (), uris\n\n  let finalize dir () () output_disks source inspect target_meta =\n    () (* nothing to do *)\n\n  let request_size = None\nend\n"
  },
  {
    "path": "output/output_null.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** [-o null] output mode. *)\n\nmodule Null : Output.OUTPUT\n"
  },
  {
    "path": "output/output_openstack.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen C_utils\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\n\nopen Output\n\nmodule Openstack = struct\n  type poptions = string option * string * string *\n                  string option * string option *\n                  (string list -> int) * (string list -> JSON.json_t option)\n\n  type t = string list\n\n  let to_string options =\n    (* Try to get the server-id since it seems useful to display\n     * that for diagnostics.\n     *)\n    let server_id = ref None in\n    List.iter (\n      function\n      | \"server-id\", v -> server_id := Some v\n      | _ -> ()\n    ) options.output_options;\n\n    \"-o openstack\" ^\n      (match !server_id with\n       | None -> \"\"\n       | Some id -> sprintf \" -oo server-id=%s\" id)\n\n  let query_output_options () =\n    printf (f_\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\n\nSpecify the name or UUID of the conversion appliance using\n\n  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\n\nWhen virt-v2v runs it will attach the Cinder volumes to the\nconversion appliance, so this name or UUID must be the name\nof the virtual machine on OpenStack where virt-v2v is running.\n\nIn addition, all usual OpenStack “os-*” parameters or “OS_*”\nenvironment variables can be used.\n\nOpenstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n\nFor example:\n\n  virt-v2v -oo os-username=<NAME>\n\n                equivalent to openstack: --os-username=<NAME>\n            or the environment variable: OS_USERNAME=<NAME>\n\n  virt-v2v -oo os-project-name=<NAME>\n\n                equivalent to openstack: --os-project-name=<NAME>\n            or the environment variable: OS_PROJECT_NAME=<NAME>\n\nThe os-* parameters and environment variables are optional.\n\")\n\n  let parse_options options source =\n    if options.output_alloc <> Sparse || options.output_format <> \"raw\" then\n      error (f_\"-o openstack mode only supports -oa sparse -of raw\");\n\n    let server_id = ref None in\n    let dev_disk_by_id = ref None in\n    let verify_server_certificate = ref true in\n    let guest_id = ref None in\n    let authentication = ref [] in\n    List.iter (\n      function\n      | \"server-id\", v ->\n         server_id := Some v\n      | \"dev-disk-by-id\", v ->\n         dev_disk_by_id := Some v\n      | \"verify-server-certificate\", \"\" ->\n         verify_server_certificate := true\n      | \"verify-server-certificate\", v ->\n         verify_server_certificate := bool_of_string v\n      | \"guest-id\", v ->\n         guest_id := Some v\n      | k, v when String.starts_with \"os-\" k ->\n         (* Accumulate any remaining/unknown -oo os-* parameters\n          * into the authentication list, where they will be\n          * pass unmodified through to the openstack command.\n          *)\n         let opt = sprintf \"--%s=%s\" k v in\n         authentication := opt :: !authentication\n      | k, _ ->\n         error (f_\"-o openstack: unknown output option ‘-oo %s’\") k\n    ) options.output_options;\n    let server_id =\n      match !server_id with\n      | None ->\n         error (f_\"openstack: -oo server-id=<NAME|UUID> not present\");\n      | Some server_id -> server_id in\n    let authentication = List.rev !authentication in\n    let verify_server_certificate = !verify_server_certificate in\n    let guest_id = !guest_id in\n    let dev_disk_by_id = !dev_disk_by_id in\n\n    (* Name of the openstack CLI program (on $PATH). *)\n    let openstack_binary = \"openstack\" in\n\n    (* The extra command line parameters derived from -oo etc. *)\n    let extra_args =\n      let args = ref authentication in\n      Option.iter\n        (fun oc -> List.push_back args (sprintf \"--os-auth-url=%s\" oc))\n        options.output_conn;\n      if not verify_server_certificate then\n        List.push_back args \"--insecure\";\n      !args in\n\n    (* Check the openstack command exists. *)\n    let error_unless_openstack_command_exists () =\n      try ignore (which openstack_binary)\n      with Executable_not_found _ ->\n        error (f_\"the ‘%s’ program is not available.  \\\n                  It is needed to communicate with OpenStack.\")\n          openstack_binary\n    in\n    error_unless_openstack_command_exists ();\n\n    (* We use this convenient wrapper around [Tools_utils.run_command]\n     * for two reasons: (1) Because we want to run openstack with\n     * extra_args.  (2) OpenStack commands are noisy so we want to\n     * direct stdout to /dev/null unless we're in verbose mode.\n     *)\n    let run_openstack_command args =\n      let cmd = [ openstack_binary ] @ extra_args @ args in\n      let stdout_fd =\n        if verbose () then None\n        else Some (openfile \"/dev/null\" [O_WRONLY] 0) in\n      (* Note that run_command will close stdout_fd if defined.\n       * Don't echo the whole command because it can contain passwords.\n       *)\n      debug \"openstack [...] %s\" (String.concat \" \" args);\n      Tools_utils.run_command ~echo_cmd:false ?stdout_fd cmd\n    in\n\n    (* Similar to above, run the openstack command and capture the\n     * JSON document printed by the command.  Note you must add\n     * '-f json' to the args yourself.\n     *)\n    let run_openstack_command_capture_json args =\n      let cmd = [ openstack_binary ] @ extra_args @ args in\n\n      let json, chan = Filename.open_temp_file \"v2vopenstack\" \".json\" in\n      On_exit.unlink json;\n      let fd = descr_of_out_channel chan in\n\n      (* Note that Tools_utils.run_command closes fd.\n       * Don't echo the whole command because it can contain passwords.\n       *)\n      debug \"openstack [...] %s\" (String.concat \" \" args);\n      if Tools_utils.run_command ~echo_cmd:false ~stdout_fd:fd cmd <> 0 then\n        None\n      else (\n        let json = JSON_parser.json_parser_tree_parse_file json in\n        debug \"openstack: JSON parsed as: %s\"\n          (JSON.string_of_doc ~fmt:JSON.Indented [\"\", json]);\n        Some json\n      )\n    in\n\n    (* Run the openstack command simply to check we can connect\n     * with the provided authentication parameters/environment\n     * variables.  Issuing a token should have only a tiny\n     * overhead.\n     *)\n    let args = [ \"token\"; \"issue\" ] in\n    if run_openstack_command args <> 0 then\n      error (f_\"openstack: precheck failed, there may be a problem with \\\n                authentication, see earlier error messages\");\n\n    let output_name = Option.value ~default:source.s_name options.output_name in\n\n    (options.output_storage, output_name,\n     server_id, guest_id, dev_disk_by_id,\n     run_openstack_command,\n     run_openstack_command_capture_json)\n\n  let setup dir options source input_disks =\n    let input_sizes = get_disk_sizes input_disks in\n    let output_storage, output_name,\n        server_id, guest_id, dev_disk_by_id,\n        run_openstack_command, run_openstack_command_capture_json = options in\n\n    (* Timeout waiting for Cinder volumes to attach to the appliance. *)\n    let attach_timeout = 300 (* seconds *) in\n\n    (* Timeout waiting for new Cinder volumes to move to \"available\" state.\n     * We assume this could be quite a long time on backends which want\n     * to preallocate the storage.\n     *)\n    let available_timeout = 300 (* seconds *) in\n\n    (* Set a known description for volumes, then change it later\n     * when conversion is successful.  In theory this would allow\n     * some kind of garbage collection for unfinished conversions\n     * in the case that virt-v2v crashes.\n     *)\n    let description = sprintf \"virt-v2v temporary volume for %s\" output_name in\n\n    (* The list of volume IDs that we create as we go along. *)\n    let volume_ids = ref [] in\n\n    let detach_volume id =\n      let args = [ \"server\"; \"remove\"; \"volume\"; server_id; id ] in\n      ignore (run_openstack_command args)\n    in\n\n    (* Delete a cinder volume.\n     *\n     * This ignores errors since the only time we are doing this is on\n     * the failure path.\n     *)\n    let delete_cinder_volume id =\n      let args = [ \"volume\"; \"delete\"; id ] in\n      ignore (run_openstack_command args)\n    in\n\n    (* Set up an at-exit handler so we:\n     * (1) Unconditionally detach volumes.\n     * (2) Delete the volumes, but only if conversion was not successful.\n     *)\n    On_exit.f (\n      fun () ->\n        let volume_ids = !volume_ids in\n        List.iter detach_volume volume_ids;\n\n        (* virt-v2v writes v2vdir/done on success only. *)\n        let success = Sys.file_exists (dir // \"done\") in\n        if not success then (\n          (* XXX We probably need to wait for the previous\n           * detach operation to complete - unclear how.\n           *)\n          List.iter delete_cinder_volume volume_ids;\n        )\n    );\n\n    (* Create a new Cinder volume and wait for its status to change to\n     * \"available\".  Returns the volume id.\n     *)\n    let create_cinder_volume name description size =\n      (* Cinder volumes are allocated in increments of 1 GB.  Weird. *)\n      let size_gb =\n        let s = roundup64 size 1073741824L in\n        let s = s /^ 1073741824L in\n        Int64.to_string s in\n\n      let args = ref [] in\n      List.push_back_list args [ \"volume\"; \"create\";\n                                 \"-f\"; \"json\";\n                                 \"--size\"; size_gb;\n                                 \"--description\"; description ];\n      Option.iter (\n        fun os -> List.push_back_list args [ \"--type\"; os ]\n      ) output_storage;\n      List.push_back args name;\n\n      let json =\n        match run_openstack_command_capture_json !args with\n        | None ->\n           error (f_\"openstack: failed to create a cinder volume, \\\n                     see earlier error messages\")\n        | Some json -> json in\n      let id = JSON_parser.object_get_string \"id\" json in\n\n      (* Wait for the volume state to change to \"available\". *)\n      let args = [ \"volume\"; \"show\"; \"-f\"; \"json\"; id ] in\n      with_timeout\n        (s_\"wait for cinder volume status to change to \\\"available\\\"\")\n        available_timeout\n        (fun () ->\n          match run_openstack_command_capture_json args with\n          | None ->\n             error (f_\"openstack: failed to query cinder volume status, \\\n                       see earlier error messages\")\n          | Some json ->\n             match JSON_parser.object_get_string \"status\" json with\n             | \"creating\" -> None\n             | \"available\" -> Some () (* done *)\n             | status ->\n                error (f_\"openstack: unknown volume status \\\"%s\\\": \\\n                          expected \\\"creating\\\" or \\\"available\\\"\") status\n      );\n\n      id\n    in\n\n    (* Create the Cinder volumes. *)\n    List.iteri (\n      fun i size ->\n        (* Unclear what we should set the name to, so just make\n         * something related to the guest name.  Cinder volume\n         * names do not need to be unique.\n         *)\n        let name = disk_name output_name i in\n\n        (* Create the cinder volume. *)\n        let id = create_cinder_volume name description size in\n        List.push_back volume_ids id\n    ) input_sizes;\n\n    (* Attach volume to current VM and wait for it to appear.\n     * Returns the block device name.\n     *)\n    let attach_volume id =\n      let args = [ \"server\"; \"add\"; \"volume\"; server_id; id ] in\n      if run_openstack_command args <> 0 then\n        error (f_\"openstack: failed to attach cinder volume to VM, \\\n                  see earlier error messages\");\n\n      (* We expect the disk to appear under /dev/disk/by-id.\n       *\n       * In theory the serial number of the disk should be the\n       * volume ID.  However the practical reality is:\n       *\n       * (1) Only the first 20 characters are included by OpenStack.\n       * (2) udev(?) adds extra stuff\n       *\n       * So look for any file under /dev/disk/by-id which contains\n       * the prefix of the volume ID as a substring.\n       *)\n      let dev_disk_by_id =\n        Option.value ~default:\"/dev/disk/by-id\" dev_disk_by_id in\n      let prefix_len = 16 (* maybe 20, but be safe *) in\n      let prefix_id =\n        if String.length id > prefix_len then String.sub id 0 prefix_len\n        else id in\n\n      with_timeout ~sleep:5\n        (sprintf (f_\"waiting for cinder volume %s to attach to the \\\n                     conversion appliance\") id)\n        attach_timeout\n        (fun () ->\n          let entries =\n            try Sys.readdir dev_disk_by_id\n            (* It's possible for /dev/disk/by-id to not exist, since it's\n             * only created by udev on demand, so ignore this error.\n             *)\n            with Sys_error _ -> [||] in\n          let entries = Array.to_list entries in\n          let entries =\n            List.filter (fun e -> String.find e prefix_id >= 0) entries in\n          match entries with\n          | d :: _ -> Some (dev_disk_by_id // d)\n          | [] -> None\n        );\n    in\n\n    (* Attach volume IDs to the conversion appliance and wait\n     * for the device nodes to appear.\n     *)\n    let devices = List.map attach_volume !volume_ids in\n\n    (* Create nbdkit instances for each device node. *)\n    let uris =\n      List.mapi (\n        fun i (size, dev) ->\n          let socket = sprintf \"%s/out%d\" dir i in\n          On_exit.unlink socket;\n\n          output_to_local_file Sparse \"raw\" dev size socket;\n\n          NBD_URI.Unix (socket, None)\n      ) (List.combine input_sizes devices) in\n\n    !volume_ids, uris\n\n  let rec finalize dir options volume_ids output_disks\n            source inspect target_meta =\n    let output_storage, output_name,\n        server_id, guest_id, dev_disk_by_id,\n        run_openstack_command, run_openstack_command_capture_json = options in\n    let nr_disks = List.length volume_ids in\n\n    (* Update metadata on a cinder volume. *)\n    let update_cinder_volume_metadata ?bootable ?description\n                                      ?(image_properties = [])\n                                      ?(volume_properties = [])\n                                      id =\n      let args = ref [ \"volume\"; \"set\" ] in\n\n      Option.iter (\n        fun bootable ->\n          List.push_back args\n            (if bootable then \"--bootable\" else \"--non-bootable\")\n      ) bootable;\n\n      Option.iter (\n        fun description ->\n          List.push_back_list args [\"--description\"; description]\n      ) description;\n\n      let image_properties =\n        List.flatten (\n            List.map (\n                fun (k, v) -> [ \"--image-property\"; sprintf \"%s=%s\" k v ]\n              ) image_properties\n        ) in\n      List.push_back_list args image_properties;\n\n      let volume_properties =\n        List.flatten (\n            List.map (\n                fun (k, v) -> [ \"--property\"; sprintf \"%s=%s\" k v ]\n            ) volume_properties\n        ) in\n      List.push_back_list args volume_properties;\n\n      List.push_back args id;\n\n      if run_openstack_command !args <> 0 then\n        error (f_\"openstack: failed to set image properties on cinder volume, \\\n                  see earlier error messages\")\n    in\n\n    (* Image properties are only set on the first disk.\n     *\n     * In addition we set the first disk to bootable\n     * (XXX see RHBZ#1308535 for why this is wrong).\n     *)\n    let image_properties =\n      Openstack_image_properties.create source inspect target_meta in\n    update_cinder_volume_metadata ~bootable:true ~image_properties\n      (List.hd volume_ids);\n\n    (* For all disks we update the description to a \"non-temporary\"\n     * description (see above) and set volume properties.\n     *)\n    List.iteri (\n      fun i id ->\n        let description =\n          sprintf \"%s disk %d/%d converted by virt-v2v\"\n            output_name (i+1) nr_disks in\n\n        let volume_properties = ref [\n          \"virt_v2v_version\", Config.package_version_full;\n          \"virt_v2v_conversion_date\", iso_time;\n          \"virt_v2v_guest_name\", output_name;\n          \"virt_v2v_disk_index\", sprintf \"%d/%d\" (i+1) nr_disks;\n        ] in\n        (match source.s_genid with\n         | None -> ()\n         | Some genid ->\n            List.push_back volume_properties\n              (\"virt_v2v_vm_generation_id\", genid)\n        );\n        (match guest_id with\n         | None -> ()\n         | Some guest_id ->\n            List.push_back volume_properties (\"virt_v2v_guest_id\", guest_id)\n        );\n        let volume_properties = !volume_properties in\n\n        update_cinder_volume_metadata ~description ~volume_properties id\n    ) volume_ids\n\n  (* UTC conversion time. *)\n  and iso_time =\n    let time = time () in\n    let tm = gmtime time in\n    sprintf \"%04d/%02d/%02d %02d:%02d:%02d\"\n      (tm.tm_year + 1900) (tm.tm_mon + 1) tm.tm_mday\n      tm.tm_hour tm.tm_min tm.tm_sec\n\n  let request_size = None\nend\n"
  },
  {
    "path": "output/output_openstack.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** [-o openstack] output mode. *)\n\nmodule Openstack : Output.OUTPUT\n"
  },
  {
    "path": "output/output_ovirt.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\n\nopen Output\n\nmodule OVirt = struct\n  type poptions = Types.output_allocation * string * string * string\n\n  type t = string * string * string * string list * string list * int64 list\n\n  let to_string options = \"-o ovirt\"\n\n  let query_output_options () =\n    printf (f_\"No output options can be used in this mode.\\n\")\n\n  let parse_options options source =\n    if options.output_options <> [] then\n      error (f_\"no -oo (output options) are allowed here\");\n    if options.output_password <> None then\n      error_option_cannot_be_used_in_output_mode \"ovirt\" \"-op\";\n\n    (* -os must be set, but at this point we cannot check it. *)\n    let output_storage =\n      match options.output_storage with\n      | None -> error (f_\"-o ovirt: -os option was not specified\")\n      | Some d -> d in\n\n    let output_name = Option.value ~default:source.s_name options.output_name in\n\n    (options.output_alloc, options.output_format, output_name, output_storage)\n\n  let rec setup dir options source input_disks =\n    error_if_disk_count_gt input_disks 23;\n    let input_sizes = get_disk_sizes input_disks in\n    let output_alloc, output_format, output_name, output_storage = options in\n\n    (* UID:GID required for files and directories when writing to ESD. *)\n    let uid = 36 and gid = 36 in\n\n    (* Create a UID-switching handle.  If we're not root, create a dummy\n     * one because we cannot switch UIDs.\n     *)\n    let running_as_root = geteuid () = 0 in\n    let changeuid_t =\n      if running_as_root then\n        Changeuid.create ~uid ~gid ()\n      else\n        Changeuid.create () in\n\n    let esd_mp, esd_uuid =\n      mount_and_check_storage_domain (s_\"Export Storage Domain\")\n        output_storage in\n    debug \"ovirt: ESD mountpoint: %s\\novirt: ESD UUID: %s\" esd_mp esd_uuid;\n\n    (* See if we can write files as UID:GID 36:36. *)\n    let () =\n      let testfile = esd_mp // esd_uuid // String.random8 () in\n      Changeuid.make_file changeuid_t testfile \"\";\n      let stat = stat testfile in\n      Changeuid.unlink changeuid_t testfile;\n      let actual_uid = stat.st_uid and actual_gid = stat.st_gid in\n      debug \"ovirt: actual UID:GID of new files is %d:%d\" actual_uid actual_gid;\n      if uid <> actual_uid || gid <> actual_gid then (\n        if running_as_root then\n          warning (f_\"cannot write files to the NFS server as %d:%d, \\\n                      even though we appear to be running as root. This \\\n                      probably means the NFS client or idmapd is not \\\n                      configured properly.\\n\\nYou will have to chown \\\n                      the files that virt-v2v creates after the run, \\\n                      otherwise oVirt will not be able to import the VM.\")\n            uid gid\n        else\n          warning (f_\"cannot write files to the NFS server as %d:%d. \\\n                      You might want to stop virt-v2v (^C) and rerun it \\\n                      as root.\") uid gid\n      ) in\n\n    (* Create unique UUIDs for everything *)\n    let vm_uuid = uuidgen () in\n    (* Generate random image and volume UUIDs for each target disk. *)\n    let image_uuids = List.map (fun _ -> uuidgen ()) input_disks in\n    let vol_uuids = List.map (fun _ -> uuidgen ()) input_disks in\n\n    (* We need to create the target image director(ies) so there's a place\n     * for the main program to copy the images to.  However if image\n     * conversion fails for any reason then we delete this directory.\n     *)\n    let images_dir = esd_mp // esd_uuid // \"images\" in\n    List.iter (\n      fun image_uuid ->\n        let d = images_dir // image_uuid in\n        Changeuid.mkdir changeuid_t d 0o755\n    ) image_uuids;\n    On_exit.f (\n      fun () ->\n        (* virt-v2v writes v2vdir/done on success only. *)\n        let success = Sys.file_exists (dir // \"done\") in\n        if not success then (\n          List.iter (\n            fun image_uuid ->\n              let d = images_dir // image_uuid in\n              let cmd = sprintf \"rm -rf %s\" (quote d) in\n              Changeuid.command changeuid_t cmd\n            ) image_uuids\n        )\n    );\n\n    (* The final directory structure should look like this:\n     *   /<MP>/<ESD_UUID>/images/\n     *      <IMAGE_UUID_1>/<VOL_UUID_1>        # first disk\n     *      <IMAGE_UUID_1>/<VOL_UUID_1>.meta   # first disk\n     *      <IMAGE_UUID_2>/<VOL_UUID_2>        # second disk\n     *      <IMAGE_UUID_2>/<VOL_UUID_2>.meta   # second disk\n     *      <IMAGE_UUID_3>/<VOL_UUID_3>        # etc\n     *      <IMAGE_UUID_3>/<VOL_UUID_3>.meta   #\n     *)\n\n    (* Generate the randomly named target files (just the names).\n     * The main code is what generates the files themselves.\n     *)\n    let filenames =\n      List.map (\n        fun (image_uuid, vol_uuid) ->\n          let filename = images_dir // image_uuid // vol_uuid in\n          debug \"ovirt: disk: %s\" filename;\n          filename\n      ) (List.combine image_uuids vol_uuids) in\n\n    (* Generate the .meta file associated with each volume. *)\n    let metas =\n      Create_ovf.create_meta_files output_alloc output_format\n        esd_uuid image_uuids input_sizes in\n    List.iter (\n      fun (filename, meta) ->\n        let meta_filename = filename ^ \".meta\" in\n        Changeuid.make_file changeuid_t meta_filename meta\n    ) (List.combine filenames metas);\n\n    (* Set up the NBD servers. *)\n    let uris =\n      List.mapi (\n        fun i (size, filename) ->\n          let socket = sprintf \"%s/out%d\" dir i in\n          On_exit.unlink socket;\n\n          (* Create the actual output disk. *)\n          let changeuid f =\n            Changeuid.func changeuid_t (\n              fun () ->\n                (* Run the command to create the file. *)\n                f ();\n                (* Make the file sufficiently writable so that possibly root,\n                 * or root squashed nbdkit will definitely be able to open it.\n                 * An example of how root squashing nonsense makes everyone\n                 * less secure.\n                 *)\n                chmod filename 0o666\n            )\n          in\n\n          (* We have to wait for the NBD server to exit rather than just\n           * killing it, otherwise it races with unmounting.  See:\n           * https://bugzilla.redhat.com/show_bug.cgi?id=1953286#c26\n           *)\n          let on_exit_kill = Output.KillAndWait in\n\n          output_to_local_file ~changeuid ~on_exit_kill\n            output_alloc output_format filename size socket;\n\n          NBD_URI.Unix (socket, None)\n      ) (List.combine input_sizes filenames) in\n\n    (* Save parameters since we need them during finalization. *)\n    let t = esd_mp, esd_uuid, vm_uuid, image_uuids, vol_uuids, input_sizes in\n    t, uris\n\n  and mount_and_check_storage_domain domain_class os =\n    (* The user can either specify -os nfs:/export, or a local directory\n     * which is assumed to be the already-mounted NFS export.\n     *)\n    match String.split \":/\" os with\n    | mp, \"\" ->                         (* Already mounted directory. *)\n       check_storage_domain domain_class os mp\n    | server, export ->\n       let export = \"/\" ^ export in\n\n       (* Create a mountpoint.  Default mode is too restrictive for us\n        * when we need to write into the directory as 36:36.\n        *)\n       let mp = Mkdtemp.temp_dir \"v2v.\" in\n       chmod mp 0o755;\n\n       (* Try mounting it. *)\n       let cmd = [ \"mount\"; sprintf \"%s:%s\" server export; mp ] in\n       if run_command cmd <> 0 then\n         error (f_\"mount command failed, see earlier errors.\\n\\nThis probably \\\n                   means you didn't specify the right %s path [-os %s], or \\\n                   else you need to rerun virt-v2v as root.\") domain_class os;\n\n       (* Make sure it is unmounted at exit, as late as possible (prio=9999) *)\n       On_exit.f ~prio:9999 (\n         fun () ->\n           let cmd = [ \"umount\"; mp ] in\n           ignore (run_command cmd);\n           try rmdir mp with _ -> ()\n       );\n\n       check_storage_domain domain_class os mp\n\n  and check_storage_domain domain_class os mp =\n    (* Typical SD mountpoint looks like this:\n     * $ ls /tmp/mnt\n     * 39b6af0e-1d64-40c2-97e4-4f094f1919c7  __DIRECT_IO_TEST__  lost+found\n     * $ ls /tmp/mnt/39b6af0e-1d64-40c2-97e4-4f094f1919c7\n     * dom_md  images  master\n     * We expect exactly one of those magic UUIDs.\n     *)\n    let entries =\n      try Sys.readdir mp\n      with Sys_error msg ->\n        error (f_\"could not read the %s specified by the '-os %s' \\\n                  parameter on the command line.  Is it really an \\\n                  OVirt %s?  The original error is: %s\")\n          domain_class os domain_class msg in\n    let entries = Array.to_list entries in\n    let uuids = List.filter (\n        fun entry ->\n          String.length entry = 36 &&\n          entry.[8] = '-' && entry.[13] = '-' && entry.[18] = '-' &&\n          entry.[23] = '-'\n      ) entries in\n    let uuid =\n      match uuids with\n      | [uuid] -> uuid\n      | [] ->\n         error (f_\"there are no UUIDs in the %s (%s).  Is it really an \\\n                   OVirt %s?\") domain_class os domain_class\n      | _::_ ->\n         error (f_\"there are multiple UUIDs in the %s (%s).  This is \\\n                   unexpected, and may be a bug in virt-v2v or OVirt.\")\n           domain_class os in\n\n    (* Check that the domain has been attached to a Data Center by\n     * checking that the master/vms directory exists.\n     *)\n    let () =\n      let master_vms_dir = mp // uuid // \"master\" // \"vms\" in\n      if not (is_directory master_vms_dir) then\n        error (f_\"%s does not exist or is not a directory.\\n\\nMost likely \\\n                  cause: Either the %s (%s) has not been attached to any \\\n                  Data Center, or the path %s is not an %s at all.\\n\\n\\\n                  You have to attach the %s to a Data Center using the \\\n                  oVirt user interface first.\\n\\nIf you don’t \\\n                  know what the %s mount point should be then you can \\\n                  also find this out through the oVirt user interface.\")\n          master_vms_dir domain_class os os\n          domain_class domain_class domain_class in\n\n    (* Looks good, so return the SD mountpoint and UUID. *)\n    (mp, uuid)\n\n  let finalize dir options t output_disks source inspect target_meta =\n    let output_alloc, output_format, output_name, output_storage = options in\n    let esd_mp, esd_uuid, vm_uuid, image_uuids, vol_uuids, sizes = t in\n\n    (* UID:GID required for files and directories when writing to ESD. *)\n    let uid = 36 and gid = 36 in\n\n    (* Create a UID-switching handle.  If we're not root, create a dummy\n     * one because we cannot switch UIDs.\n     *)\n    let running_as_root = geteuid () = 0 in\n    let changeuid_t =\n      if running_as_root then\n        Changeuid.create ~uid ~gid ()\n      else\n        Changeuid.create () in\n\n    (* Create the metadata. *)\n    let ovf =\n      Create_ovf.create_ovf source inspect target_meta sizes\n        output_alloc output_format output_name esd_uuid image_uuids vol_uuids\n        ~need_actual_sizes:true output_disks vm_uuid\n        Create_ovf.OVirtExportStorageDomain in\n\n    (* Write it to the metadata file. *)\n    let dir = esd_mp // esd_uuid // \"master\" // \"vms\" // vm_uuid in\n    Changeuid.mkdir changeuid_t dir 0o755;\n    let file = dir // vm_uuid ^ \".ovf\" in\n    Changeuid.output changeuid_t file (fun chan -> DOM.doc_to_chan chan ovf)\n\n  let request_size = None\nend\n"
  },
  {
    "path": "output/output_ovirt.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** [-o ovirt] output mode. *)\n\nmodule OVirt : Output.OUTPUT\n"
  },
  {
    "path": "output/output_ovirt_upload.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\n\nopen Output\n\nmodule OVirtUpload = struct\n  type poptions = string * string * string * string * string *\n                  string option * string option * bool * bool *\n                  string list option\n\n  type t = int64 list * string list * string list *\n           Python_script.script * Python_script.script *\n           JSON.field list * string option * string option *\n           string option * string * int list ref\n\n  let to_string options =\n    \"-o ovirt-upload\" ^\n      (match options.output_conn with\n       | Some oc -> \" -oc \" ^ oc\n       | None -> \"\") ^\n      (match options.output_storage with\n       | Some os -> \" -os \" ^ os\n       | None -> \"\")\n\n  let query_output_options () =\n    printf (f_\"Output options (-oo) which can be used with -o ovirt-upload:\n\n  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\n  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\n  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: false).\n  -oo ovirt-verifypeer[=true|false] Verify server identity (default: false).\n\nYou can override the UUIDs of the disks, instead of using autogenerated UUIDs\nafter their uploads (if you do, you must supply one for each disk):\n\n  -oo ovirt-disk-uuid=UUID      Disk UUID\n\")\n\n  let rec parse_options options source =\n    let output_conn =\n      match options.output_conn with\n      | None ->\n         error (f_\"-o ovirt-upload: use ‘-oc’ to point to the oVirt \\\n                   server REST API URL, which is usually \\\n                   https://servername/ovirt-engine/api\")\n      | Some oc -> oc in\n    (* In theory we could make the password optional in future. *)\n    let output_password =\n      match options.output_password with\n      | None ->\n         error (f_\"-o ovirt-upload: output password file was not specified, \\\n                   use ‘-op’ to point to a file which contains the password \\\n                   used to connect to the oVirt server\")\n      | Some op -> op in\n    let output_storage =\n      match options.output_storage with\n      | None ->\n         error (f_\"-o ovirt-upload: output storage was not specified, \\\n                   use ‘-os’\");\n      | Some os -> os in\n\n    let ovirt_cafile = ref None in\n    let ovirt_cluster = ref None in\n    let ovirt_direct = ref true in\n    let ovirt_verifypeer = ref false in\n    let ovirt_disk_uuids = ref None in\n\n    List.iter (\n      function\n      | (\"ovirt-cafile\"|\"rhv-cafile\"), v ->\n         if !ovirt_cafile <> None then\n           error (f_\"-o ovirt-upload: -oo ovirt-cafile set more than once\");\n         ovirt_cafile := Some v\n      | (\"ovirt-cluster\"|\"rhv-cluster\"), v ->\n         if !ovirt_cluster <> None then\n           error (f_\"-o ovirt-upload: -oo ovirt-cluster set more than once\");\n         ovirt_cluster := Some v\n      | (\"ovirt-direct\"|\"rhv-direct\"), \"\" -> ovirt_direct := true\n      | (\"ovirt-direct\"|\"rhv-direct\"), v -> ovirt_direct := bool_of_string v\n      | (\"ovirt-proxy\"|\"rhv-proxy\"), \"\" -> ovirt_direct := false\n      | (\"ovirt-proxy\"|\"rhv-proxy\"), v -> ovirt_direct := not (bool_of_string v)\n      | (\"ovirt-verifypeer\"|\"rhv-verifypeer\"), \"\" -> ovirt_verifypeer := true\n      | (\"ovirt-verifypeer\"|\"rhv-verifypeer\"), v ->\n         ovirt_verifypeer := bool_of_string v\n      | (\"ovirt-disk-uuid\"|\"rhv-disk-uuid\"), v ->\n         if not (is_nonnil_uuid v) then\n           error (f_\"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\");\n         ovirt_disk_uuids :=\n           Some (v :: (Option.value ~default:[] !ovirt_disk_uuids))\n      | k, _ ->\n         error (f_\"-o ovirt-upload: unknown output option ‘-oo %s’\") k\n    ) options.output_options;\n\n    let ovirt_cafile = !ovirt_cafile in\n    let ovirt_cluster = !ovirt_cluster in\n    let ovirt_direct = !ovirt_direct in\n    let ovirt_verifypeer = !ovirt_verifypeer in\n    let ovirt_disk_uuids = Option.map List.rev !ovirt_disk_uuids in\n\n    let output_name = Option.value ~default:source.s_name options.output_name in\n\n    (output_conn, options.output_format,\n     output_password, output_name, output_storage,\n     ovirt_cafile, ovirt_cluster, ovirt_direct,\n     ovirt_verifypeer, ovirt_disk_uuids)\n\n  and is_nonnil_uuid uuid =\n    let nil_uuid = \"00000000-0000-0000-0000-000000000000\" in\n    let rex_uuid = lazy (\n      let hex = \"[a-fA-F0-9]\" in\n      let str = sprintf \"^%s{8}-%s{4}-%s{4}-%s{4}-%s{12}$\"\n                  hex hex hex hex hex in\n      PCRE.compile str\n    ) in\n    if uuid = nil_uuid then false\n    else PCRE.matches (Lazy.force rex_uuid) uuid\n\n  let rec setup dir options source input_disks =\n    error_if_disk_count_gt input_disks 23;\n    let input_sizes = get_disk_sizes input_disks in\n    let output_conn, output_format,\n        output_password, output_name, output_storage,\n        ovirt_cafile, ovirt_cluster, ovirt_direct,\n        ovirt_verifypeer, ovirt_disk_uuids = options in\n\n    (* Check that the 'ovirtsdk4' Python module is available. *)\n    let error_unless_ovirtsdk4_module_available () =\n      let res = run_command [ Python_script.python; \"-c\";\n                              \"import ovirtsdk4\" ] in\n      if res <> 0 then\n        error (f_\"the Python module ‘ovirtsdk4’ could not be loaded, \\\n                  is it installed?  See previous messages for problems.\")\n    in\n\n    (* Check that nbdkit is available and new enough. *)\n    let error_unless_nbdkit_working () =\n      if not (Nbdkit.is_installed ()) then\n        error (f_\"nbdkit is not installed or not working.  It is required \\\n                  to use ‘-o ovirt-upload’.  See the virt-v2v-output-ovirt(1) \\\n                  manual.\")\n    in\n\n    (* Check that the python3 plugin is installed and working\n     * and can load the plugin script.\n     *)\n    let error_unless_nbdkit_python_plugin_working plugin_script =\n      let cmd = sprintf \"nbdkit python %s --dump-plugin >/dev/null\"\n                  (quote (Python_script.path plugin_script)) in\n      debug \"%s\" cmd;\n      if Sys.command cmd <> 0 then\n        error (f_\"nbdkit python plugin is not installed or not working.  \\\n                  It is required if you want to use ‘-o ovirt-upload’.\n\nSee also the virt-v2v-output-ovirt(1) manual.\");\n    in\n\n    (* Check that nbdkit was compiled with SELinux support (for the\n     * --selinux-label option).\n     *)\n    let error_unless_nbdkit_compiled_with_selinux () =\n      if have_selinux () then (\n        let config = Nbdkit.config () in\n        let selinux = try List.assoc \"selinux\" config with Not_found -> \"no\" in\n        if selinux = \"no\" then\n          error (f_\"nbdkit was compiled without SELinux support.  You will \\\n                    have to recompile nbdkit with libselinux-devel installed, \\\n                    or else set SELinux to Permissive mode while doing the \\\n                    conversion.\")\n      )\n    in\n\n    Python_script.error_unless_python_interpreter_found ();\n    error_unless_ovirtsdk4_module_available ();\n    error_unless_nbdkit_working ();\n    error_unless_nbdkit_compiled_with_selinux ();\n\n    (* Python code. *)\n    let precheck_script =\n      Python_script.create ~name:\"ovirt-upload-precheck.py\"\n        Output_ovirt_upload_precheck_source.code in\n    let vmcheck_script =\n      Python_script.create ~name:\"ovirt-upload-vmcheck.py\"\n        Output_ovirt_upload_vmcheck_source.code in\n    let plugin_script =\n      Python_script.create ~name:\"ovirt-upload-plugin.py\"\n        Output_ovirt_upload_plugin_source.code in\n    let transfer_script =\n      Python_script.create ~name:\"ovirt-upload-transfer.py\"\n        Output_ovirt_upload_transfer_source.code in\n    let finalize_script =\n      Python_script.create ~name:\"ovirt-upload-finalize.py\"\n        Output_ovirt_upload_finalize_source.code in\n    let cancel_script =\n      Python_script.create ~name:\"ovirt-upload-cancel.py\"\n        Output_ovirt_upload_cancel_source.code in\n    let createvm_script =\n      Python_script.create ~name:\"ovirt-upload-createvm.py\"\n        Output_ovirt_upload_createvm_source.code in\n\n    error_unless_nbdkit_python_plugin_working plugin_script;\n\n    (* JSON parameters which are invariant between disks. *)\n    let json_params = [\n      \"verbose\", JSON.Bool (verbose ());\n\n      \"output_conn\", JSON.String output_conn;\n      \"output_password\", JSON.String output_password;\n      \"output_storage\", JSON.String output_storage;\n      \"ovirt_cafile\", json_optstring ovirt_cafile;\n      \"ovirt_cluster\",\n      JSON.String (Option.value ~default:\"Default\" ovirt_cluster);\n      \"ovirt_direct\", JSON.Bool ovirt_direct;\n\n      (* The 'Insecure' flag seems to be a number with various possible\n       * meanings, however we just set it to True/False.\n       *\n       * https://github.com/oVirt/ovirt-engine-sdk/blob/19aa7070b80e60a4cfd910448287aecf9083acbe/sdk/lib/ovirtsdk4/__init__.py#L395\n       *)\n      \"insecure\", JSON.Bool (not ovirt_verifypeer);\n    ] in\n\n    (* nbdkit command line which is invariant between disks. *)\n    let cmd = Nbdkit.create \"python\" in\n    Nbdkit.add_arg cmd \"script\" (Python_script.path plugin_script);\n\n    (* Match number of parallel coroutines in qemu-img *)\n    Nbdkit.set_threads cmd 8;\n\n    (* Python code prechecks. *)\n    let json_params = match ovirt_disk_uuids with\n      | None -> json_params\n      | Some uuids ->\n         let ids = List.map (fun uuid -> JSON.String uuid) uuids in\n         (\"ovirt_disk_uuids\", JSON.List ids) :: json_params\n    in\n    let precheck_json = dir // \"v2vprecheck.json\" in\n    let fd = Unix.openfile precheck_json [O_WRONLY; O_CREAT; O_TRUNC] 0o600 in\n    if Python_script.run_command ~stdout_fd:fd\n         precheck_script json_params [] <> 0 then\n      error (f_\"failed server prechecks, see earlier errors\");\n    if verbose () then\n      debug \"precheck output before parsing: %s\"\n            (read_whole_file precheck_json);\n    let json = JSON_parser.json_parser_tree_parse_file precheck_json in\n    debug \"precheck output parsed as: %s\"\n      (JSON.string_of_doc ~fmt:JSON.Indented [\"\", json]);\n    let ovirt_storagedomain_uuid =\n      Some (JSON_parser.object_get_string \"ovirt_storagedomain_uuid\" json) in\n    let ovirt_cluster_uuid =\n      Some (JSON_parser.object_get_string \"ovirt_cluster_uuid\" json) in\n    let ovirt_cluster_cpu_architecture =\n      Some (JSON_parser.object_get_string \"ovirt_cluster_cpu_architecture\" json) in\n\n    (* If the disk UUIDs were not provided, then generate them.\n     * This is simpler than letting oVirt generate them and trying\n     * to read them back from oVirt.\n     *)\n    let disk_uuids =\n      match ovirt_disk_uuids with\n      | Some uuids ->\n         let nr_disks = List.length input_disks in\n         if List.length uuids <> nr_disks then\n           error (f_\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on \\\n                     the command line has to match the number of guest \\\n                     disk images (for this guest: %d)\") nr_disks;\n         uuids\n      | None -> List.map (fun _ -> uuidgen ()) input_disks in\n\n    (* This will accumulate the list of transfer IDs from the transfer\n     * script.\n     *)\n    let transfer_ids = ref [] in\n\n    let ovirt_cluster_name =\n      match List.assoc \"ovirt_cluster\" json_params with\n      | JSON.String s -> s\n      | _ -> assert false in\n\n    let json_params =\n      (\"output_name\", JSON.String output_name) :: json_params in\n\n    (* Check that the VM does not exist.  This can't run in #precheck because\n     * we need to know the name of the virtual machine.\n     *)\n    if Python_script.run_command vmcheck_script json_params [] <> 0 then\n      error (f_\"failed vmchecks, see earlier errors\");\n\n    (* Cancel the transfer and delete disks.\n     *\n     * This ignores errors since the only time we are doing this is on\n     * the failure path.\n     *)\n    let cancel transfer_ids disk_uuids =\n      let ids = List.map (fun id -> JSON.String id) transfer_ids in\n      let json_params = (\"transfer_ids\", JSON.List ids) :: json_params in\n      let ids = List.map (fun uuid -> JSON.String uuid) disk_uuids in\n      let json_params = (\"disk_uuids\", JSON.List ids) :: json_params in\n      ignore (Python_script.run_command cancel_script json_params [])\n    in\n\n    (* Set up an at-exit handler to perform some cleanups.\n     * - Kill nbdkit PIDs (only before finalization).\n     * - Delete the orphan disks (only on conversion failure).\n     *)\n    let nbdkit_pids = ref [] in\n    On_exit.f (\n      fun () ->\n        (* Kill the nbdkit PIDs. *)\n        List.iter (\n          fun pid ->\n            try kill pid Sys.sigterm\n            with exn -> debug \"%s\" (Printexc.to_string exn)\n        ) !nbdkit_pids;\n        nbdkit_pids := [];\n\n        (* virt-v2v writes v2vdir/done on success only. *)\n        let success = Sys.file_exists (dir // \"done\") in\n        if not success then (\n          if disk_uuids <> [] then\n            cancel !transfer_ids disk_uuids\n        )\n    );\n\n    (* Create an nbdkit instance for each disk and set the\n     * target URI to point to the NBD socket.\n     *)\n    let uris =\n      List.mapi (\n        fun i (size, uuid) ->\n          let socket = sprintf \"%s/out%d\" dir i in\n          On_exit.unlink socket;\n\n          let disk_name = sprintf \"%s-%03d\" output_name i in\n          let json_params =\n            (\"disk_name\", JSON.String disk_name) :: json_params in\n\n          let disk_format =\n            match output_format with\n            | \"raw\" as fmt -> fmt\n            | \"qcow2\" as fmt -> fmt\n            | _ ->\n               error (f_\"ovirt-upload: -of %s: Only output format ‘raw’ \\\n                         or ‘qcow2’ \\\n                         is supported.  If the input is in a different format \\\n                         then force one of these output formats by adding \\\n                         either ‘-of raw’ or ‘-of qcow2’ on the command line.\")\n                 output_format in\n          let json_params =\n            (\"disk_format\", JSON.String disk_format) :: json_params in\n\n          let json_params =\n            (\"disk_size\", JSON.Int size) :: json_params in\n\n          let json_params =\n            (\"disk_uuid\", JSON.String uuid) :: json_params in\n\n          (* Write the JSON parameters to a file. *)\n          let json_param_file = dir // sprintf \"out.params%d.json\" i in\n          with_open_out\n            json_param_file\n            (fun chan -> output_string chan (JSON.string_of_doc json_params));\n\n          (* Start the transfer. *)\n          let transfer_json = dir // sprintf \"v2vtransfer%d.json\" i in\n          let fd =\n            Unix.openfile transfer_json [O_WRONLY; O_CREAT; O_TRUNC] 0o600 in\n          if Python_script.run_command ~stdout_fd:fd\n               transfer_script json_params [] <> 0 then\n            error (f_\"failed to start transfer, see earlier errors\");\n          if verbose () then\n            debug \"transfer output before parsing: %s\"\n              (read_whole_file transfer_json);\n          let json = JSON_parser.json_parser_tree_parse_file transfer_json in\n          debug \"transfer output parsed as: %s\"\n            (JSON.string_of_doc ~fmt:JSON.Indented [\"\", json]);\n          let destination_url =\n            JSON_parser.object_get_string \"destination_url\" json in\n          let transfer_id =\n            JSON_parser.object_get_string \"transfer_id\" json in\n          List.push_back transfer_ids transfer_id;\n          let is_ovirt_host =\n            JSON_parser.object_get_bool \"is_ovirt_host\" json in\n\n          (* Create the nbdkit instance. *)\n          Nbdkit.add_arg cmd \"size\" (Int64.to_string size);\n          Nbdkit.add_arg cmd \"url\" destination_url;\n          Option.iter (Nbdkit.add_arg cmd \"cafile\") ovirt_cafile;\n          if not ovirt_verifypeer then\n            Nbdkit.add_arg cmd \"insecure\" \"true\";\n          if is_ovirt_host then\n            Nbdkit.add_arg cmd \"is_ovirt_host\" \"true\";\n          let _, pid = Nbdkit.run_unix socket cmd in\n          List.push_front pid nbdkit_pids;\n\n          NBD_URI.Unix (socket, None)\n      ) (List.combine input_sizes disk_uuids) in\n\n    (* Stash some data we will need during finalization. *)\n    let t = (input_sizes : int64 list), disk_uuids, !transfer_ids,\n            finalize_script, createvm_script, json_params,\n            ovirt_storagedomain_uuid, ovirt_cluster_uuid,\n            ovirt_cluster_cpu_architecture, ovirt_cluster_name, nbdkit_pids in\n\n    t, uris\n\n  and json_optstring = function\n    | Some s -> JSON.String s\n    | None -> JSON.Null\n\n  let finalize dir options t output_disks source inspect target_meta =\n    let output_conn, output_format,\n        output_password, output_name, output_storage,\n        ovirt_cafile, ovirt_cluster, ovirt_direct,\n        ovirt_verifypeer, ovirt_disk_uuids = options in\n    let input_sizes, disk_uuids, transfer_ids,\n        finalize_script, createvm_script, json_params,\n        ovirt_storagedomain_uuid, ovirt_cluster_uuid,\n        ovirt_cluster_cpu_architecture, ovirt_cluster_name,\n        nbdkit_pids = t in\n\n    (* Check the cluster CPU arch matches what we derived about the\n     * guest during conversion.\n     *)\n    (match ovirt_cluster_cpu_architecture with\n     | None -> assert false\n     | Some arch ->\n        if arch <> target_meta.guestcaps.gcaps_arch then\n          error (f_\"the cluster ‘%s’ does not support the architecture %s \\\n                    but %s\")\n            ovirt_cluster_name target_meta.guestcaps.gcaps_arch arch\n    );\n\n    (* We must kill all our nbdkit instances before finalizing the\n     * transfer.  See:\n     * https://listman.redhat.com/archives/libguestfs/2022-February/msg00111.html\n     *\n     * We want to fail here if the kill fails because nbdkit\n     * died already, as that would be unexpected.\n     *)\n    let () =\n      let pids = !nbdkit_pids in\n      List.iter (fun pid -> kill pid Sys.sigterm) pids;\n      List.iter (fun pid -> ignore (waitpid [] pid)) pids;\n      nbdkit_pids := [] (* Don't kill them again in the On_exit handler. *) in\n\n    (* Finalize all the transfers. *)\n    let json_params =\n      let ids = List.map (fun id -> JSON.String id) transfer_ids in\n      let json_params = (\"transfer_ids\", JSON.List ids) :: json_params in\n      let ids = List.map (fun uuid -> JSON.String uuid) disk_uuids in\n      let json_params = (\"disk_uuids\", JSON.List ids) :: json_params in\n      json_params in\n    if Python_script.run_command finalize_script json_params [] <> 0 then\n      error (f_\"failed to finalize the transfers, see earlier errors\");\n\n    (* The storage domain UUID. *)\n    let sd_uuid =\n      match ovirt_storagedomain_uuid with\n      | None -> assert false\n      | Some uuid -> uuid in\n\n    (* The volume and VM UUIDs are made up. *)\n    let vol_uuids = List.map (fun _ -> uuidgen ()) input_sizes\n    and vm_uuid = uuidgen () in\n\n    (* Create the metadata. *)\n    let ovf =\n      Create_ovf.create_ovf source inspect target_meta input_sizes\n        Sparse output_format output_name\n        sd_uuid disk_uuids vol_uuids output_disks vm_uuid OVirt in\n    let ovf = DOM.doc_to_string ovf in\n\n    let json_params =\n      match ovirt_cluster_uuid with\n      | None -> assert false\n      | Some uuid -> (\"ovirt_cluster_uuid\", JSON.String uuid) :: json_params in\n\n    let ovf_file = dir // \"vm.ovf\" in\n    with_open_out ovf_file (fun chan -> output_string chan ovf);\n    if Python_script.run_command createvm_script json_params [ovf_file] <> 0\n    then\n      error (f_\"failed to create virtual machine, see earlier errors\")\n\n  (* The imageio server has high overhead per request. Using 4 MiB\n   * request size is 1.8x times faster compared with nbdcopy default\n   * request size (256k).\n   *)\n  let request_size = Some (4*1024*1024)\nend\n"
  },
  {
    "path": "output/output_ovirt_upload.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** [-o ovirt-upload] output mode. *)\n\nmodule OVirtUpload : Output.OUTPUT\n"
  },
  {
    "path": "output/output_ovirt_upload_cancel_source.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2019 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nval code : string\n"
  },
  {
    "path": "output/output_ovirt_upload_createvm_source.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2018 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nval code : string\n"
  },
  {
    "path": "output/output_ovirt_upload_finalize_source.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2019 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nval code : string\n"
  },
  {
    "path": "output/output_ovirt_upload_plugin_source.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2018 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nval code : string\n"
  },
  {
    "path": "output/output_ovirt_upload_precheck_source.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2019 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nval code : string\n"
  },
  {
    "path": "output/output_ovirt_upload_transfer_source.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2019 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nval code : string\n"
  },
  {
    "path": "output/output_ovirt_upload_vmcheck_source.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2018 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nval code : string\n"
  },
  {
    "path": "output/output_qemu.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\n\nopen Output\n\nmodule QEMU = struct\n  type poptions = bool * bool *\n                  Types.output_allocation * string * string * string\n\n  type t = unit\n\n  let to_string options =\n    \"-o qemu\" ^\n      match options.output_storage with\n      | Some os -> \" -os \" ^ os\n      | None -> \"\"\n\n  let query_output_options () =\n    printf (f_\"Output options (-oo) which can be used with -o qemu:\n\n  -oo compressed      Compress the output file (used only with -of qcow2)\n  -oo qemu-boot       Boot the guest in qemu after conversion\n\")\n\n  let parse_options options source =\n    if options.output_password <> None then\n      error_option_cannot_be_used_in_output_mode \"qemu\" \"-op\";\n\n    let compressed = ref false\n    and qemu_boot = ref false in\n    List.iter (\n      function\n      | \"compressed\", \"\" -> compressed := true\n      | \"compressed\", v -> compressed := bool_of_string v\n      | \"qemu-boot\", \"\" -> qemu_boot := true\n      | \"qemu-boot\", v -> qemu_boot := bool_of_string v\n      | k, _ ->\n         error (f_\"-o qemu: unknown output option ‘-oo %s’\") k\n    ) options.output_options;\n    let compressed = !compressed\n    and qemu_boot = !qemu_boot in\n\n    (* -os must be set to a directory. *)\n    let output_storage =\n      match options.output_storage with\n      | None ->\n         error (f_\"-o qemu: output directory was not specified, use '-os /dir'\")\n      | Some d when not (is_directory d) ->\n         error (f_\"-os %s: output directory does not exist or is \\\n                   not a directory\") d\n      | Some d -> d in\n\n    let output_name = Option.value ~default:source.s_name options.output_name in\n\n    (compressed, qemu_boot, options.output_alloc, options.output_format,\n     output_name, output_storage)\n\n  let setup dir options source input_disks =\n    let input_sizes = get_disk_sizes input_disks in\n    let compressed, _, output_alloc, output_format,\n        output_name, output_storage = options in\n\n    let uris =\n      List.mapi (\n        fun i size ->\n          let socket = sprintf \"%s/out%d\" dir i in\n          On_exit.unlink socket;\n\n          (* Create the actual output disk. *)\n          let outdisk = disk_path output_storage output_name i in\n          output_to_local_file ~compressed output_alloc output_format\n            outdisk size socket;\n\n          NBD_URI.Unix (socket, None)\n      ) input_sizes in\n\n    (), uris\n\n  let finalize dir options () output_disks source inspect target_meta =\n    let _, qemu_boot, output_alloc, output_format,\n        output_name, output_storage = options in\n\n    let { guestcaps; target_buses;\n          target_firmware; target_boot_device } = target_meta in\n\n    (* Start the shell script.  Write it to a temporary file\n     * which we rename at the end.\n     *)\n    let file = output_storage // (sanitize_slash output_name) ^ \".sh\" in\n    let tmpfile = file ^ \".tmp\" in\n    On_exit.unlink tmpfile;\n\n    let chan = open_out tmpfile in\n    let fpf fs = fprintf chan fs in\n    fpf \"#!/bin/sh -\\n\";\n    fpf \"\\n\";\n    fpf \"set -e\\n\";\n    fpf \"#set -x\\n\";\n    fpf \"\\n\";\n\n    (* Allow the user to override our choice of machine type. *)\n    let () =\n      let machine_str =\n        match guestcaps.gcaps_machine with\n        | I440FX -> \"pc\"\n        | Q35 -> \"q35\"\n        | Virt -> \"virt\" in\n      fpf \"machine=%s\\n\" machine_str;\n      fpf \"\\n\" in\n\n    (* If the firmware is UEFI, locate the OVMF files. *)\n    (match target_firmware with\n     | TargetBIOS -> ()\n     | TargetUEFI ->\n        let prefix =\n          match guestcaps.gcaps_arch with\n          | \"x86_64\" ->\n             fpf \"uefi_dir=/usr/share/OVMF\\n\"; \"OVMF\"\n          | \"aarch64\" ->\n             fpf \"uefi_dir=/usr/share/AAVMF\\n\"; \"AAVMF\"\n          | arch ->\n             error (f_\"don’t know how to convert UEFI guests \\\n                       for architecture %s\")\n               arch in\n        fpf \"uefi_code=\\\"$( \\\n             find $uefi_dir -name '%s_CODE*.fd' -print -quit )\\\"\\n\"\n          prefix;\n        fpf \"uefi_vars_template=\\\"$( \\\n             find $uefi_dir -name '%s_VARS.fd' -print -quit )\\\"\\n\"\n          prefix;\n        fpf \"\\n\";\n        fpf \"# Make a copy of the UEFI variables template\\n\";\n        fpf \"uefi_vars=\\\"$(mktemp)\\\"\\n\";\n        fpf \"cp \\\"$uefi_vars_template\\\" \\\"$uefi_vars\\\"\\n\";\n        fpf \"\\n\";\n        fpf \"smm=off\\n\";\n    );\n\n    (* Construct the command line.  Note that the [Qemuopts]\n     * module deals with shell and qemu comma quoting.\n     *)\n    let cmd = Qemuopts.create () in\n    Qemuopts.set_binary_by_arch cmd (Some guestcaps.gcaps_arch);\n\n    let flag = Qemuopts.flag cmd\n    and arg = Qemuopts.arg cmd\n    and arg_noquote = Qemuopts.arg_noquote cmd\n    and arg_list = Qemuopts.arg_list cmd in\n\n    flag \"-no-user-config\"; flag \"-nodefaults\";\n    arg \"-name\" output_name;\n\n    (match source.s_genid with\n     | None -> ()\n     | Some genid ->\n        arg_list \"-device\" [\"vmgenid\"; sprintf \"guid=%s\" genid; \"id=vmgenid0\"]\n    );\n\n    if not guestcaps.gcaps_rtc_utc then arg \"-rtc\" \"base=localtime\";\n\n    arg_noquote \"-machine\" \"$machine${smm:+,smm=$smm},accel=kvm:tcg\";\n\n    fpf \"if [ \\\"$uefi_code\\\" != \\\"\\\" ]; then\\n\";\n    fpf \"    uefi_args=\\\"\\\\\\n\";\n    fpf \"    -global driver=cfi.pflash01,property=secure,value=$smm \\\\\\n\";\n    fpf \"    -drive if=pflash,format=raw,file=$uefi_code,readonly=on \\\\\\n\";\n    fpf \"    -drive if=pflash,format=raw,file=$uefi_vars \\\\\\n\";\n    fpf \"    \\\"\\n\";\n    fpf \"fi\\n\";\n    fpf \"\\n\";\n    Qemuopts.raw cmd \"$uefi_args\";\n\n    arg \"-m\" (Int64.to_string (source.s_memory /^ 1024L /^ 1024L));\n\n    arg \"-cpu\" (Option.value ~default:\"host\" source.s_cpu_model);\n\n    if source.s_vcpu > 1 then (\n      (match source.s_cpu_topology with\n       | None ->\n          arg \"-smp\" (string_of_int source.s_vcpu)\n       | Some { s_cpu_sockets; s_cpu_cores; s_cpu_threads } ->\n          let args = [\n              sprintf \"cpus=%d\" source.s_vcpu;\n              sprintf \"sockets=%d\" s_cpu_sockets;\n              sprintf \"cores=%d\" s_cpu_cores;\n              sprintf \"threads=%d\" s_cpu_threads;\n            ] in\n          arg_list \"-smp\" args\n      );\n    );\n\n    (* For IDE disks, IDE CD-ROMs, SCSI disks, SCSI CD-ROMs, and floppies, we\n     * need host-bus adapters (HBAs) between these devices and the PCI(e) root\n     * bus. Some machine types create these HBAs automatically (despite\n     * \"-no-user-config -nodefaults\"), some don't...\n     *)\n    let disk_cdrom_filter =\n      function\n      | BusSlotDisk _\n      | BusSlotRemovable { s_removable_type = CDROM } -> true\n      | _ -> false\n    and floppy_filter =\n      function\n      | BusSlotRemovable { s_removable_type = Floppy } -> true\n      | _ -> false\n    in\n    let ide_ctrl_needed =\n      Array.exists disk_cdrom_filter target_buses.target_ide_bus\n    and scsi_ctrl_needed =\n      Array.exists disk_cdrom_filter target_buses.target_scsi_bus\n    and floppy_ctrl_needed =\n      Array.exists floppy_filter target_buses.target_floppy_bus in\n\n    if ide_ctrl_needed then (\n      match guestcaps.gcaps_machine with\n      | I440FX -> ()\n        (* The PC machine has a built-in controller of type \"piix3-ide\"\n         * providing buses \"ide.0\" and \"ide.1\", with each bus fitting two\n         * devices.\n         *)\n      | Q35 -> ()\n        (* The Q35 machine has a built-in controller of type \"ich9-ahci\"\n         * providing buses \"ide.0\" through \"ide.5\", with each bus fitting one\n         * device.\n         *)\n      | Virt -> warning (f_\"The Virt machine has no support for IDE. Please \\\n                            report a bug for virt-v2v -- refer to virt-v2v(1) \\\n                            section \\\"BUGS\\\".\")\n    );\n\n    if scsi_ctrl_needed then\n      (* We need to add the virtio-scsi HBA on all three machine types. The bus\n       * provided by this device will be called \"scsi0.0\".\n       *)\n      arg_list \"-device\" [ \"virtio-scsi-pci\"; \"id=scsi0\" ];\n\n    if floppy_ctrl_needed then (\n      match guestcaps.gcaps_machine with\n      | I440FX -> ()\n        (* The PC machine has a built-in controller of type \"isa-fdc\"\n         * providing bus \"floppy-bus.0\", fitting two devices.\n         *)\n      | Q35 -> arg_list \"-device\" [ \"isa-fdc\"; \"id=floppy-bus\" ]\n        (* On the Q35 machine, we need to add the same HBA manually. Note that\n         * the bus name will have \".0\" appended automatically.\n         *)\n      | Virt -> warning (f_\"The Virt machine has no support for floppies. \\\n                            Please report a bug for virt-v2v -- refer to \\\n                            virt-v2v(1) section \\\"BUGS\\\".\")\n    );\n\n    let add_disk_backend disk_id backend_name =\n      (* Add a drive (back-end) for a \"virtio-blk-pci\", \"ide-hd\", or \"scsi-hd\"\n       * device (front-end). The drive has a backing file, identified by\n       * \"disk_id\".\n       *)\n      let outdisk = disk_path output_storage output_name disk_id in\n      let bootindex =\n         match target_boot_device with\n         | None -> disk_id+1\n         | Some disk_index when disk_index = disk_id -> 1\n         | Some _ -> disk_id+2 in\n      arg_list \"-drive\" [ \"file=\" ^ outdisk;\n                          \"format=\" ^ output_format;\n                          \"if=none\";\n                          \"id=\" ^ backend_name;\n                          \"media=disk\";\n                          sprintf \"bootindex=%d\" bootindex ]\n\n    and add_cdrom_backend backend_name =\n      (* Add a drive (back-end) for an \"ide-cd\" or \"scsi-cd\" device (front-end).\n       * The drive is empty -- there is no backing file.\n       *)\n      arg_list \"-drive\" [ \"if=none\"; \"id=\" ^ backend_name; \"media=cdrom\" ]\n\n    and add_floppy_backend backend_name =\n      (* Add a drive (back-end) for a \"floppy\" device (front-end). The drive is\n       * empty -- there is no backing file. *)\n      arg_list \"-drive\" [ \"if=none\"; \"id=\" ^ backend_name; \"media=disk\" ]\n    in\n\n    let add_virtio_blk disk_id frontend_ctr =\n      (* Create a \"virtio-blk-pci\" device (front-end), together with its drive\n       * (back-end). The disk identifier is mandatory.\n       *)\n      let backend_name = sprintf \"drive-vblk-%d\" frontend_ctr in\n      add_disk_backend disk_id backend_name;\n      arg_list \"-device\" [ \"virtio-blk-pci\"; \"drive=\" ^ backend_name ]\n\n    and add_ide disk_id frontend_ctr =\n      (* Create an \"ide-hd\" or \"ide-cd\" device (front-end), together with its\n       * drive (back-end). If a disk identifier is passed in, then \"ide-hd\" is\n       * created (with a non-empty drive); otherwise, \"ide-cd\" is created (with\n       * an empty drive).\n       *)\n      let backend_name = sprintf \"drive-ide-%d\" frontend_ctr\n      and ide_bus, ide_unit =\n        match guestcaps.gcaps_machine with\n        | I440FX -> frontend_ctr / 2, frontend_ctr mod 2\n        | Q35 -> frontend_ctr, 0\n        | Virt -> 0, 0 (* should never happen, see warning above *) in\n      let common_props = [ sprintf \"bus=ide.%d\" ide_bus;\n                           sprintf \"unit=%d\" ide_unit;\n                           \"drive=\" ^ backend_name ] in\n      (match disk_id with\n       | Some id ->\n           add_disk_backend id backend_name;\n           arg_list \"-device\" (\"ide-hd\" :: common_props)\n       | None ->\n           add_cdrom_backend backend_name;\n           arg_list \"-device\" (\"ide-cd\" :: common_props))\n\n    and add_scsi disk_id frontend_ctr =\n      (* Create a \"scsi-hd\" or \"scsi-cd\" device (front-end), together with its\n       * drive (back-end). If a disk identifier is passed in, then \"scsi-hd\" is\n       * created (with a non-empty drive); otherwise, \"scsi-cd\" is created (with\n       * an empty drive).\n       *)\n      let backend_name = sprintf \"drive-scsi-%d\" frontend_ctr in\n      let common_props = [ \"bus=scsi0.0\";\n                           sprintf \"lun=%d\" frontend_ctr;\n                           \"drive=\" ^ backend_name ] in\n      (match disk_id with\n       | Some id ->\n           add_disk_backend id backend_name;\n           arg_list \"-device\" (\"scsi-hd\" :: common_props)\n       | None ->\n           add_cdrom_backend backend_name;\n           arg_list \"-device\" (\"scsi-cd\" :: common_props))\n\n    and add_floppy frontend_ctr =\n      (* Create a \"floppy\" (front-end), together with its empty drive\n       * (back-end).\n       *)\n      let backend_name = sprintf \"drive-floppy-%d\" frontend_ctr in\n      add_floppy_backend backend_name;\n      arg_list \"-device\" [ \"floppy\"; \"bus=floppy-bus.0\";\n                           sprintf \"unit=%d\" frontend_ctr;\n                           \"drive=\" ^ backend_name ]\n    in\n\n    (* Add virtio-blk-pci devices for BusSlotDisk elements on\n     * \"target_virtio_blk_bus\".\n     *)\n    Array.iteri\n      (fun frontend_ctr disk ->\n         match disk with\n         | BusSlotDisk d -> add_virtio_blk d.s_disk_id frontend_ctr\n         | _ -> ())\n      target_buses.target_virtio_blk_bus;\n\n    let add_disk_or_cdrom bus_adder frontend_ctr slot =\n      (* Add a disk or CD-ROM front-end to the IDE or SCSI bus. *)\n      match slot with\n      | BusSlotDisk d ->\n          bus_adder (Some d.s_disk_id) frontend_ctr\n      | BusSlotRemovable { s_removable_type = CDROM } ->\n          bus_adder None frontend_ctr\n      | _ -> ()\n    in\n\n    (* Add disks and CD-ROMs to the IDE and SCSI buses. *)\n    Array.iteri (add_disk_or_cdrom add_ide) target_buses.target_ide_bus;\n    Array.iteri (add_disk_or_cdrom add_scsi) target_buses.target_scsi_bus;\n\n    (* Add floppies. *)\n    Array.iteri\n      (fun frontend_ctr disk ->\n         match disk with\n         | BusSlotRemovable { s_removable_type = Floppy } ->\n             add_floppy frontend_ctr\n         | _ -> ())\n      target_buses.target_floppy_bus;\n\n    let net_bus =\n      match guestcaps.gcaps_net_bus with\n      | Virtio_net -> \"virtio-net-pci\"\n      | E1000 -> \"e1000\"\n      | RTL8139 -> \"rtl8139\" in\n    List.iteri (\n      fun i nic ->\n        arg_list \"-netdev\" [\"user\"; \"id=net\" ^ string_of_int i];\n        arg_list \"-device\" ([net_bus;\n                             sprintf \"netdev=net%d\" i] @\n                              (match nic.s_mac with\n                               | None -> []\n                               | Some mac -> [\"mac=\" ^ mac]))\n      ) target_meta.target_nics;\n\n    (* Add a display. *)\n    (match source.s_display with\n     | None -> ()\n     | Some display ->\n        (match display.s_display_type with\n         | Window ->\n            arg \"-display\" \"gtk\"\n         | VNC ->\n            arg \"-display\" \"vnc=:0\"\n         | Spice ->\n            arg_list \"-spice\" [sprintf \"port=%d\"\n                                 (match display.s_port with\n                                  | None -> 5900\n                                  | Some p -> p);\n                               \"addr=127.0.0.1\"]\n        );\n        arg \"-vga\" \"std\"\n    );\n\n    (* Add a sound card. *)\n    (match source.s_sound with\n     | None -> ()\n     | Some { s_sound_model = model } ->\n        if qemu_supports_sound_card model then (\n          match model with\n          | AC97      -> arg \"-device\" \"AC97\"\n          | ES1370    -> arg \"-device\" \"ES1370\"\n          | ICH6      -> arg \"-device\" \"intel-hda\"; arg \"-device\" \"hda-duplex\"\n          (* XXX ich9 is a q35-only device, so it's not likely\n             that this will work unless we can force q35 above: *)\n          | ICH9      -> arg \"-device\" \"ich9-intel-hda\"\n          | PCSpeaker -> arg \"-soundhw\" \"pcspk\" (* not qdev-ified *)\n          | SB16      -> arg \"-device\" \"sb16\"\n          | USBAudio  -> arg \"-device\" \"usb-audio\"\n        )\n    );\n\n    (* Add the miscellaneous KVM devices. *)\n    if guestcaps.gcaps_virtio_rng then (\n      arg_list \"-object\" [\"rng-random\"; \"filename=/dev/urandom\"; \"id=rng0\"];\n      arg_list \"-device\" [\"virtio-rng-pci\"; \"rng=rng0\"];\n    );\n    if guestcaps.gcaps_virtio_balloon then\n      arg \"-device\" \"virtio-balloon\";\n    if guestcaps.gcaps_isa_pvpanic then\n      arg_list \"-device\" [\"pvpanic\"; \"ioport=0x505\"];\n    if guestcaps.gcaps_virtio_socket then (\n      (* qemu requires a free guest CID to be chosen.  If you use libvirt\n       * then it does this by iterating over the CIDs doing\n       * ioctl(fd, VHOST_VSOCK_SET_GUEST_CID, &val) on each one until\n       * it finds a free CID.  See:\n       * https://bugzilla.redhat.com/show_bug.cgi?id=1291851#c6\n       *\n       * As that is essentially impossible to do from the shell script,\n       * instead assign a semi-random one here.  Using the PID of\n       * virt-v2v means that we're most likely to assign an unused\n       * CID, especially with modern Linux which has a very large\n       * PID space.  Note that CID must be [3..UINT32_MAX-1] and\n       * max PID in Linux is 2^22.\n       *)\n      let pid = getpid () in\n      let pid = max 3 pid in\n      (* In OCaml 4.13 we could use this, if we were worried about a\n         future system having very large PIDs:\n         let pid = Int64.( min (max 3L (of_int (getpid ())))\n                               (of_int32 Int32.max_int) ) in\n       *)\n      let guest_cid = sprintf \"guest-cid=%d\" pid in\n      arg_list \"-device\" [\"vhost-vsock-pci\"; guest_cid ]\n    );\n\n    (* Add a serial console to Linux guests. *)\n    if inspect.i_type = \"linux\" then\n      arg \"-serial\" \"stdio\";\n\n    (* Write the qemu command. *)\n    Qemuopts.to_chan cmd chan;\n\n    (* Finish off by renaming the temporary file to the final file\n     * and making it executable.\n     *)\n    Unix.rename tmpfile file;\n    Unix.chmod file 0o755;\n\n    (* If -oo qemu-boot option was specified then we should boot the guest. *)\n    if qemu_boot then (\n      let cmd = sprintf \"%s &\" (quote file) in\n      ignore (shell_command cmd)\n    )\n\n  let request_size = None\nend\n"
  },
  {
    "path": "output/output_qemu.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** [-o qemu] output mode. *)\n\nmodule QEMU : Output.OUTPUT\n"
  },
  {
    "path": "output/output_vdsm.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\nopen Types\nopen Utils\n\nopen Output\n\nmodule VDSM = struct\n  type poptions = Types.output_allocation * string * string * string *\n                  string list * string list * string * string *\n                  string * Create_ovf.ovf_flavour\n\n  type t = string * string * int64 list\n\n  let to_string options = \"-o vdsm\"\n\n  let query_output_options () =\n    let ovf_flavours_str = String.concat \"|\" Create_ovf.ovf_flavours in\n\n    printf (f_\"Output options (-oo) which can be used with -o vdsm:\n\n  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\n                                   (default: 0.10)\n  -oo vdsm-vm-uuid=UUID        VM UUID (required)\n  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\n  -oo vdsm-ovf-flavour=%s\n                               Set the type of generated OVF (default: ovirtexp)\n\nFor each disk you must supply one of each of these options:\n\n  -oo vdsm-image-uuid=UUID     Image directory UUID\n  -oo vdsm-vol-uuid=UUID       Disk volume UUID\n\") ovf_flavours_str\n\n  let parse_options options source =\n    if options.output_password <> None then\n      error_option_cannot_be_used_in_output_mode \"vdsm\" \"-op\";\n\n    let vm_uuid = ref None in\n    let ovf_output = ref None in (* default \".\" *)\n    let compat = ref \"0.10\" in\n    let ovf_flavour = ref Create_ovf.OVirtExportStorageDomain in\n    let image_uuids = ref [] in\n    let vol_uuids = ref [] in\n\n    List.iter (\n      function\n      | \"vdsm-compat\", \"0.10\" -> compat := \"0.10\"\n      | \"vdsm-compat\", \"1.1\" -> compat := \"1.1\"\n      | \"vdsm-compat\", v ->\n         error (f_\"-o vdsm: unknown vdsm-compat level ‘%s’\") v\n      | \"vdsm-vm-uuid\", v ->\n         if !vm_uuid <> None then\n           error (f_\"-o vdsm: -oo vdsm-vm-uuid set more than once\");\n         vm_uuid := Some v;\n      | \"vdsm-ovf-output\", v ->\n         if !ovf_output <> None then\n           error (f_\"-o vdsm: -oo vdsm-ovf-output set more than once\");\n         ovf_output := Some v;\n      | \"vdsm-ovf-flavour\", v ->\n         ovf_flavour := Create_ovf.ovf_flavour_of_string v\n      | \"vdsm-image-uuid\", v ->\n         List.push_front v image_uuids\n      | \"vdsm-vol-uuid\", v ->\n         List.push_front v vol_uuids\n      | k, _ ->\n         error (f_\"-o vdsm: unknown output option ‘-oo %s’\") k\n    ) options.output_options;\n\n    let compat = !compat in\n    let image_uuids = List.rev !image_uuids in\n    let vol_uuids = List.rev !vol_uuids in\n    if image_uuids = [] || vol_uuids = [] then\n      error (f_\"-o vdsm: either -oo vdsm-vol-uuid or \\\n                -oo vdsm-vm-uuid was not specified\");\n    let vm_uuid =\n      match !vm_uuid with\n      | None ->\n         error (f_\"-o vdsm: -oo vdsm-image-uuid was not specified\")\n      | Some uuid -> uuid in\n    let ovf_output = Option.value ~default:\".\" !ovf_output in\n    let ovf_flavour = !ovf_flavour in\n\n    (* -os must be set, but at this point we cannot check it. *)\n    let output_storage =\n      match options.output_storage with\n      | None -> error (f_\"-o vdsm: -os option was not specified\")\n      | Some d when not (is_directory d) ->\n         error (f_\"-os %s: output directory does not exist \\\n                   or is not a directory\") d\n      | Some d -> d in\n\n    let output_name = Option.value ~default:source.s_name options.output_name in\n\n    (options.output_alloc, options.output_format,\n     output_name, output_storage,\n     image_uuids, vol_uuids, vm_uuid, ovf_output,\n     compat, ovf_flavour)\n\n  let setup dir options source input_disks =\n    error_if_disk_count_gt input_disks 23;\n    let input_sizes = get_disk_sizes input_disks in\n    let output_alloc, output_format,\n        output_name, output_storage,\n        image_uuids, vol_uuids, vm_uuid, ovf_output,\n        compat, ovf_flavour = options in\n\n    if List.length image_uuids <> List.length input_disks ||\n       List.length vol_uuids <> List.length input_disks then\n      error (f_\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ \\\n                parameters passed on the command line has to match the \\\n                number of guest disk images (for this guest: %d)\")\n        (List.length input_disks);\n\n    let dd_mp, dd_uuid =\n      let fields =\n        String.nsplit \"/\" output_storage in (* ... \"data-center\" \"UUID\" *)\n      let fields = List.rev fields in       (* \"UUID\" \"data-center\" ... *)\n      let fields = List.drop_while ((=) \"\") fields in\n      match fields with\n      | uuid :: rest when String.length uuid = 36 ->\n         let mp = String.concat \"/\" (List.rev rest) in\n         mp, uuid\n      | _ ->\n         error (f_\"vdsm: invalid -os parameter \\\n                   does not contain a valid UUID: %s\")\n           output_storage in\n\n    debug \"VDSM: DD mountpoint: %s\\nVDSM: DD UUID: %s\" dd_mp dd_uuid;\n\n    (* Note that VDSM has to create all these directories. *)\n    let images_dir = dd_mp // dd_uuid // \"images\" in\n    List.iter (\n      fun image_uuid ->\n        let d = images_dir // image_uuid in\n        if not (is_directory d) then\n          error (f_\"image directory (%s) does not exist or is not a directory\")\n            d\n      ) image_uuids;\n\n    (* Note that VDSM has to create this directory too. *)\n    if not (is_directory ovf_output) then\n      error (f_\"OVF (metadata) directory (%s) does not exist or \\\n                is not a directory\")\n        ovf_output;\n\n    debug \"VDSM: OVF (metadata) directory: %s\" ovf_output;\n\n    (* The final directory structure should look like this:\n     *   /<MP>/<ESD_UUID>/images/\n     *      <IMAGE_UUID_1>/<VOL_UUID_1>        # first disk\n     *      <IMAGE_UUID_1>/<VOL_UUID_1>.meta   # first disk\n     *      <IMAGE_UUID_2>/<VOL_UUID_2>        # second disk\n     *      <IMAGE_UUID_2>/<VOL_UUID_2>.meta   # second disk\n     *      <IMAGE_UUID_3>/<VOL_UUID_3>        # etc\n     *      <IMAGE_UUID_3>/<VOL_UUID_3>.meta   #\n     *)\n\n    (* Create the target filenames. *)\n    let filenames =\n      List.map (\n        fun (image_uuid, vol_uuid) ->\n          let filename = images_dir // image_uuid // vol_uuid in\n          debug \"VDSM: disk: %s\" filename;\n          filename\n      ) (List.combine image_uuids vol_uuids) in\n\n    (* Generate the .meta files associated with each volume. *)\n    let metas =\n      Create_ovf.create_meta_files output_alloc output_format\n        dd_uuid image_uuids input_sizes in\n    List.iter (\n      fun (filename, meta) ->\n        let meta_filename = filename ^ \".meta\" in\n        with_open_out meta_filename (fun chan -> output_string chan meta)\n    ) (List.combine filenames metas);\n\n    (* Set up the NBD servers. *)\n    let uris =\n      List.mapi (\n        fun i (size, filename) ->\n          let socket = sprintf \"%s/out%d\" dir i in\n          On_exit.unlink socket;\n\n          (* Create the actual output disk. *)\n          output_to_local_file output_alloc output_format filename size socket;\n\n          NBD_URI.Unix (socket, None)\n      ) (List.combine input_sizes filenames) in\n\n    (* Save parameters since we need them during finalization. *)\n    let t = dd_mp, dd_uuid, input_sizes in\n    t, uris\n\n  let finalize dir options t output_disks source inspect target_meta =\n    let output_alloc, output_format,\n        output_name, output_storage,\n        image_uuids, vol_uuids, vm_uuid, ovf_output,\n        compat, ovf_flavour = options in\n    let dd_mp, dd_uuid, sizes = t in\n\n    (* Create the metadata. *)\n    let ovf = Create_ovf.create_ovf source inspect target_meta sizes\n                output_alloc output_format output_name dd_uuid\n                image_uuids\n                vol_uuids\n                output_disks\n                vm_uuid\n                ovf_flavour in\n\n    (* Write it to the metadata file. *)\n    let file = ovf_output // vm_uuid ^ \".ovf\" in\n    with_open_out file (fun chan -> DOM.doc_to_chan chan ovf)\n\n  let request_size = None\nend\n"
  },
  {
    "path": "output/output_vdsm.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** [-o vdsm] output mode. *)\n\nmodule VDSM : Output.OUTPUT\n"
  },
  {
    "path": "output/ovirt-upload-cancel.py",
    "content": "# -*- python -*-\n# oVirt upload cancel used by ‘virt-v2v -o ovirt-upload’\n# Copyright (C) 2019-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License along\n# with this program; if not, write to the Free Software Foundation, Inc.,\n# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nimport json\nimport logging\nimport sys\nfrom contextlib import closing\nfrom urllib.parse import urlparse, urlunparse\n\nimport ovirtsdk4 as sdk\nimport ovirtsdk4.types as types\n\n\ndef debug(s):\n    if params['verbose']:\n        print(s, file=sys.stderr)\n        sys.stderr.flush()\n\n\n# Parameters are passed in via a JSON doc from the OCaml code.\n# Because this Python code ships embedded inside virt-v2v there\n# is no formal API here.\nparams = None\n\nif len(sys.argv) != 2:\n    raise RuntimeError(\"incorrect number of parameters\")\n\n# Parameters are passed in via a JSON document.\nwith open(sys.argv[1], 'r') as fp:\n    params = json.load(fp)\n\n# What is passed in is a password file, read the actual password.\nwith open(params['output_password'], 'r') as fp:\n    output_password = fp.read()\noutput_password = output_password.rstrip()\n\n# Parse out the username from the output_conn URL.\nparsed = urlparse(params['output_conn'])\nusername = parsed.username or \"admin@internal\"\nnetloc = f\"{parsed.hostname:parsed.port}\" if parsed.port else parsed.hostname\n\n# Connect to the server.\nconnection = sdk.Connection(\n    url=urlunparse(parsed._replace(netloc=netloc)),\n    username=username,\n    password=output_password,\n    ca_file=params['ovirt_cafile'],\n    log=logging.getLogger(),\n    insecure=params['insecure'],\n)\n\nwith closing(connection):\n    system_service = connection.system_service()\n    image_transfers_service = system_service.image_transfers_service()\n\n    # Try to cancel the transfers.  This should delete the associated disk.\n    for id in params['transfer_ids']:\n        try:\n            transfer_service = \\\n                image_transfers_service.image_transfer_service(id)\n            transfer_service.cancel()\n        except sdk.NotFoundError:\n            debug(\"unexpected error: transfer id %s not found\" % id)\n        except Exception:\n            if params['verbose']:\n                traceback.print_exc()\n\n    disks_service = system_service.disks_service()\n\n    # In case we didn't associate a disk with a transfer and as a last\n    # resort, delete the disk too.\n    for uuid in params['disk_uuids']:\n        try:\n            disk_service = disks_service.disk_service(uuid)\n            disk_service.remove()\n        except (sdk.NotFoundError, sdk.Error):\n            # We expect these exceptions so ignore them.\n            pass\n        except Exception:\n            if params['verbose']:\n                traceback.print_exc()\n"
  },
  {
    "path": "output/ovirt-upload-createvm.py",
    "content": "# -*- python -*-\n# oVirt upload create VM used by ‘virt-v2v -o ovirt-upload’\n# Copyright (C) 2018 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License along\n# with this program; if not, write to the Free Software Foundation, Inc.,\n# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nimport json\nimport logging\nimport sys\nimport time\nimport uuid\n\nfrom urllib.parse import urlparse, urlunparse\n\nimport ovirtsdk4 as sdk\nimport ovirtsdk4.types as types\n\n\ndef debug(s):\n    if params['verbose']:\n        print(s, file=sys.stderr)\n        sys.stderr.flush()\n\n\ndef jobs_completed(system_service, correlation_id):\n    jobs_service = system_service.jobs_service()\n\n    try:\n        jobs = jobs_service.list(\n            search=\"correlation_id=%s\" % correlation_id)\n    except sdk.Error as e:\n        debug(\n            \"Error searching for jobs with correlation id %s: %s\" %\n            (correlation_id, e))\n        # We don't know, assume that jobs did not complete yet.\n        return False\n\n    # STARTED is the only \"in progress\" status, anything else means the job\n    # has already terminated.\n    if all(job.status != types.JobStatus.STARTED for job in jobs):\n        failed_jobs = [(job.description, str(job.status))\n                       for job in jobs\n                       if job.status != types.JobStatus.FINISHED]\n        if failed_jobs:\n            raise RuntimeError(\n                \"Failed to create a VM! Failed jobs: %r\" % failed_jobs)\n        return True\n    else:\n        running_jobs = [(job.description, str(job.status)) for job in jobs]\n        debug(\"Some jobs with correlation id %s are running: %s\" %\n              (correlation_id, running_jobs))\n        return False\n\n\n# Seconds to wait for the VM import job to complete in oVirt.\ntimeout = 3 * 60\n\n# Parameters are passed in via a JSON doc from the OCaml code.\n# Because this Python code ships embedded inside virt-v2v there\n# is no formal API here.\nparams = None\novf = None                      # OVF file\n\nif len(sys.argv) != 3:\n    raise RuntimeError(\"incorrect number of parameters\")\n\n# Parameters are passed in via a JSON document.\nwith open(sys.argv[1], 'r') as fp:\n    params = json.load(fp)\n\n# What is passed in is a password file, read the actual password.\nwith open(params['output_password'], 'r') as fp:\n    output_password = fp.read()\noutput_password = output_password.rstrip()\n\n# Read the OVF document.\nwith open(sys.argv[2], 'r') as fp:\n    ovf = fp.read()\n\n# Parse out the username from the output_conn URL.\nparsed = urlparse(params['output_conn'])\nusername = parsed.username or \"admin@internal\"\nnetloc = f\"{parsed.hostname:parsed.port}\" if parsed.port else parsed.hostname\n\n# Connect to the server.\nconnection = sdk.Connection(\n    url=urlunparse(parsed._replace(netloc=netloc)),\n    username=username,\n    password=output_password,\n    ca_file=params['ovirt_cafile'],\n    log=logging.getLogger(),\n    insecure=params['insecure'],\n)\n\nsystem_service = connection.system_service()\n\n# Get the cluster.\ncluster = system_service.clusters_service().cluster_service(params['ovirt_cluster_uuid'])\ncluster = cluster.get()\n\ncorrelation_id = str(uuid.uuid4())\nvms_service = system_service.vms_service()\nvm = vms_service.add(\n    types.Vm(\n        cluster=cluster,\n        initialization=types.Initialization(\n            configuration=types.Configuration(\n                type=types.ConfigurationType.OVA,\n                data=ovf,\n            )\n        )\n    ),\n    query={'correlation_id': correlation_id},\n)\n\n# Wait for the import job to finish.\nendt = time.monotonic() + timeout\nwhile True:\n    time.sleep(10)\n    if jobs_completed(system_service, correlation_id):\n        break\n    if time.monotonic() > endt:\n        raise RuntimeError(\n            \"Timed out waiting for VM creation!\"\n            \" Jobs still running for correlation id %s\" % correlation_id)\n"
  },
  {
    "path": "output/ovirt-upload-finalize.py",
    "content": "# -*- python -*-\n# oVirt upload finalize used by ‘virt-v2v -o ovirt-upload’\n# Copyright (C) 2018-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License along\n# with this program; if not, write to the Free Software Foundation, Inc.,\n# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nimport json\nimport logging\nimport sys\nimport time\nfrom urllib.parse import urlparse, urlunparse\n\nimport ovirtsdk4 as sdk\nimport ovirtsdk4.types as types\n\n# Timeout to wait for oVirt disks to change status, or the transfer\n# object to finish initializing [seconds].\ntimeout = 5 * 60\n\n\ndef debug(s):\n    if params['verbose']:\n        print(s, file=sys.stderr)\n        sys.stderr.flush()\n\n\ndef finalize_transfer(connection, transfer_id, disk_id):\n    \"\"\"\n    Finalize a transfer, making the transfer disk available.\n\n    If finalizing succeeds, the transfer's disk status will change to OK\n    and transfer's phase will change to FINISHED_SUCCESS. Unfortunately,\n    the disk status is modified before the transfer finishes, and oVirt\n    may still hold a lock on the disk at this point.\n\n    The only way to make sure that the disk is unlocked, is to wait\n    until the transfer phase switches FINISHED_SUCCESS. Unfortunately\n    oVirt makes this hard to use because the transfer is removed shortly\n    after switching the phase to the final phase. However if the\n    transfer was removed, we can be sure that the disk is not locked,\n    since oVirt releases the locks before removing the transfer.\n\n    On errors, the transfer's phase will change to FINISHED_FAILURE and\n    the disk status will change to ILLEGAL and it will be removed. Again\n    the transfer will be removed shortly after that.\n\n    If oVirt fails to finalize the transfer, transfer's phase will\n    change to PAUSED_SYSTEM. In this case the disk's status will change\n    to ILLEGAL and it will not be removed.\n\n    oVirt 4.4.7 made waiting for transfer easier by keeping transfers\n    after they complete, but we must support older versions so we have\n    generic code that work with any version.\n\n    For more info see:\n    - http://ovirt.github.io/ovirt-engine-api-model/4.4/#services/image_transfer\n    - http://ovirt.github.io/ovirt-engine-sdk/master/types.m.html#ovirtsdk4.types.ImageTransfer\n    \"\"\"\n    debug(\"finalizing transfer %s\" % transfer_id)\n    transfer_service = (connection.system_service()\n                        .image_transfers_service()\n                        .image_transfer_service(transfer_id))\n\n    start = time.monotonic()\n\n    transfer_service.finalize()\n\n    while True:\n        time.sleep(1)\n        try:\n            transfer = transfer_service.get()\n        except sdk.NotFoundError:\n            # Transfer was removed (ovirt < 4.4.7). We need to check the\n            # disk status to understand if the transfer was successful.\n            # Due to the way oVirt does locking, we know that the disk\n            # is unlocked at this point so we can check only once.\n\n            debug(\"transfer %s was removed, checking disk %s status\"\n                  % (transfer_id, disk_id))\n\n            disk_service = (connection.system_service()\n                            .disks_service()\n                            .disk_service(disk_id))\n\n            try:\n                disk = disk_service.get()\n            except sdk.NotFoundError:\n                raise RuntimeError(\n                    \"transfer %s failed: disk %s was removed\"\n                    % (transfer_id, disk_id))\n\n            debug(\"disk %s is %s\" % (disk.id, disk.status))\n\n            if disk.status == types.DiskStatus.OK:\n                break\n\n            raise RuntimeError(\n                \"transfer %s failed: disk is %s\" % (transfer_id, disk.status))\n        else:\n            # Transfer exists, check if it reached one of the final\n            # phases, or we timed out.\n\n            debug(\"transfer %s is %s\" % (transfer.id, transfer.phase))\n\n            if transfer.phase == types.ImageTransferPhase.FINISHED_SUCCESS:\n                break\n\n            if transfer.phase == types.ImageTransferPhase.FINISHED_FAILURE:\n                raise RuntimeError(\n                    \"transfer %s has failed\" % (transfer_id,))\n\n            if transfer.phase == types.ImageTransferPhase.PAUSED_SYSTEM:\n                raise RuntimeError(\n                    \"transfer %s was paused by system\" % (transfer.id,))\n\n            if time.monotonic() > start + timeout:\n                raise RuntimeError(\n                    \"timed out waiting for transfer %s to finalize, \"\n                    \"transfer is %s\"\n                    % (transfer.id, transfer.phase))\n\n    debug(\"transfer %s finalized in %.3f seconds\"\n          % (transfer_id, time.monotonic() - start))\n\n\n# Parameters are passed in via a JSON doc from the OCaml code.\n# Because this Python code ships embedded inside virt-v2v there\n# is no formal API here.\nparams = None\n\nif len(sys.argv) != 2:\n    raise RuntimeError(\"incorrect number of parameters\")\n\n# Parameters are passed in via a JSON document.\nwith open(sys.argv[1], 'r') as fp:\n    params = json.load(fp)\n\n# What is passed in is a password file, read the actual password.\nwith open(params['output_password'], 'r') as fp:\n    output_password = fp.read()\noutput_password = output_password.rstrip()\n\n# Parse out the username from the output_conn URL.\nparsed = urlparse(params['output_conn'])\nusername = parsed.username or \"admin@internal\"\nnetloc = f\"{parsed.hostname:parsed.port}\" if parsed.port else parsed.hostname\n\n# Connect to the server.\nconnection = sdk.Connection(\n    url=urlunparse(parsed._replace(netloc=netloc)),\n    username=username,\n    password=output_password,\n    ca_file=params['ovirt_cafile'],\n    log=logging.getLogger(),\n    insecure=params['insecure'],\n)\n\n# Finalize all the transfers.\nfor (transfer_id, disk_id) in zip(params['transfer_ids'], params['disk_uuids']):\n    finalize_transfer(connection, transfer_id, disk_id)\n\nconnection.close()\n"
  },
  {
    "path": "output/ovirt-upload-plugin.py",
    "content": "# -*- python -*-\n# oVirt upload nbdkit plugin used by ‘virt-v2v -o ovirt-upload’\n# Copyright (C) 2018-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License along\n# with this program; if not, write to the Free Software Foundation, Inc.,\n# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nimport json\nimport queue\nimport socket\nimport ssl\nimport threading\nimport time\n\nfrom contextlib import contextmanager\nfrom http.client import HTTPSConnection, HTTPConnection\nfrom urllib.parse import urlparse\n\nimport nbdkit\n\n# Using version 2 supporting the buffer protocol for better performance.\nAPI_VERSION = 2\n\n# Maximum number of connection to imageio server. Based on testing with imageio\n# client, this give best performance.\nMAX_CONNECTIONS = 4\n\n# Maximum idle time allowed for imageio connections.\nIDLE_TIMEOUT = 30\n\n# Required parameters.\nsize = None\nurl = None\n\n# Optional parameters.\ncafile = None\ninsecure = False\nis_ovirt_host = False\n\n# List of options read from imageio server.\noptions = None\n\n# Pool of HTTP connections.\npool = None\n\n# Set when plugin is cleaning up.\ndone = threading.Event()\n\n# Set when periodic flush request fails.\npool_error = None\n\n\n# Parse parameters.\ndef config(key, value):\n    global cafile, url, is_ovirt_host, insecure, size\n\n    if key == \"cafile\":\n        cafile = value\n    elif key == \"insecure\":\n        insecure = value.lower() in ['true', '1']\n    elif key == \"is_ovirt_host\":\n        is_ovirt_host = value.lower() in ['true', '1']\n    elif key == \"size\":\n        size = int(value)\n    elif key == \"url\":\n        url = urlparse(value)\n    else:\n        raise RuntimeError(\"unknown configuration key '%s'\" % key)\n\n\ndef config_complete():\n    # These parameters are required.\n    if url is None:\n        raise RuntimeError(\"url parameter was not set\")\n    if size is None:\n        raise RuntimeError(\"size parameter was not set\")\n\n\ndef after_fork():\n    global options, pool\n\n    http = create_http(url)\n    options = get_options(http, url)\n    http.close()\n\n    nbdkit.debug(\"imageio features: flush=%(can_flush)r \"\n                 \"zero=%(can_zero)r unix_socket=%(unix_socket)r \"\n                 \"max_readers=%(max_readers)r max_writers=%(max_writers)r\"\n                 % options)\n\n    pool = create_http_pool(url, options)\n\n    t = threading.Thread(target=pool_keeper, name=\"poolkeeper\")\n    t.daemon = True\n    t.start()\n\n\n# This function is not actually defined before nbdkit 1.28, but it\n# doesn't particularly matter if we don't close the pool because\n# clients should call flush().\ndef cleanup():\n    nbdkit.debug(\"cleaning up\")\n    done.set()\n    close_http_pool(pool)\n\n\ndef thread_model():\n    \"\"\"\n    Using parallel model to speed up transfer with multiple connections to\n    imageio server.\n    \"\"\"\n    return nbdkit.THREAD_MODEL_PARALLEL\n\n\ndef open(readonly):\n    return 1\n\n\ndef can_trim(h):\n    return False\n\n\ndef can_flush(h):\n    return options['can_flush']\n\n\ndef can_fua(h):\n    # imageio flush feature is is compatible with NBD_CMD_FLAG_FUA.\n    return options['can_flush']\n\n\ndef can_multi_conn(h):\n    # We can always handle multiple connections, and the number of NBD\n    # connections is independent of the number of HTTP clients in the\n    # pool.\n    return True\n\n\ndef get_size(h):\n    return size\n\n\n# Any unexpected HTTP response status from the server will end up calling this\n# function which logs the full error, and raises a RuntimeError exception.\ndef request_failed(r, msg):\n    status = r.status\n    reason = r.reason\n    try:\n        body = r.read()\n    except EnvironmentError as e:\n        body = \"(Unable to read response body: %s)\" % e\n\n    # Log the full error if we're verbose.\n    nbdkit.debug(\"unexpected response from imageio server:\")\n    nbdkit.debug(msg)\n    nbdkit.debug(\"%d: %s\" % (status, reason))\n    nbdkit.debug(body)\n\n    # Only a short error is included in the exception.\n    raise RuntimeError(\"%s: %d %s: %r\" % (msg, status, reason, body[:200]))\n\n\n# For documentation see:\n# https://github.com/oVirt/ovirt-imageio/blob/master/docs/random-io.md\n# For examples of working code to read/write from the server, see:\n# https://github.com/oVirt/ovirt-imageio/blob/master/daemon/test/server_test.py\ndef pread(h, buf, offset, flags):\n    count = len(buf)\n    headers = {\"Range\": \"bytes=%d-%d\" % (offset, offset + count - 1)}\n\n    with http_context(pool) as http:\n        http.request(\"GET\", url.path, headers=headers)\n\n        r = http.getresponse()\n        # 206 = HTTP Partial Content.\n        if r.status != 206:\n            request_failed(r,\n                           \"could not read sector offset %d size %d\" %\n                           (offset, count))\n\n        content_length = int(r.getheader(\"content-length\"))\n        if content_length != count:\n            # Should never happen.\n            request_failed(r,\n                           \"unexpected Content-Length offset %d size %d got %d\" %\n                           (offset, count, content_length))\n\n        with memoryview(buf) as view:\n            got = 0\n            while got < count:\n                n = r.readinto(view[got:])\n                if n == 0:\n                    request_failed(r,\n                                   \"short read offset %d size %d got %d\" %\n                                   (offset, count, got))\n                got += n\n\n\ndef pwrite(h, buf, offset, flags):\n    count = len(buf)\n\n    flush = \"y\" if (options['can_flush'] and (flags & nbdkit.FLAG_FUA)) else \"n\"\n\n    with http_context(pool) as http:\n        http.putrequest(\"PUT\", url.path + \"?flush=\" + flush)\n        # The oVirt server only uses the first part of the range, and the\n        # content-length.\n        http.putheader(\"Content-Range\", \"bytes %d-%d/*\" %\n                       (offset, offset + count - 1))\n        http.putheader(\"Content-Length\", str(count))\n        http.endheaders()\n\n        try:\n            http.send(buf)\n        except BrokenPipeError:\n            pass\n\n        r = http.getresponse()\n        if r.status != 200:\n            request_failed(r,\n                           \"could not write sector offset %d size %d\" %\n                           (offset, count))\n\n        r.read()\n\n\ndef zero(h, count, offset, flags):\n    # Unlike the trim and flush calls, there is no 'can_zero' method\n    # so nbdkit could call this even if the server doesn't support\n    # zeroing.  If this is the case we must emulate.\n    if not options['can_zero']:\n        emulate_zero(h, count, offset, flags)\n        return\n\n    flush = bool(options['can_flush'] and (flags & nbdkit.FLAG_FUA))\n\n    # Construct the JSON request for zeroing.\n    buf = json.dumps({'op': \"zero\",\n                      'offset': offset,\n                      'size': count,\n                      'flush': flush}).encode()\n\n    headers = {\"Content-Type\": \"application/json\",\n               \"Content-Length\": str(len(buf))}\n\n    with http_context(pool) as http:\n        http.request(\"PATCH\", url.path, body=buf, headers=headers)\n\n        r = http.getresponse()\n        if r.status != 200:\n            request_failed(r,\n                           \"could not zero sector offset %d size %d\" %\n                           (offset, count))\n\n        r.read()\n\n\ndef emulate_zero(h, count, offset, flags):\n    flush = \"y\" if (options['can_flush'] and (flags & nbdkit.FLAG_FUA)) else \"n\"\n\n    with http_context(pool) as http:\n        http.putrequest(\"PUT\", url.path + \"?flush=\" + flush)\n        http.putheader(\"Content-Range\",\n                       \"bytes %d-%d/*\" % (offset, offset + count - 1))\n        http.putheader(\"Content-Length\", str(count))\n        http.endheaders()\n\n        try:\n            buf = bytearray(128 * 1024)\n            while count > len(buf):\n                http.send(buf)\n                count -= len(buf)\n            http.send(memoryview(buf)[:count])\n        except BrokenPipeError:\n            pass\n\n        r = http.getresponse()\n        if r.status != 200:\n            request_failed(r,\n                           \"could not write zeroes offset %d size %d\" %\n                           (offset, count))\n\n        r.read()\n\n\ndef flush(h, flags):\n    if pool_error:\n        raise pool_error\n\n    # Wait until all inflight requests are completed, and send a flush\n    # request for all imageio connections.\n    locked = []\n\n    # Lock the pool by taking all connections out.\n    while len(locked) < pool.maxsize:\n        locked.append(pool.get())\n\n    try:\n        for item in locked:\n            send_flush(item.http)\n            item.last_used = time.monotonic()\n    finally:\n        # Unlock the pool by putting the connection back.\n        for item in locked:\n            pool.put(item)\n\n\ndef send_flush(http):\n    # Construct the JSON request for flushing.\n    buf = json.dumps({'op': \"flush\"}).encode()\n\n    headers = {\"Content-Type\": \"application/json\",\n               \"Content-Length\": str(len(buf))}\n\n    http.request(\"PATCH\", url.path, body=buf, headers=headers)\n\n    r = http.getresponse()\n    if r.status != 200:\n        request_failed(r, \"could not flush\")\n\n    r.read()\n\n\n# Modify http.client.HTTPConnection to work over a Unix domain socket.\n# Derived from uhttplib written by Erik van Zijst under an MIT license.\n# (https://pypi.org/project/uhttplib/)\n# Ported to Python 3 by Irit Goihman.\nclass UnixHTTPConnection(HTTPConnection):\n    def __init__(self, path, timeout=socket._GLOBAL_DEFAULT_TIMEOUT):\n        self.path = path\n        HTTPConnection.__init__(self, \"localhost\", timeout=timeout)\n\n    def connect(self):\n        self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)\n        if self.timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:\n            self.sock.settimeout(timeout)\n        self.sock.connect(self.path)\n\n\nclass PoolItem:\n\n    def __init__(self, http):\n        self.http = http\n        self.last_used = None\n\n\n# Connection pool.\ndef create_http_pool(url, options):\n    count = min(options[\"max_readers\"],\n                options[\"max_writers\"],\n                MAX_CONNECTIONS)\n\n    nbdkit.debug(\"creating http pool connections=%d\" % count)\n\n    unix_socket = options[\"unix_socket\"] if is_ovirt_host else None\n\n    pool = queue.Queue(count)\n\n    for i in range(count):\n        http = create_http(url, unix_socket=unix_socket)\n        pool.put(PoolItem(http))\n\n    return pool\n\n\ndef pool_keeper():\n    \"\"\"\n    Thread flushing idle connections, keeping them alive.\n\n    If a connection does not send any request for 60 seconds, imageio\n    server closes the connection. Recovering from closed connection is\n    hard and unsafe, so this thread ensure that connections never\n    becomes idle by sending a flush request if the connection is idle\n    for too much time.\n\n    In normal conditions, all connections are busy most of the time, so\n    the keeper will find no idle connections. If there short delays in\n    nbdcopy, the keeper will find some idle connections, but will\n    quickly return them back to the pool. In the pathological case when\n    nbdcopy is blocked for 3 minutes on vddk input, the keeper will send\n    a flush request on all connections every ~30 seconds, until nbdcopy\n    starts communicating again.\n    \"\"\"\n    global pool_error\n\n    nbdkit.debug(\"poolkeeper: started\")\n\n    while not done.wait(IDLE_TIMEOUT / 2):\n        idle = []\n\n        while True:\n            try:\n                idle.append(pool.get_nowait())\n            except queue.Empty:\n                break\n\n        if idle:\n            now = time.monotonic()\n            for item in idle:\n                if item.last_used and now - item.last_used > IDLE_TIMEOUT:\n                    nbdkit.debug(\"poolkeeper: flushing idle connection\")\n                    try:\n                        send_flush(item.http)\n                        item.last_used = now\n                    except Exception as e:\n                        # We will report this error on the next request.\n                        pool_error = e\n                        item.last_used = None\n\n                pool.put(item)\n\n    nbdkit.debug(\"poolkeeper: stopped\")\n\n\n@contextmanager\ndef http_context(pool):\n    \"\"\"\n    Context manager yielding an imageio http connection from the pool. Blocks\n    until a connection is available.\n    \"\"\"\n    if pool_error:\n        raise pool_error\n\n    item = pool.get()\n    try:\n        yield item.http\n    finally:\n        item.last_used = time.monotonic()\n        pool.put(item)\n\n\ndef close_http_pool(pool):\n    \"\"\"\n    Wait until all inflight requests are done, close all connections and remove\n    them from the pool.\n\n    No request can be served by the pool after this call.\n    \"\"\"\n    nbdkit.debug(\"closing http pool\")\n\n    locked = []\n\n    while len(locked) < pool.maxsize:\n        locked.append(pool.get())\n\n    for item in locked:\n        item.http.close()\n\n\ndef create_http(url, unix_socket=None):\n    \"\"\"\n    Create http connection for transfer url.\n\n    Returns HTTPConnection.\n    \"\"\"\n    if unix_socket:\n        nbdkit.debug(\"creating unix http connection socket=%r\" % unix_socket)\n        try:\n            return UnixHTTPConnection(unix_socket)\n        except Exception as e:\n            # Very unlikely, but we can recover by using https.\n            nbdkit.debug(\"cannot create unix socket connection: %s\" % e)\n\n    if url.scheme == \"https\":\n        context = \\\n            ssl.create_default_context(purpose=ssl.Purpose.SERVER_AUTH,\n                                       cafile=cafile)\n        if insecure:\n            context.check_hostname = False\n            context.verify_mode = ssl.CERT_NONE\n\n        nbdkit.debug(\"creating https connection host=%s port=%s\" %\n                     (url.hostname, url.port))\n        return HTTPSConnection(url.hostname, url.port, context=context)\n    elif url.scheme == \"http\":\n        nbdkit.debug(\"creating http connection host=%s port=%s\" %\n                     (url.hostname, url.port))\n        return HTTPConnection(url.hostname, url.port)\n    else:\n        raise RuntimeError(\"unknown URL scheme (%s)\" % url.scheme)\n\n\ndef get_options(http, url):\n    \"\"\"\n    Send OPTIONS request to imageio server and return options dict.\n    \"\"\"\n    http.request(\"OPTIONS\", url.path)\n    r = http.getresponse()\n    data = r.read()\n\n    if r.status == 200:\n        j = json.loads(data)\n        features = j[\"features\"]\n        return {\n            \"can_flush\": \"flush\" in features,\n            \"can_zero\": \"zero\" in features,\n            \"unix_socket\": j.get('unix_socket'),\n            \"max_readers\": j.get(\"max_readers\", 1),\n            \"max_writers\": j.get(\"max_writers\", 1),\n        }\n\n    elif r.status == 405 or r.status == 204:\n        # Old imageio servers returned either 405 Method Not Allowed or\n        # 204 No Content (with an empty body).\n        return {\n            \"can_flush\": False,\n            \"can_zero\": False,\n            \"unix_socket\": None,\n            \"max_readers\": 1,\n            \"max_writers\": 1,\n        }\n    else:\n        raise RuntimeError(\"could not use OPTIONS request: %d: %s\" %\n                           (r.status, r.reason))\n"
  },
  {
    "path": "output/ovirt-upload-precheck.py",
    "content": "# -*- python -*-\n# oVirt pre-upload checks used by ‘virt-v2v -o ovirt-upload’\n# Copyright (C) 2018-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License along\n# with this program; if not, write to the Free Software Foundation, Inc.,\n# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nimport json\nimport logging\nimport re\nimport sys\n\nfrom urllib.parse import urlparse, urlunparse\n\nimport ovirtsdk4 as sdk\nimport ovirtsdk4.types as types\n\n# Parameters are passed in via a JSON doc from the OCaml code.\n# Because this Python code ships embedded inside virt-v2v there\n# is no formal API here.\nparams = None\n\nif len(sys.argv) != 2:\n    raise RuntimeError(\"incorrect number of parameters\")\n\n# Parameters are passed in via a JSON document.\nwith open(sys.argv[1], 'r') as fp:\n    params = json.load(fp)\n\n# What is passed in is a password file, read the actual password.\nwith open(params['output_password'], 'r') as fp:\n    output_password = fp.read()\noutput_password = output_password.rstrip()\n\n# Parse out the username from the output_conn URL.\nparsed = urlparse(params['output_conn'])\nusername = parsed.username or \"admin@internal\"\nnetloc = f\"{parsed.hostname:parsed.port}\" if parsed.port else parsed.hostname\n\n# Check the storage domain name is valid\n# (https://bugzilla.redhat.com/show_bug.cgi?id=1986386#c1)\n# Also this means it cannot contain spaces or glob symbols, so\n# the search below is valid.\noutput_storage = params['output_storage']\nif not re.match('^[-a-zA-Z0-9_]+$', output_storage):\n    raise RuntimeError(\"The storage domain (-os) parameter ‘%s’ is not valid\" %\n                       output_storage)\n\n# Connect to the server.\nconnection = sdk.Connection(\n    url=urlunparse(parsed._replace(netloc=netloc)),\n    username=username,\n    password=output_password,\n    ca_file=params['ovirt_cafile'],\n    log=logging.getLogger(),\n    insecure=params['insecure'],\n)\n\nsystem_service = connection.system_service()\n\n# Check whether there is a datacenter for the specified storage.\ndata_centers = system_service.data_centers_service().list(\n    search='storage.name=%s' % output_storage,\n    case_sensitive=True,\n)\nif len(data_centers) == 0:\n    storage_domains = system_service.storage_domains_service().list(\n        search='name=%s' % output_storage,\n        case_sensitive=True,\n    )\n    if len(storage_domains) == 0:\n        # The storage domain does not even exist.\n        raise RuntimeError(\"The storage domain ‘%s’ does not exist\" %\n                           output_storage)\n\n    # The storage domain is not attached to a datacenter\n    # (shouldn't happen, would fail on disk creation).\n    raise RuntimeError(\"The storage domain ‘%s’ is not attached to a DC\" %\n                       output_storage)\ndatacenter = data_centers[0]\n\n# Get the storage domain.\nstorage_domains = connection.follow_link(datacenter.storage_domains)\ntry:\n    storage_domain = [sd for sd in storage_domains\n                      if sd.name == output_storage][0]\nexcept IndexError:\n    raise RuntimeError(\"The storage domain ‘%s’ does not exist\" %\n                       output_storage)\n\n# Get the cluster.\nclusters = connection.follow_link(datacenter.clusters)\nclusters = [cluster for cluster in clusters if cluster.name == params['ovirt_cluster']]\nif len(clusters) == 0:\n    raise RuntimeError(\"The cluster ‘%s’ is not part of the DC ‘%s’, \"\n                       \"where the storage domain ‘%s’ is\" %\n                       (params['ovirt_cluster'], datacenter.name,\n                        output_storage))\ncluster = clusters[0]\ncpu = cluster.cpu\nif cpu.architecture == types.Architecture.UNDEFINED:\n    raise RuntimeError(\"The cluster ‘%s’ has an unknown architecture\" %\n                       (params['ovirt_cluster']))\n\n# Find if any disk already exists with specified UUID.\n# Only used with -oo ovirt-disk-uuid.  It is assumed that the\n# random UUIDs that we generate are unlikely to conflict.\ndisks_service = system_service.disks_service()\n\nfor uuid in params.get('ovirt_disk_uuids', []):\n    try:\n        disk_service = disks_service.disk_service(uuid).get()\n        raise RuntimeError(\"Disk with the UUID '%s' already exists\" % uuid)\n    except sdk.NotFoundError:\n        pass\n\n# Otherwise everything is OK, print a JSON with the results.\nresults = {\n    \"ovirt_storagedomain_uuid\": storage_domain.id,\n    \"ovirt_cluster_uuid\": cluster.id,\n    \"ovirt_cluster_cpu_architecture\": cpu.architecture.value,\n}\n\njson.dump(results, sys.stdout)\n"
  },
  {
    "path": "output/ovirt-upload-transfer.py",
    "content": "# -*- python -*-\n# oVirt upload start transfer used by ‘virt-v2v -o ovirt-upload’\n# Copyright (C) 2018-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License along\n# with this program; if not, write to the Free Software Foundation, Inc.,\n# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nimport inspect\nimport json\nimport logging\nimport sys\nimport time\nfrom contextlib import closing\nfrom urllib.parse import urlparse, urlunparse\n\nimport ovirtsdk4 as sdk\nimport ovirtsdk4.types as types\n\n# Timeout to wait for oVirt disks to change status, or the transfer\n# object to finish initializing [seconds].\ntimeout = 5 * 60\n\n\ndef debug(s):\n    if params['verbose']:\n        print(s, file=sys.stderr)\n        sys.stderr.flush()\n\n\ndef find_host(connection):\n    \"\"\"Return the current host object or None.\"\"\"\n    try:\n        with open(\"/etc/vdsm/vdsm.id\") as f:\n            vdsm_id = f.readline().strip()\n    except FileNotFoundError:\n        # Expected condition when running on non-oVirt host.\n        debug(\"not an oVirt host, using non-oVirt host\")\n        return None\n    except Exception as e:\n        # Unexpected but we can degrade to remote transfer.\n        debug(f\"warning: cannot read host id, using non-oVirt host: {e}\")\n        return None\n\n    debug(\"hw_id = %r\" % vdsm_id)\n\n    system_service = connection.system_service()\n    storage_name = params['output_storage']\n    data_centers = system_service.data_centers_service().list(\n        search='storage.name=%s' % storage_name,\n        case_sensitive=True,\n    )\n    if len(data_centers) == 0:\n        # The storage domain is not attached to a datacenter\n        # (shouldn't happen, would fail on disk creation).\n        debug(\"storage domain (%s) is not attached to a DC\" % storage_name)\n        return None\n\n    datacenter = data_centers[0]\n    debug(\"datacenter = %s\" % datacenter.name)\n\n    hosts_service = system_service.hosts_service()\n    hosts = hosts_service.list(\n        search=\"hw_id=%s and datacenter=%s and status=Up\"\n               % (vdsm_id, datacenter.name),\n        case_sensitive=True,\n    )\n    if len(hosts) == 0:\n        # Couldn't find a host that's fulfilling the following criteria:\n        # - 'hw_id' equals to 'vdsm_id'\n        # - Its status is 'Up'\n        # - Belongs to the storage domain's datacenter\n        debug(\"cannot find a running host with hw_id=%r, \"\n              \"that belongs to datacenter '%s', \"\n              \"using any host\" % (vdsm_id, datacenter.name))\n        return None\n\n    host = hosts[0]\n    debug(\"host.id = %r\" % host.id)\n\n    return types.Host(id=host.id)\n\n\ndef create_disk(connection):\n    \"\"\"\n    Create a new disk for the transfer and wait until the disk is ready.\n\n    Returns disk object.\n    \"\"\"\n    system_service = connection.system_service()\n    disks_service = system_service.disks_service()\n\n    if params['disk_format'] == \"raw\":\n        disk_format = types.DiskFormat.RAW\n    else:\n        disk_format = types.DiskFormat.COW\n\n    disk = disks_service.add(\n        disk=types.Disk(\n            id=params['disk_uuid'],\n            name=params['disk_name'],\n            description=\"Uploaded by virt-v2v\",\n            format=disk_format,\n            # XXX For qcow2 disk on block storage, we should use the estimated\n            # size, based on qemu-img measure of the overlay.\n            initial_size=params['disk_size'],\n            provisioned_size=params['disk_size'],\n            # Handling this properly will be complex, see:\n            # https://www.redhat.com/archives/libguestfs/2018-March/msg00177.html\n            sparse=True,\n            storage_domains=[\n                types.StorageDomain(\n                    name=params['output_storage'],\n                )\n            ],\n        )\n    )\n\n    debug(\"disk.id = %r\" % disk.id)\n\n    # Wait till the disk moved from LOCKED state to OK state, as the transfer\n    # can't start if the disk is locked.\n\n    disk_service = disks_service.disk_service(disk.id)\n    endt = time.monotonic() + timeout\n    while True:\n        time.sleep(1)\n        disk = disk_service.get()\n        if disk.status == types.DiskStatus.OK:\n            break\n        if time.monotonic() > endt:\n            raise RuntimeError(\n                \"timed out waiting for disk %s to become unlocked\" % disk.id)\n\n    return disk\n\n\ndef create_transfer(connection, disk, host):\n    \"\"\"\n    Create image transfer and wait until the transfer is ready.\n\n    Returns a transfer object.\n    \"\"\"\n    system_service = connection.system_service()\n    transfers_service = system_service.image_transfers_service()\n\n    extra = {}\n    if transfer_supports_format():\n        extra[\"format\"] = types.DiskFormat.RAW\n\n    transfer = transfers_service.add(\n        types.ImageTransfer(\n            disk=types.Disk(id=disk.id),\n            host=host,\n            inactivity_timeout=3600,\n            **extra,\n        )\n    )\n\n    # At this point the transfer owns the disk and will delete the disk if the\n    # transfer is canceled, or if finalizing the transfer fails.\n\n    debug(\"transfer.id = %r\" % transfer.id)\n\n    # Get a reference to the created transfer service.\n    transfer_service = transfers_service.image_transfer_service(transfer.id)\n\n    # Wait until transfer's phase change from INITIALIZING to TRANSFERRING. On\n    # errors transfer's phase can change to PAUSED_SYSTEM or FINISHED_FAILURE.\n    # If the transfer was paused, we need to cancel it to remove the disk,\n    # otherwise the system will remove the disk and transfer shortly after.\n\n    endt = time.monotonic() + timeout\n    while True:\n        time.sleep(1)\n        try:\n            transfer = transfer_service.get()\n        except sdk.NotFoundError:\n            # The system has removed the disk and the transfer.\n            raise RuntimeError(\"transfer %s was removed\" % transfer.id)\n\n        if transfer.phase == types.ImageTransferPhase.FINISHED_FAILURE:\n            # The system will remove the disk and the transfer soon.\n            raise RuntimeError(\n                \"transfer %s has failed\" % transfer.id)\n\n        if transfer.phase == types.ImageTransferPhase.PAUSED_SYSTEM:\n            transfer_service.cancel()\n            raise RuntimeError(\n                \"transfer %s was paused by system\" % transfer.id)\n\n        if transfer.phase == types.ImageTransferPhase.TRANSFERRING:\n            break\n\n        if transfer.phase != types.ImageTransferPhase.INITIALIZING:\n            transfer_service.cancel()\n            raise RuntimeError(\n                \"unexpected transfer %s phase %s\"\n                % (transfer.id, transfer.phase))\n\n        if time.monotonic() > endt:\n            transfer_service.cancel()\n            raise RuntimeError(\n                \"timed out waiting for transfer %s\" % transfer.id)\n\n    return transfer\n\n\ndef transfer_supports_format():\n    \"\"\"\n    Return True if transfer supports the \"format\" argument, enabling the NBD\n    backend on imageio side, which allows uploading to qcow2 images.\n\n    This feature was added in ovirt 4.3. We assume that the SDK version matches\n    engine version.\n    \"\"\"\n    sig = inspect.signature(types.ImageTransfer)\n    return \"format\" in sig.parameters\n\n\ndef get_transfer_url(transfer):\n    \"\"\"\n    Returns the transfer url, preferring direct transfer if possible.\n    \"\"\"\n    if params['ovirt_direct']:\n        if transfer.transfer_url is None:\n            raise RuntimeError(\"direct upload to host not supported, \"\n                               \"requires ovirt-engine >= 4.2 and only works \"\n                               \"when virt-v2v is run within the oVirt \"\n                               \"environment, eg. on an oVirt node.\")\n        return transfer.transfer_url\n    else:\n        return transfer.proxy_url\n\n\n# Parameters are passed in via a JSON doc from the OCaml code.\n# Because this Python code ships embedded inside virt-v2v there\n# is no formal API here.\nparams = None\n\nif len(sys.argv) != 2:\n    raise RuntimeError(\"incorrect number of parameters\")\n\n# Parameters are passed in via a JSON document.\nwith open(sys.argv[1], 'r') as fp:\n    data = fp.read()\n\ntry:\n    params = json.loads(data)\nexcept ValueError as e:\n    raise RuntimeError(f\"Cannot parse params {data!r}: {e}\").with_traceback(\n        e.__traceback__\n    ) from None\n\n# What is passed in is a password file, read the actual password.\nwith open(params['output_password'], 'r') as fp:\n    output_password = fp.read()\noutput_password = output_password.rstrip()\n\n# Parse out the username from the output_conn URL.\nparsed = urlparse(params['output_conn'])\nusername = parsed.username or \"admin@internal\"\nnetloc = f\"{parsed.hostname:parsed.port}\" if parsed.port else parsed.hostname\n\nconnection = sdk.Connection(\n    url=urlunparse(parsed._replace(netloc=netloc)),\n    username=username,\n    password=output_password,\n    ca_file=params['ovirt_cafile'],\n    log=logging.getLogger(),\n    insecure=params['insecure'],\n)\n\nwith closing(connection):\n    # Use the local host if possible.\n    host = find_host(connection) if params['ovirt_direct'] else None\n    disk = create_disk(connection)\n\n    transfer = create_transfer(connection, disk, host)\n    destination_url = get_transfer_url(transfer)\n\n# Send the destination URL, transfer ID, and host flag back to OCaml code.\nresults = {\n    \"transfer_id\": transfer.id,\n    \"destination_url\": destination_url,\n    \"is_ovirt_host\": host is not None,\n}\njson.dump(results, sys.stdout)\n"
  },
  {
    "path": "output/ovirt-upload-vmcheck.py",
    "content": "# -*- python -*-\n# oVirt VM existence check used by ‘virt-v2v -o ovirt-upload’\n# Copyright (C) 2018-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License along\n# with this program; if not, write to the Free Software Foundation, Inc.,\n# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nimport json\nimport logging\nimport sys\n\nfrom urllib.parse import urlparse, urlunparse\n\nimport ovirtsdk4 as sdk\nimport ovirtsdk4.types as types\n\n# Parameters are passed in via a JSON doc from the OCaml code.\n# Because this Python code ships embedded inside virt-v2v there\n# is no formal API here.\nparams = None\n\nif len(sys.argv) != 2:\n    raise RuntimeError(\"incorrect number of parameters\")\n\n# Parameters are passed in via a JSON document.\nwith open(sys.argv[1], 'r') as fp:\n    params = json.load(fp)\n\n# What is passed in is a password file, read the actual password.\nwith open(params['output_password'], 'r') as fp:\n    output_password = fp.read()\noutput_password = output_password.rstrip()\n\n# Parse out the username from the output_conn URL.\nparsed = urlparse(params['output_conn'])\nusername = parsed.username or \"admin@internal\"\nnetloc = f\"{parsed.hostname:parsed.port}\" if parsed.port else parsed.hostname\n\n# Connect to the server.\nconnection = sdk.Connection(\n    url=urlunparse(parsed._replace(netloc=netloc)),\n    username=username,\n    password=output_password,\n    ca_file=params['ovirt_cafile'],\n    log=logging.getLogger(),\n    insecure=params['insecure'],\n)\n\nsystem_service = connection.system_service()\n\n# Find if a virtual machine already exists with that name.\nvms_service = system_service.vms_service()\nvms = vms_service.list(\n    search=(\"name=%s\" % params['output_name']),\n)\nif len(vms) > 0:\n    vm = vms[0]\n    raise RuntimeError(\"VM already exists with name ‘%s’, id ‘%s’\" %\n                       (params['output_name'], vm.id))\n\n# Otherwise everything is OK, exit with no error.\n"
  },
  {
    "path": "output/python_script.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Printf\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\n\nopen Common_gettext.Gettext\n\nlet python = \"python3\"          (* Defined by PEP 394 *)\n\ntype script = {\n  tmpdir : string;              (* Temporary directory. *)\n  path : string;                (* Path to script. *)\n}\n\nlet create ?(name = \"script.py\") code =\n  let tmpdir = Mkdtemp.temp_dir \"v2v.\" in\n  On_exit.rm_rf tmpdir;\n  let path = tmpdir // name in\n  with_open_out path (fun chan -> output_string chan code);\n  { tmpdir; path }\n\nlet run_command ?echo_cmd ?stdout_fd ?stderr_fd\n                { tmpdir; path } params args =\n  let param_file = tmpdir // sprintf \"params%d.json\" (unique ()) in\n  with_open_out\n    param_file\n    (fun chan -> output_string chan (JSON.string_of_doc params));\n  Tools_utils.run_command ?echo_cmd ?stdout_fd ?stderr_fd\n                          (python :: path :: param_file :: args)\n\nlet path { path } = path\n\nlet error_unless_python_interpreter_found () =\n  try ignore (which python)\n  with Executable_not_found _ ->\n    error (f_\"no python binary called ‘%s’ can be found on the $PATH\")\n          python\n"
  },
  {
    "path": "output/python_script.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** Call into external Python code. *)\n\ntype script\n\nval create : ?name:string -> string -> script\n(** Create a Python script object.\n\n    The optional parameter [?name] is a hint for the name of the script.\n\n    The parameter is the Python code.  Usually this is\n    [Some_source.code] where [some_source.ml] is generated from\n    the Python file by [v2v/embed.sh] (see also [v2v/Makefile.am]). *)\n\nval run_command : ?echo_cmd:bool -> ?stdout_fd:Unix.file_descr -> ?stderr_fd:Unix.file_descr -> script -> JSON.doc -> string list -> int\n(** [run_command script params args] is a wrapper around\n    {!Tools_utils.run_command} which runs the Python script with the\n    supplied list of JSON parameters and the list of extra arguments.\n\n    The JSON parameters are written into a temporary file and the\n    filename is supplied as a parameter to the script, so the script\n    must do this to read the parameters:\n\n{v\nwith open(sys.argv[1], 'r') as fp:\n    params = json.load(fp)\nv}\n\n    The extra arguments, if any, are passed verbatim on the\n    script command line in [sys.argv[2:]].\n *)\n\nval path : script -> string\n(** Return the temporary path to the script.\n\n    This temporary script is deleted when the program exits so don't\n    try using/storing it beyond the lifetime of the program.\n\n    This is used only where {!run_command} is not suitable. *)\n\nval python : string\n(** Return the name of the Python interpreter. *)\n\nval error_unless_python_interpreter_found : unit -> unit\n(** Check if the Python interpreter can be found on the path, and\n    call [error] (which is fatal) if not. *)\n"
  },
  {
    "path": "output/qemuopts-c.c",
    "content": "/* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n */\n\n#include <config.h>\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <errno.h>\n\n#include <caml/alloc.h>\n#include <caml/custom.h>\n#include <caml/fail.h>\n#include <caml/memory.h>\n#include <caml/mlvalues.h>\n#include <caml/unixsupport.h>\n\n#include \"qemuopts.h\"\n\n#pragma GCC diagnostic ignored \"-Wmissing-prototypes\"\n\n/*\n  GCC 12 introduced this warning:\n\n  In file included from /usr/lib64/ocaml/caml/alloc.h:24,\n                 from qemuopts-c.c:26:\nqemuopts-c.c: In function ‘guestfs_int_qemuopts_set_binary_by_arch’:\n/usr/lib64/ocaml/caml/mlvalues.h:206:37: error: array subscript 0 is outside array bounds of ‘value[0:]’ [-Werror=array-bounds]\n  206 | #define Field(x, i) (((value *)(x)) [i])\n      |                                     ^\ncc1: all warnings being treated as errors\n*/\n#pragma GCC diagnostic ignored \"-Warray-bounds\"\n\n#define Qopts_val(v) (*((struct qemuopts **)Data_custom_val(v)))\n\nstatic void\nqopts_finalize (value qoptsv)\n{\n  struct qemuopts *qopts = Qopts_val (qoptsv);\n\n  if (qopts)\n    qemuopts_free (qopts);\n}\n\nstatic struct custom_operations qemuopts_custom_operations = {\n  (char *) \"qemuopts_custom_operations\",\n  qopts_finalize,\n  custom_compare_default,\n  custom_hash_default,\n  custom_serialize_default,\n  custom_deserialize_default,\n  custom_compare_ext_default,\n};\n\nvalue\nguestfs_int_qemuopts_create (value unitv)\n{\n  CAMLparam1 (unitv);\n  CAMLlocal1 (qoptsv);\n  struct qemuopts *qopts;\n\n  qopts = qemuopts_create ();\n  if (qopts == NULL)\n    unix_error (errno, (char *) \"qemuopts_create\", Nothing);\n\n  qoptsv = caml_alloc_custom (&qemuopts_custom_operations,\n                              sizeof (struct qemuopts *), 0, 1);\n  Qopts_val (qoptsv) = qopts;\n\n  CAMLreturn (qoptsv);\n}\n\nvalue\nguestfs_int_qemuopts_set_binary (value qoptsv, value strv)\n{\n  CAMLparam2 (qoptsv, strv);\n  struct qemuopts *qopts = Qopts_val (qoptsv);\n\n  if (qemuopts_set_binary (qopts, String_val (strv)) == -1)\n    unix_error (errno, (char *) \"qemuopts_set_binary\", strv);\n\n  CAMLreturn (Val_unit);\n}\n\nvalue\nguestfs_int_qemuopts_set_binary_by_arch (value qoptsv, value ostrv)\n{\n  CAMLparam2 (qoptsv, ostrv);\n  struct qemuopts *qopts = Qopts_val (qoptsv);\n  int r;\n\n  if (ostrv != Val_int (0))\n    r = qemuopts_set_binary_by_arch (qopts, NULL);\n  else\n    r = qemuopts_set_binary_by_arch (qopts, String_val (Field (ostrv, 0)));\n\n  if (r == -1)\n    unix_error (errno, (char *) \"qemuopts_set_binary_by_arch\", Nothing);\n\n  CAMLreturn (Val_unit);\n}\n\nvalue\nguestfs_int_qemuopts_flag (value qoptsv, value flagv)\n{\n  CAMLparam2 (qoptsv, flagv);\n  struct qemuopts *qopts = Qopts_val (qoptsv);\n\n  if (qemuopts_add_flag (qopts, String_val (flagv)) == -1)\n    unix_error (errno, (char *) \"qemuopts_add_flag\", flagv);\n\n  CAMLreturn (Val_unit);\n}\n\nvalue\nguestfs_int_qemuopts_arg (value qoptsv, value flagv, value valv)\n{\n  CAMLparam3 (qoptsv, flagv, valv);\n  struct qemuopts *qopts = Qopts_val (qoptsv);\n\n  if (qemuopts_add_arg (qopts, String_val (flagv), String_val (valv)) == -1)\n    unix_error (errno, (char *) \"qemuopts_add_arg\", flagv);\n\n  CAMLreturn (Val_unit);\n}\n\nvalue\nguestfs_int_qemuopts_arg_noquote (value qoptsv, value flagv, value valv)\n{\n  CAMLparam3 (qoptsv, flagv, valv);\n  struct qemuopts *qopts = Qopts_val (qoptsv);\n\n  if (qemuopts_add_arg_noquote (qopts,\n                                String_val (flagv), String_val (valv)) == -1)\n    unix_error (errno, (char *) \"qemuopts_add_arg_noquote\", flagv);\n\n  CAMLreturn (Val_unit);\n}\n\nvalue\nguestfs_int_qemuopts_arg_list (value qoptsv, value flagv, value valuesv)\n{\n  CAMLparam3 (qoptsv, flagv, valuesv);\n  CAMLlocal1 (hd);\n  struct qemuopts *qopts = Qopts_val (qoptsv);\n\n  if (qemuopts_start_arg_list (qopts, String_val (flagv)) == -1)\n    unix_error (errno, (char *) \"qemuopts_start_arg_list\", flagv);\n\n  while (valuesv != Val_emptylist) {\n    hd = Field (valuesv, 0);\n    if (qemuopts_append_arg_list (qopts, String_val (hd)) == -1)\n      unix_error (errno, (char *) \"qemuopts_append_arg_list\", flagv);\n    valuesv = Field (valuesv, 1);\n  }\n\n  if (qemuopts_end_arg_list (qopts) == -1)\n    unix_error (errno, (char *) \"qemuopts_end_arg_list\", flagv);\n\n  CAMLreturn (Val_unit);\n}\n\nvalue\nguestfs_int_qemuopts_raw (value qoptsv, value strv)\n{\n  CAMLparam2 (qoptsv, strv);\n  struct qemuopts *qopts = Qopts_val (qoptsv);\n\n  if (qemuopts_add_raw (qopts, String_val (strv)) == -1)\n    unix_error (errno, (char *) \"qemuopts_add_raw\", strv);\n\n  CAMLreturn (Val_unit);\n}\n\nvalue\nguestfs_int_qemuopts_to_script (value qoptsv, value strv)\n{\n  CAMLparam2 (qoptsv, strv);\n  struct qemuopts *qopts = Qopts_val (qoptsv);\n\n  if (qemuopts_to_script (qopts, String_val (strv)) == -1)\n    unix_error (errno, (char *) \"qemuopts_to_script\", strv);\n\n  CAMLreturn (Val_unit);\n}\n\nvalue\nguestfs_int_qemuopts_to_chan (value qoptsv, value fdv)\n{\n  CAMLparam2 (qoptsv, fdv);\n  struct qemuopts *qopts = Qopts_val (qoptsv);\n  /* Note that Unix.file_descr is really just an int. */\n  int fd = Int_val (fdv);\n  int fd2;\n  FILE *fp;\n  int saved_errno;\n\n  /* Dup the file descriptor so we don't lose it in fclose. */\n  fd2 = dup (fd);\n  if (fd2 == -1)\n    unix_error (errno, (char *) \"qemuopts_to_channel: dup\", Nothing);\n\n  fp = fdopen (fd2, \"w\");\n  if (fp == NULL) {\n    saved_errno = errno;\n    close (fd2);\n    unix_error (saved_errno, (char *) \"qemuopts_to_channel: fdopen\", Nothing);\n  }\n\n  if (qemuopts_to_channel (qopts, fp) == -1) {\n    saved_errno = errno;\n    fclose (fp);\n    unix_error (saved_errno, (char *) \"qemuopts_to_channel\", Nothing);\n  }\n\n  if (fclose (fp) == EOF)\n    unix_error (errno, (char *) \"qemuopts_to_channel: fclose\", Nothing);\n\n  CAMLreturn (Val_unit);\n}\n"
  },
  {
    "path": "output/qemuopts.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\ntype t\n\nexternal create : unit -> t = \"guestfs_int_qemuopts_create\"\nexternal set_binary : t -> string -> unit = \"guestfs_int_qemuopts_set_binary\"\nexternal set_binary_by_arch : t -> string option -> unit = \"guestfs_int_qemuopts_set_binary_by_arch\"\nexternal flag : t -> string -> unit = \"guestfs_int_qemuopts_flag\"\nexternal arg : t -> string -> string -> unit = \"guestfs_int_qemuopts_arg\"\nexternal arg_noquote : t -> string -> string -> unit = \"guestfs_int_qemuopts_arg_noquote\"\nexternal arg_list : t -> string -> string list -> unit = \"guestfs_int_qemuopts_arg_list\"\nexternal raw : t -> string -> unit = \"guestfs_int_qemuopts_raw\"\nexternal to_script : t -> string -> unit = \"guestfs_int_qemuopts_to_script\"\n\nexternal _to_chan : t -> Unix.file_descr -> unit = \"guestfs_int_qemuopts_to_chan\"\n\nlet to_chan t chan =\n  flush chan;\n  let fd = Unix.descr_of_out_channel chan in\n  _to_chan t fd\n"
  },
  {
    "path": "output/qemuopts.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(** OCaml bindings for the [common/qemuopts] library. *)\n\ntype t\n\nval create : unit -> t\n(** Create an empty qemu command line.\n\n    In case of error, all these functions raise [Unix_error]. *)\n\nval set_binary : t -> string -> unit\n(** Set the qemu binary name. *)\n\nval set_binary_by_arch : t -> string option -> unit\n(** Set the qemu binary to [qemu-system-<arch>].  If [arch] is [None],\n    then this picks the right KVM binary for the current host\n    architecture. *)\n\nval flag : t -> string -> unit\n(** [flag t \"-foo\"] adds a parameter to the command line with no argument. *)\n\nval arg : t -> string -> string -> unit\n(** [arg t \"-m\" \"1024\"] adds [-m 1024] to the command line.\n\n    The value will shell-quoted if required, so you do not need to quote\n    the string.  However if the value is a comma-separated list\n    (eg. [-drive file=foo,if=ide]) then do {b not} use this function, call\n    {!arg_list} instead. *)\n\nval arg_noquote : t -> string -> string -> unit\n(** Like {!arg} except no quoting is done on the value. *)\n\nval arg_list : t -> string -> string list -> unit\n(** [arg_list t \"-drive\" [\"file=foo\"; \"if=ide\"]] adds a comma-separated\n    list of parameters to the command line [-drive file=foo,if=ide].\n\n    This does both qemu comma-quoting and shell-quoting as required. *)\n\nval raw : t -> string -> unit\n(** [raw \"stuff\"] adds [stuff] to the command line completely\n    unquoted.  Use with care. *)\n\nval to_script : t -> string -> unit\n(** [to_script t \"./file.sh\"] writes the resulting command line to\n    a file.  The file begins with [#!/bin/sh] and is chmod 0755. *)\n\nval to_chan : t -> out_channel -> unit\n(** [to_chan t chan] appends the resulting command line to\n    an output channel.  The caller must write [!#/bin/sh] and chmod 0755\n    the output file, if needed. *)\n"
  },
  {
    "path": "output/select_output.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\nopen Std_utils\nopen Tools_utils\nopen Common_gettext.Gettext\n\ntype output_mode =\n  | Disk\n  | Glance\n  | Kubevirt\n  | Libvirt\n  | Null\n  | Openstack\n  | OVirt\n  | OVirt_Upload\n  | QEmu\n  | VDSM\n\nlet output_modes =\n  let modes = ref [\n    Disk;\n    Kubevirt;\n    Libvirt;\n    Null;\n    Openstack;\n    QEmu;\n  ] in\n  if Config.enable_glance then\n    List.push_front Glance modes;\n  if Config.enable_ovirt then\n    List.push_front_list [ OVirt; OVirt_Upload; VDSM ] modes;\n  List.sort compare !modes\n\nlet string_of_output_mode = function\n  | Disk -> \"disk\"\n  | Glance -> \"glance\"\n  | Kubevirt -> \"kubevirt\"\n  | Libvirt -> \"libvirt\"\n  | Null -> \"null\"\n  | Openstack -> \"openstack\"\n  | OVirt -> \"ovirt\"\n  | OVirt_Upload -> \"ovirt-upload\"\n  | QEmu -> \"qemu\"\n  | VDSM -> \"vdsm\"\n\nlet output_mode_of_string = function\n  | \"glance\" -> Glance\n  | \"kubevirt\" -> Kubevirt\n  | \"libvirt\" -> Libvirt\n  | \"disk\" | \"local\" -> Disk\n  | \"null\" -> Null\n  | \"openstack\" | \"osp\" | \"rhosp\" -> Openstack\n  | \"ovirt\" | \"rhv\" | \"rhev\" -> OVirt\n  | \"ovirt-upload\" | \"ovirt_upload\" | \"rhv-upload\" | \"rhv_upload\" ->\n     OVirt_Upload\n  | \"qemu\" -> QEmu\n  | \"vdsm\" -> VDSM\n  | s -> error (f_\"unknown -o option: %s\") s\n\nlet select_output = function\n  | None | Some Libvirt -> (module Output_libvirt.Libvirt_ : Output.OUTPUT)\n  | Some Disk -> (module Output_disk.Disk)\n  | Some Null -> (module Output_null.Null)\n  | Some QEmu -> (module Output_qemu.QEMU)\n  | Some Glance ->\n     if Config.enable_glance then (module Output_glance.Glance)\n     else failwithf \"-o glance is not enabled in this build\"\n  | Some Kubevirt -> (module Output_kubevirt.Kubevirt)\n  | Some Openstack -> (module Output_openstack.Openstack)\n  | Some OVirt_Upload ->\n     if Config.enable_ovirt then (module Output_ovirt_upload.OVirtUpload)\n     else failwithf \"-o ovirt-upload is not enabled in this build\"\n  | Some OVirt ->\n     if Config.enable_ovirt then (module Output_ovirt.OVirt)\n     else failwithf \"-o ovirt is not enabled in this build\"\n  | Some VDSM ->\n     if Config.enable_ovirt then (module Output_vdsm.VDSM)\n     else failwithf \"-o vdsm is not enabled in this build\"\n"
  },
  {
    "path": "output/select_output.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\ntype output_mode =\n  | Disk\n  | Glance\n  | Kubevirt\n  | Libvirt\n  | Null\n  | Openstack\n  | OVirt\n  | OVirt_Upload\n  | QEmu\n  | VDSM\n(** [-o] option on the command line *)\n\nval output_modes : output_mode list\n(** A list of the available output modes. *)\n\nval string_of_output_mode : output_mode -> string\n(** Return the canonical string form of an output mode *)\n\nval output_mode_of_string : string -> output_mode\n(** Return the output mode corresponding to a string.  This is\n    used when parsing the command line.  If the output mode\n    is unknown this calls {!Tools_utils.error} and exits. *)\n\nval select_output : output_mode option -> (module Output.OUTPUT)\n(** Select an output module based on command line parameters. *)\n"
  },
  {
    "path": "output/test-python-syntax.sh",
    "content": "#!/bin/bash -\n# libguestfs\n# Copyright (C) 2018 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nsource ../tests/functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\n# Files to check.\nfiles=\"$(find \"$srcdir\" -name '*.py')\"\n\n# Checks the files are syntactically correct, but not very much else.\nfor f in $files; do\n    python3 -m py_compile \"$f\"\ndone\n\n# Checks the files correspond to PEP8 coding style.\n# https://www.python.org/dev/peps/pep-0008/\nif test \"x$PYCODESTYLE\" != xno; then\n    # Ignore:\n    # E501 line too long\n    # E722 do not use bare 'except'\n    $PYCODESTYLE --ignore=E501,E722 $files\nfi\n"
  },
  {
    "path": "po/LINGUAS",
    "content": "cs\nde\nen_GB\nes\neu\nfi\nfr\ngu\nhi\nid\nit\nja\nka\nkn\nml\nmr\nnl\nor\npa\npl\npt_BR\nru\nsi\nta\nte\ntg\nuk\nzh_CN\n"
  },
  {
    "path": "po/Makefile.am",
    "content": "# libguestfs\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nDOMAIN = $(PACKAGE_NAME)\nCOPYRIGHT_HOLDER = Red Hat Inc.\nMSGID_BUGS_ADDRESS = https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools\n\n# Languages.\n# Don't use LINGUAS (uppercase) as Gentoo defines it (RHBZ#804464).\nlinguas     := $(shell cat $(srcdir)/LINGUAS)\n\nPOTFILES    := $(shell $(SED) 's,^,$(top_srcdir)/,' $(srcdir)/POTFILES)\nPOTFILES_ML := $(shell $(SED) 's,^,$(top_srcdir)/,' $(srcdir)/POTFILES-ml)\nPOFILES     := $(linguas:%=%.po)\nGMOFILES    := $(linguas:%=%.gmo)\n\nEXTRA_DIST = \\\n\tLINGUAS \\\n\tPOTFILES POTFILES-ml \\\n\t$(DOMAIN).pot \\\n\t$(POFILES) \\\n\t$(GMOFILES)\n\nif HAVE_GNU_GETTEXT\n\nXGETTEXT_ARGS = \\\n\t--default-domain=$(DOMAIN) \\\n\t--from-code=utf-8 \\\n\t--add-comments=TRANSLATORS: \\\n\t--keyword=_ --keyword=N_ --keyword=__ --keyword=__x \\\n\t--flag=error:3:c-format \\\n\t--flag=error_at_line:5:c-format \\\n\t--flag=asprintf:2:c-format \\\n\t--flag=vasprintf:2:c-format \\\n\t--flag=xasprintf:1:c-format \\\n\t--copyright-holder='$(COPYRIGHT_HOLDER)' \\\n\t--package-name=\"$(PACKAGE_NAME)\" \\\n\t--package-version=\"$(PACKAGE_VERSION)\" \\\n\t--msgid-bugs-address=\"$(MSGID_BUGS_ADDRESS)\" \\\n\t--directory=$(top_srcdir)\n\n# For explanation, see\n# http://mingw-users.1079350.n2.nabble.com/Getting-rid-of-xgettext-s-quot-CHARSET-quot-warning-td5620533.html\nFIX_CHARSET = \\\n\t$(SED) -i 's|text/plain; charset=CHARSET|text/plain; charset=utf-8|g'\n\n$(DOMAIN).pot: Makefile POTFILES $(POTFILES) POTFILES-ml $(POTFILES_ML)\n\trm -f $@-t\n\t$(AM_V_at)touch $@-t\nif HAVE_OCAML_GETTEXT\n\tcd $(top_srcdir) && $(OCAML_GETTEXT) --action extract --extract-pot $(abs_srcdir)/$@-t $(shell cat $(abs_srcdir)/POTFILES-ml)\n\t \\\n\t$(FIX_CHARSET) $@-t\nendif\n\t$(XGETTEXT) -j -o $@-t $(XGETTEXT_ARGS) \\\n\t  --files-from=$(abs_srcdir)/POTFILES\n\t$(FIX_CHARSET) $@-t\n\tmv $@-t $@\n\n.po.gmo:\n\trm -f $@ $@-t\n\t$(MSGFMT) -c -o $@-t $(srcdir)/$<\n\tmv $@-t $@\n\n# Install.\n# Cannot use 'localedir' since this conflicts with autoconf.\nlanginstdir = $(datadir)/locale\n\ninstall-data-hook: $(GMOFILES)\n\tmkdir -p $(DESTDIR)$(langinstdir)\n\tfor lang in $(linguas); do \\\n\t  d=$(DESTDIR)$(langinstdir)/$$lang/LC_MESSAGES; \\\n\t  mkdir -p $$d; \\\n\t  install -m 0644 $$lang.gmo $$d/$(DOMAIN).mo; \\\n\tdone\n\n.PRECIOUS: $(DOMAIN).pot $(POFILES)\n\nendif\n"
  },
  {
    "path": "po/POTFILES",
    "content": "common/mlcustomize/crypt-c.c\ncommon/mlcustomize/perl_edit-c.c\ncommon/mlpcre/pcre-c.c\ncommon/mltools/JSON_parser-c.c\ncommon/mltools/getopt-c.c\ncommon/mltools/libosinfo-c.c\ncommon/mltools/tools_utils-c.c\ncommon/mltools/uri-c.c\ncommon/mlutils/c_utils-c.c\ncommon/mlutils/unix_utils-c.c\ncommon/mlxml/xml-c.c\ncommon/options/config.c\ncommon/options/decrypt.c\ncommon/options/display-options.c\ncommon/options/domain.c\ncommon/options/inspect.c\ncommon/options/keys.c\ncommon/options/options.c\ncommon/options/uri.c\ncommon/qemuopts/qemuopts.c\ncommon/utils/cleanups.c\ncommon/utils/environ.c\ncommon/utils/gnulib-cleanups.c\ncommon/utils/libxml2-cleanups.c\ncommon/utils/pcre2-cleanups.c\ncommon/utils/stringlists-utils.c\ncommon/utils/utils.c\ncommon/utils/whole-file.c\ngnulib/lib/hash.c\ngnulib/lib/xstrtol.c\ngnulib/lib/xstrtoll.c\ngnulib/lib/xstrtoul.c\ngnulib/lib/xstrtoull.c\ngnulib/lib/xstrtoumax.c\noutput/qemuopts-c.c\n"
  },
  {
    "path": "po/POTFILES-ml",
    "content": "common/mlcustomize/SELinux_relabel.ml\ncommon/mlcustomize/append_line.ml\ncommon/mlcustomize/crypt.ml\ncommon/mlcustomize/customize_cmdline.ml\ncommon/mlcustomize/customize_run.ml\ncommon/mlcustomize/firstboot.ml\ncommon/mlcustomize/guest_packages.ml\ncommon/mlcustomize/hostname.ml\ncommon/mlcustomize/inject_virtio_win.ml\ncommon/mlcustomize/password.ml\ncommon/mlcustomize/perl_edit.ml\ncommon/mlcustomize/random_seed.ml\ncommon/mlcustomize/ssh_key.ml\ncommon/mlcustomize/timezone.ml\ncommon/mldrivers/firmware.ml\ncommon/mldrivers/linux.ml\ncommon/mldrivers/linux_bootloaders.ml\ncommon/mldrivers/linux_kernels.ml\ncommon/mldrivers/windows_drivers.ml\ncommon/mlgettext/common_gettext.ml\ncommon/mlpcre/PCRE.ml\ncommon/mlstdutils/guestfs_config.ml\ncommon/mlstdutils/std_utils.ml\ncommon/mlstdutils/stringMap.ml\ncommon/mlstdutils/stringSet.ml\ncommon/mltools/DOM.ml\ncommon/mltools/JSON.ml\ncommon/mltools/JSON_parser.ml\ncommon/mltools/URI.ml\ncommon/mltools/checksums.ml\ncommon/mltools/curl.ml\ncommon/mltools/getopt.ml\ncommon/mltools/libosinfo.ml\ncommon/mltools/libosinfo_utils.ml\ncommon/mltools/on_exit.ml\ncommon/mltools/planner.ml\ncommon/mltools/regedit.ml\ncommon/mltools/registry.ml\ncommon/mltools/tools_utils.ml\ncommon/mltools/urandom.ml\ncommon/mltools/xpath_helpers.ml\ncommon/mlutils/c_utils.ml\ncommon/mlutils/unix_utils.ml\ncommon/mlxml/xml.ml\nin-place/in_place.ml\ninput/OVA.ml\ninput/OVF.ml\ninput/VMX.ml\ninput/input.ml\ninput/input_disk.ml\ninput/input_libvirt.ml\ninput/input_ova.ml\ninput/input_vcenter_https.ml\ninput/input_vddk.ml\ninput/input_vmx.ml\ninput/input_xen_ssh.ml\ninput/nbdkit_curl.ml\ninput/nbdkit_ssh.ml\ninput/parse_domain_from_vmx.ml\ninput/parse_libvirt_xml.ml\ninput/select_input.ml\ninput/ssh.ml\ninput/vCenter.ml\ninspector/create_inspector_xml.ml\ninspector/inspector.ml\nlib/NBD_URI.ml\nlib/YAML.ml\nlib/create_ovf.ml\nlib/libvirt_utils.ml\nlib/nbdkit.ml\nlib/networks.ml\nlib/qemuNBD.ml\nlib/types.ml\nlib/utils.ml\nopen/open.ml\noutput/changeuid.ml\noutput/create_kubevirt_yaml.ml\noutput/create_libvirt_xml.ml\noutput/openstack_image_properties.ml\noutput/output.ml\noutput/output_disk.ml\noutput/output_glance.ml\noutput/output_kubevirt.ml\noutput/output_libvirt.ml\noutput/output_null.ml\noutput/output_openstack.ml\noutput/output_ovirt.ml\noutput/output_ovirt_upload.ml\noutput/output_ovirt_upload_cancel_source.ml\noutput/output_ovirt_upload_createvm_source.ml\noutput/output_ovirt_upload_finalize_source.ml\noutput/output_ovirt_upload_plugin_source.ml\noutput/output_ovirt_upload_precheck_source.ml\noutput/output_ovirt_upload_transfer_source.ml\noutput/output_ovirt_upload_vmcheck_source.ml\noutput/output_qemu.ml\noutput/output_vdsm.ml\noutput/python_script.ml\noutput/qemuopts.ml\noutput/select_output.ml\nv2v/v2v.ml\n"
  },
  {
    "path": "po/cs.po",
    "content": "# Zdenek <chmelarz@gmail.com>, 2017. #zanata\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2023-04-08 18:20+0000\\n\"\n\"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>\\n\"\n\"Language-Team: Czech <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-master/cs/>\\n\"\n\"Language: cs\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\\n\"\n\"X-Generator: Weblate 4.15.2\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"%s\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\n#, fuzzy\n#| msgid \"Inject a public key into the guest\"\nmsgid \"%s does not exist in the guest\"\nmsgstr \"Vpravit do hosta veřejný klíč\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\n#, fuzzy\n#| msgid \"Inject a public key into the guest\"\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"Vpravit do hosta veřejný klíč\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"%s: %s\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"%s: %s: %s\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"%s: nedaří se otevřít ISO soubor s virtio-win: %s\"\n\n#: common/mlcustomize/customize_run.ml:64\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"%s: command exited with an error\"\nmsgstr \"%s ukončeno s chybovým stavem %d\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"%s: chyba: %s%c\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"%s: varování: %s%c\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"Vytvořit složku\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"Vytvořit symbolické odkazy\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"Jsou vytvářena metadata výstupu\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"Smazat soubor či složku\"\n\n#: common/mlcustomize/customize_run.ml:176\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Deleting: %s\"\nmsgstr \"%s: varování: %s%c\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"Zobrazit stručnou nápovědu\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"Zobrazit verzi a skončit\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"Nevypisovat zprávy o míře postupu\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"Upravit soubor pomocí výrazu v Perl\"\n\n#: common/mlcustomize/customize_run.ml:180\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Editing: %s\"\nmsgstr \"%s: varování: %s%c\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"Zapnout ladící zprávy z libguestfs\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"Exportovat úložnou doménu\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"SOUBOR\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\n#, fuzzy\n#| msgid \"FILE\"\nmsgid \"FILE:DEST\"\nmsgstr \"SOUBOR\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\n#, fuzzy\n#| msgid \"FILE\"\nmsgid \"FILE:EXPR\"\nmsgstr \"SOUBOR\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\n#, fuzzy\n#| msgid \"FILE\"\nmsgid \"FILE:LINE\"\nmsgstr \"SOUBOR\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\n#, fuzzy\n#| msgid \"FILE\"\nmsgid \"FILENAME\"\nmsgstr \"SOUBOR\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"Jak zvolit kořenový souborový systém\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"Vpravit do hosta veřejný klíč\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\n#, fuzzy\n#| msgid \"Inject virtio-win drivers into a Windows guest\"\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"Vpravit ovladače virtio-win do Windows hosta\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"Vpravit QEMU agenta do Windows hosta\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"Vpravit ovladače virtio-win do Windows hosta\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"Vstupní formát\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"Vstupní transport\"\n\n#: common/mlcustomize/customize_run.ml:191\n#, fuzzy\n#| msgid \"Uninstall package(s)\"\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"Odinstalovat balíčky\"\n\n#: common/mlcustomize/customize_run.ml:195\n#, fuzzy\n#| msgid \"Uninstall package(s)\"\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"Odinstalovat balíčky\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\n#, fuzzy\n#| msgid \"Uninstall package(s)\"\nmsgid \"Installing packages: %s\"\nmsgstr \"Odinstalovat balíčky\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"Libvirt URI\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\n#, fuzzy\n#| msgid \"Delete a file or directory\"\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"Smazat soubor či složku\"\n\n#: common/mlcustomize/customize_run.ml:298\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Recursively truncating: %s\"\nmsgstr \"%s: varování: %s%c\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Running touch: %s\"\nmsgstr \"%s: varování: %s%c\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Running: %s\"\nmsgstr \"%s: varování: %s%c\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"SKRIPT\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Scrubbing: %s\"\nmsgstr \"%s: varování: %s%c\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\n#, fuzzy\n#| msgid \"Input format\"\nmsgid \"Set output format\"\nmsgstr \"Vstupní formát\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Truncating: %s\"\nmsgstr \"%s: varování: %s%c\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"Odinstalovat balíčky\"\n\n#: common/mlcustomize/customize_run.ml:311\n#, fuzzy\n#| msgid \"Uninstall package(s)\"\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"Odinstalovat balíčky\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\n#, fuzzy\n#| msgid \"Uninstall package(s)\"\nmsgid \"Update packages\"\nmsgstr \"Odinstalovat balíčky\"\n\n#: common/mlcustomize/customize_run.ml:316\n#, fuzzy\n#| msgid \"Uninstall package(s)\"\nmsgid \"Updating packages\"\nmsgstr \"Odinstalovat balíčky\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Writing: %s\"\nmsgstr \"%s: varování: %s%c\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\n#, fuzzy\n#| msgid \"could not read key from user\"\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"nepodařilo se načíst klíč od uživatele\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"exited with error %d\"\nmsgstr \"%s ukončeno s chybovým stavem %d\"\n\n#: lib/utils.ml:34\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"%s ukončeno s chybovým stavem %d\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"nezdar: %s\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\n#, fuzzy\n#| msgid \"%s killed by signal %d (%s)\"\nmsgid \"generated by %s %s\"\nmsgstr \"%s vynuceně ukončeno signálem %d (%s)\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"host typu %s není podporován\"\n\n#: common/mlcustomize/firstboot.ml:413\n#, fuzzy\n#| msgid \"guest type %s is not supported\"\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"host typu %s není podporován\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\n#, fuzzy\n#| msgid \"%s killed by signal %d (%s)\"\nmsgid \"killed by signal %d\"\nmsgstr \"%s vynuceně ukončeno signálem %d (%s)\"\n\n#: common/mltools/tools_utils.ml:237\n#, fuzzy\n#| msgid \"%s: error: %s\"\nmsgid \"libguestfs error: %s\"\nmsgstr \"%s: chyba: %s%c\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\n#, fuzzy\n#| msgid \"guest type %s is not supported\"\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"host typu %s není podporován\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"sektor „%s“: chybí identifikátor\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\n#, fuzzy\n#| msgid \"%s killed by signal %d (%s)\"\nmsgid \"signalled by signal %d\"\nmsgstr \"%s vynuceně ukončeno signálem %d (%s)\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\n#, fuzzy\n#| msgid \"Inject a public key into the guest\"\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"Vpravit do hosta veřejný klíč\"\n\n#: common/mlcustomize/ssh_key.ml:83\n#, fuzzy\n#| msgid \"Inject a public key into the guest\"\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"Vpravit do hosta veřejný klíč\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\n#, fuzzy\n#| msgid \"%s stopped by signal %d (%s)\"\nmsgid \"stopped by signal %d\"\nmsgstr \"%s zastaveno signálem %d (%s)\"\n\n#: output/changeuid.ml:58\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"%s ukončeno s chybovým stavem %d\"\n\n#: output/changeuid.ml:60\n#, fuzzy\n#| msgid \"%s killed by signal %d (%s)\"\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"%s vynuceně ukončeno signálem %d (%s)\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\nmsgstr[2] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\nmsgstr[2] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\n#, fuzzy\n#| msgid \"unknown -o option: %s\"\nmsgid \"unknown --root option: %s\"\nmsgstr \"neznámá volba -o: %s\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"neznámá volba -i: %s\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"neznámá volba -o: %s\"\n\n#: v2v/v2v.ml:164\n#, fuzzy\n#| msgid \"unknown -o option: %s\"\nmsgid \"unknown -oa option: %s\"\nmsgstr \"neznámá volba -o: %s\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n# auto translated by TM merge from project: hivex, version: master, DocId:\n# hivex\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: celé číslo mimo rozsah\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"Operační systém: %s\\n\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"%s připojeno na %s\\n\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"Zadejte klíč nebo heslovou frázi („%s“): \"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"nepodařilo se načíst klíč od uživatele\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\"%s: Měli jste na mysli připojení některého z těchto souborových systémů?\\n\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"nedaří se zjistit svazky pro %s: %s (%d)\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"%s úspěšně ukončeno\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"%s ukončeno s chybovým stavem %d\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"%s vynuceně ukončeno signálem %d (%s)\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"%s zastaveno signálem %d (%s)\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"%s ukončeno z neznámého důvodu (stav %d)\"\n\n#~ msgid \"Credentials for subscription-manager\"\n#~ msgstr \"Přihlašovací údaje pro subscription-manager\"\n\n#~ msgid \"Ignored for backwards compatibility\"\n#~ msgstr \"Ignorováno kvůli zpětné kompatibilitě\"\n\n#, fuzzy\n#~| msgid \"Credentials for subscription-manager\"\n#~ msgid \"Registering with subscription-manager\"\n#~ msgstr \"Přihlašovací údaje pro subscription-manager\"\n\n#, fuzzy\n#~| msgid \"Credentials for subscription-manager\"\n#~ msgid \"Unregistering with subscription-manager\"\n#~ msgstr \"Přihlašovací údaje pro subscription-manager\"\n"
  },
  {
    "path": "po/de.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the PACKAGE package.\n#\n# Translators:\n# Fabian Affolter <fab@fedoraproject.org>, 2011\n# Mario Blättermann <mario.blaettermann@gmail.com>, 2011\n# Mario Blättermann <mario.blaettermann@gmail.com>, 2011\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2015-02-21 10:48+0000\\n\"\n\"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\\n\"\n\"Language-Team: German (http://www.transifex.com/projects/p/libguestfs/\"\n\"language/de/)\\n\"\n\"Language: de\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"%s\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\"%s\\n\"\n\"Optionen:\\n\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"%s (ignoriert)\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"%s hat keine Ausgabe zurückgegeben\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"%s: %s\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"%s: %s: %s\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"%s: command exited with an error\"\nmsgstr \"%s beendet mit Fehlerstatus %d\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"%s: Fehler: %s\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"%s: Warnung: %s%c\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"Zeile(n) an die Datei anhängen\"\n\n#: common/mlcustomize/customize_run.ml:137\n#, fuzzy\n#| msgid \"Append line(s) to the file\"\nmsgid \"Appending line to %s\"\nmsgstr \"Zeile(n) an die Datei anhängen\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"Berechtigungen einer Datei ändern\"\n\n#: common/mlcustomize/customize_run.ml:155\n#, fuzzy\n#| msgid \"Change the permissions of a file\"\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"Berechtigungen einer Datei ändern\"\n\n#: common/mlcustomize/customize_run.ml:141\n#, fuzzy\n#| msgid \"Change the permissions of a file\"\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"Berechtigungen einer Datei ändern\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"Dateien in Festplattenabbild kopieren\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\n#, fuzzy\n#| msgid \"Copy local files or directories into image\"\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"Lokale Dateien oder Verzeichnisse in das Abbild kopieren\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"Lokale Dateien oder Verzeichnisse in das Abbild kopieren\"\n\n#: common/mlcustomize/customize_run.ml:168\n#, fuzzy\n#| msgid \"Copying disk %d/%d\"\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"Festplatte %d/%d wird kopiert\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"Festplatte %d/%d wird kopiert\"\n\n#: common/mlcustomize/customize_run.ml:172\n#, fuzzy\n#| msgid \"Copying disk %d/%d\"\nmsgid \"Copying: %s to %s\"\nmsgstr \"Festplatte %d/%d wird kopiert\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"Ein Verzeichnis erstellen\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"Symbolische Verknüpfungen erstellen\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"Ausgabe-Metadaten erstellen\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"VERZ\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"Eine Datei oder ein Verzeichnis löschen\"\n\n#: common/mlcustomize/customize_run.ml:176\n#, fuzzy\n#| msgid \"exception: %s\"\nmsgid \"Deleting: %s\"\nmsgstr \"Ausnahme: %s\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Editing: %s\"\nmsgstr \"%s: Warnung: %s%c\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"DATEI\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"DATEI:INHALT\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"DATEI:ZIEL\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\n#, fuzzy\n#| msgid \"FILE:DEST\"\nmsgid \"FILE:EXPR\"\nmsgstr \"DATEI:ZIEL\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"DATEI:ZEILE\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"DATEINAME\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"HOSTNAME\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\n#, fuzzy\n#| msgid \"Set output format\"\nmsgid \"Input format\"\nmsgstr \"Ausgabeformat festlegen\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\n#, fuzzy\n#| msgid \"Set output format\"\nmsgid \"Input transport\"\nmsgstr \"Ausgabeformat festlegen\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\n#, fuzzy\n#| msgid \"Update packages\"\nmsgid \"Installing packages: %s\"\nmsgstr \"Pakete aktualisieren\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"Libvirt-URI\"\n\n#: common/mlcustomize/customize_run.ml:255\n#, fuzzy\n#| msgid \"Copying disk %d/%d\"\nmsgid \"Linking: %s -> %s\"\nmsgstr \"Festplatte %d/%d wird kopiert\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"Dateien in Festplattenabbild verschieben\"\n\n#: common/mlcustomize/customize_run.ml:264\n#, fuzzy\n#| msgid \"Copying disk %d/%d\"\nmsgid \"Moving: %s -> %s\"\nmsgstr \"Festplatte %d/%d wird kopiert\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"PFAD\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"BERECHTIGUNGEN:DATEI\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\n#, fuzzy\n#| msgid \"Delete a file or directory\"\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"Eine Datei oder ein Verzeichnis löschen\"\n\n#: common/mlcustomize/customize_run.ml:298\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Recursively truncating: %s\"\nmsgstr \"%s: Warnung: %s%c\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\n#, fuzzy\n#| msgid \"Copy files in disk image\"\nmsgid \"Run command in disk image\"\nmsgstr \"Dateien in Festplattenabbild kopieren\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\n#, fuzzy\n#| msgid \"Copy files in disk image\"\nmsgid \"Run script in disk image\"\nmsgstr \"Dateien in Festplattenabbild kopieren\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Running touch: %s\"\nmsgstr \"%s: Warnung: %s%c\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Running: %s\"\nmsgstr \"%s: Warnung: %s%c\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"SKRIPT\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"QUELLE:ZIEL\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Scrubbing: %s\"\nmsgstr \"%s: Warnung: %s%c\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\n#, fuzzy\n#| msgid \"Set output mode (default: libvirt)\"\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"Ausgabemodus festlegen (Standard: libvirt)\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\n#, fuzzy\n#| msgid \"Set output format\"\nmsgid \"Set option for output mode\"\nmsgstr \"Ausgabeformat festlegen\"\n\n#: v2v/v2v.ml:234\n#, fuzzy\n#| msgid \"Set output format\"\nmsgid \"Set output allocation mode\"\nmsgstr \"Ausgabeformat festlegen\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"Ausgabeformat festlegen\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"Ausgabemodus festlegen (Standard: libvirt)\"\n\n#: v2v/v2v.ml:246\n#, fuzzy\n#| msgid \"Set output format\"\nmsgid \"Set output storage location\"\nmsgstr \"Ausgabeformat festlegen\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\n#, fuzzy\n#| msgid \"Set user password\"\nmsgid \"Set password crypto\"\nmsgstr \"Benutzerpasswort festlegen\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"Programmname festlegen\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\n#, fuzzy\n#| msgid \"Set user password\"\nmsgid \"Set root password\"\nmsgstr \"Benutzerpasswort festlegen\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"Standardzeitzone festlegen\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\n#, fuzzy\n#| msgid \"Set output format\"\nmsgid \"Set the hostname\"\nmsgstr \"Ausgabeformat festlegen\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\n#, fuzzy\n#| msgid \"Set output format\"\nmsgid \"Set the output filename\"\nmsgstr \"Ausgabeformat festlegen\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"Benutzerpasswort festlegen\"\n\n#: common/mlcustomize/customize_run.ml:75\n#, fuzzy\n#| msgid \"Set user password\"\nmsgid \"Setting a random seed\"\nmsgstr \"Benutzerpasswort festlegen\"\n\n#: common/mlcustomize/customize_run.ml:354\n#, fuzzy\n#| msgid \"Set user password\"\nmsgid \"Setting passwords\"\nmsgstr \"Benutzerpasswort festlegen\"\n\n#: common/mlcustomize/password.ml:113\n#, fuzzy\n#| msgid \"Set user password\"\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"Benutzerpasswort festlegen\"\n\n#: common/mlcustomize/customize_run.ml:207\n#, fuzzy\n#| msgid \"Set the default timezone\"\nmsgid \"Setting the hostname: %s\"\nmsgstr \"Standardzeitzone festlegen\"\n\n#: common/mlcustomize/customize_run.ml:90\n#, fuzzy\n#| msgid \"Set the default timezone\"\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"Standardzeitzone festlegen\"\n\n#: common/mlcustomize/customize_run.ml:302\n#, fuzzy\n#| msgid \"Set the default timezone\"\nmsgid \"Setting the timezone: %s\"\nmsgstr \"Standardzeitzone festlegen\"\n\n#: v2v/v2v.ml:481\n#, fuzzy\n#| msgid \"Set the default timezone\"\nmsgid \"Setting up the destination: %s\"\nmsgstr \"Standardzeitzone festlegen\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\n#, fuzzy\n#| msgid \"Set the default timezone\"\nmsgid \"Setting up the source: %s\"\nmsgstr \"Standardzeitzone festlegen\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"ZEITZONE\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Truncating: %s\"\nmsgstr \"%s: Warnung: %s%c\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\n#, fuzzy\n#| msgid \"Update packages\"\nmsgid \"Uninstall package(s)\"\nmsgstr \"Pakete aktualisieren\"\n\n#: common/mlcustomize/customize_run.ml:311\n#, fuzzy\n#| msgid \"Update packages\"\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"Pakete aktualisieren\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"Pakete aktualisieren\"\n\n#: common/mlcustomize/customize_run.ml:316\n#, fuzzy\n#| msgid \"Update packages\"\nmsgid \"Updating packages\"\nmsgstr \"Pakete aktualisieren\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\n#, fuzzy\n#| msgid \"Copying disk %d/%d\"\nmsgid \"Uploading: %s to %s\"\nmsgstr \"Festplatte %d/%d wird kopiert\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"Datei schreiben\"\n\n#: common/mlcustomize/customize_run.ml:346\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Writing: %s\"\nmsgstr \"%s: Warnung: %s%c\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\n#, fuzzy\n#| msgid \"Append line(s) to the file\"\nmsgid \"append_line: %s is not a file\"\nmsgstr \"Zeile(n) an die Datei anhängen\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"Ausnahme: %s\"\n\n#: common/mltools/tools_utils.ml:455\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"exited with error %d\"\nmsgstr \"%s beendet mit Fehlerstatus %d\"\n\n#: lib/utils.ml:34\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"%s beendet mit Fehlerstatus %d\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\n#, fuzzy\n#| msgid \"%s killed by signal %d (%s)\"\nmsgid \"generated by %s %s\"\nmsgstr \"%s abgewürgt durch Signal %d (%s)\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\n#, fuzzy\n#| msgid \"%s killed by signal %d (%s)\"\nmsgid \"killed by signal %d\"\nmsgstr \"%s abgewürgt durch Signal %d (%s)\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"libguestfs-Fehler: %s\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\n#, fuzzy\n#| msgid \"%s (ignored)\"\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"%s (ignoriert)\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"md5|sha256|sha512\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\n#, fuzzy\n#| msgid \"%s killed by signal %d (%s)\"\nmsgid \"signalled by signal %d\"\nmsgstr \"%s abgewürgt durch Signal %d (%s)\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\n#, fuzzy\n#| msgid \"%s stopped by signal %d (%s)\"\nmsgid \"stopped by signal %d\"\nmsgstr \"%s gestoppt durch Signal %d (%s)\"\n\n#: output/changeuid.ml:58\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"%s beendet mit Fehlerstatus %d\"\n\n#: output/changeuid.ml:60\n#, fuzzy\n#| msgid \"%s stopped by signal %d (%s)\"\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"%s gestoppt durch Signal %d (%s)\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: Ganzzahl außerhalb des Bereichs\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"Betriebssystem: %s\\n\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"%s eingehängt auf %s\\n\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"Schlüssel oder Passphrase eingeben („%s“): \"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"%s erfolgreich beendet\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"%s beendet mit Fehlerstatus %d\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"%s abgewürgt durch Signal %d (%s)\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"%s gestoppt durch Signal %d (%s)\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"%s beendet aus unbekanntem Grund (Status %d)\"\n\n#~ msgid \"Compress output file (-of qcow2 only)\"\n#~ msgstr \"Ausgabedatei komprimieren (nur -of qcow2)\"\n"
  },
  {
    "path": "po/en_GB.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: en_GB\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/es.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the PACKAGE package.\n#\n# Translators:\n# Daniel Cabrera <logan@fedoraproject.org>, 2011\n# Hugo Jiménez Hernández <hjimenezhdez@gmail.com>, 2011\n# rjones <rjones@redhat.com>, 2011\n# Alex Puchades <alex94puchades@gmail.com>, 2015. #zanata\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\"\n\"enter_bug.cgi?component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2026-04-20 10:59+0000\\n\"\n\"Last-Translator: \\\"Fco. Javier F. Serrador\\\" <fserrador@gmail.com>\\n\"\n\"Language-Team: Spanish <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-master/es/>\\n\"\n\"Language: es\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Generator: Weblate 5.17\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"%s\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\"%s\\n\"\n\"Opciones:\\n\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"%s (descartado)\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"%s no devolvió ninguna salida\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"%s no existe en el invitado\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\"%s no existe o no es un directorio.\\n\"\n\"\\n\"\n\"Causa más probable: %s (%s) no se ha conectado a ningún centro de datos, o \"\n\"la ruta %s no es un directorio %s.\\n\"\n\"\\n\"\n\"Primero debe conectar %s a un centro de datos mediante la interfaz de \"\n\"usuario de oVirt.\\n\"\n\"\\n\"\n\"Si desconoce cuál debería ser el punto de montaje de %s, también puede \"\n\"averiguarlo a través de la interfaz de usuario de oVirt.\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"%s se hace caso omiso para invitados distintos de Windows\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"%s no es un archivo común dentro del invitado\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"%s opción utilizada más de una vez en la línea de comando\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"%s: %s\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"%s: %s: %s\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\"%s: Saliendo con señal %s\\n\"\n\"%!\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"%s: no se puede abrir el archivo ISO virtio-win: %s\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"%s: comando terminado con un error\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\"%s: convierte una invitado para usar KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.ejemplo.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml dominio-invitado.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disco.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"Hay una interfaz complementaria llamada \\\"virt-p2v\\\", disponible como\\n\"\n\"una imagen ISO o CD que se puede ser arrancada en máquinas físicas.\\n\"\n\"\\n\"\n\"A continuación se ofrece un breve resumen de las opciones.  Para obtener \"\n\"ayuda\\n\"\n\"detallada, consulte la página man virt-v2v(1).\\n\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\"%s: convierte un invitado para usar KVM in situ\\n\"\n\"\\n\"\n\"Este programa modifica el invitado in situ sin realizar respaldo\\n\"\n\"Normalmente utilizaría virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A continuación se ofrece un breve resumen de las opciones. Para obtener\\n\"\n\"ayuda detallada, consulte la página man de virt-v2v-in-place(1).\\n\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"%s: introduzca la contraseña para ‘%s’: \"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"%s: error: %s\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\"%s: estimación del espacio en disco necesario antes de la conversión de virt-\"\n\"v2v\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disco.img [-O salida.xml]\\n\"\n\"\\n\"\n\"A continuación se ofrece un breve resumen de las opciones. Para obtener \"\n\"ayuda\\n\"\n\"detallada, consulte la página man de virt-v2v-inspector(1).\\n\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\"%s: abre la entrada de virt-v2v y ejecuta un programa en ella.\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disco.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A continuación se ofrece un breve resumen de las opciones.  Para obtener\\n\"\n\"ayuda detallada, consulte la página man de virt-v2v-open(1).\\n\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"%s: operación vencida\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\"%s: formato de archivo no mantenido\\n\"\n\"\\n\"\n\"Formatos los cuales actualmente entiende para '-i ova' son: tar \"\n\"(descomprimido, comprimido con gzip o xz), zip\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"%s: advertencia: %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"'CMD+ARGS'\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\"--append-line: línea debe no contener caracteres de línea nueva.  Utilice la \"\n\"opción --append-line múltiples veces para añadir varias líneas.\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"--chown: no pudo interpretar el UID:GID numérico desde %s:%s\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\"--inject-blnsvr: blnsvr.exe no encontrado en fuente de virtio-win que \"\n\"especificó\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\"--inject-qemu-ga: Agente de Invitado QEMU MSI no encontrado en origen virtio-\"\n\"win que especificó\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\"--inject-virtio-win: las unidades virtio no fueron encontradas para esta \"\n\"versión de Windows en la fuente virtio que especificaste\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"--mac ip prefijo de campo de longitud está fuera del intervalo\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"el parámetro --parallel debe ser >= 1\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\"disco -i: esperaba una imagen de disco (nombre de archivo) en la línea de \"\n\"comando\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"-i libvirt: esperaba el parámetro -ic para Xen sobre conexión SSH\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"-i libvirt: esperaba el parámetro -ic para conexión vcenter\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\"-i libvirt: esperaba el parámetro -ic para contener el nombre del servidor \"\n\"vcenter\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\"-i libvirt: esperaba el parámetro -ip passwordfile para conexión vCenter\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\"-i libvirt: esperaba un nombre de invitado libvirt sobre la línea de comando\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\"-i libvirtxml: esperaba un nombre de archivo XML de libvirt en la línea de \"\n\"comando\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\"-i ova: OVF referencia el archivo ‘%s’ el cual no fue encontrado en el \"\n\"archivador OVA\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\"-i ova: OVA corrompido: sumatorio comprobante de disco %s no coincide con \"\n\"manifiesto (actual = %s, esperado = %s)\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"-i ova: espera un nombre de archivo OVA en la línea de comando\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\"-i ova: archivo OVA no válido: ruta ‘%s’ referencia a un archivo externo al \"\n\"archivador\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"-i vmx: no se puede utilizar -it vddk dentro del modo de entrada\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"-i vmx: se espera un archivo VMX o ssh:// URI\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\"-ip con parámetro PASSWORD_FILE ignorado porque 'user@' no fue dado en la URL\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"-it vddk: ‘-io %s’ no es una opción de entrada válida\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"-o %s: la opción %s no puede ser utilizada en este modo de salida\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\"-o disco: no fue especificado el directorio de salida, utilice '-os /dir'\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"-o disco: opción ‘-oo %s’ de salida desconocida\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\"-o kubevirt: directorio de salida no fue especificado, utilice ‘-os /dir’\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\"-o kubevirt: el nombre del invitado debe contener solo caracteres \"\n\"alfanuméricos en minúsculas, ‘-’ o ‘.’, y debe comenzar y terminar con un \"\n\"carácter alfanumérico.  Reejecute virt-v2v con la opción ‘-on nombre’ para \"\n\"renombrarlo.\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"-o kubevirt: opción ‘-oo %s’ de salida desconocida\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\"-o libvirt: consorcio de salida ‘%s' no tiene elemento de /pool/target/\"\n\"path.  Consulte virt-v2v-output-local(1)\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\"-o libvirt: grupo de salida ‘%s' tiene tipo='dir' excepto el /elemento/de/\"\n\"ruta de objetivo de grupo no es un directorio local.  Consulte virt-v2v-\"\n\"salida-local(1)\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\"-o libvirt: consorcio de salida ‘%s' no es un directorio (tipo='dir').  \"\n\"Consulte virt-v2v-output-local(1)\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"-o modo openstack solo admite -oa amplitud -of sin formato\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"-o openstack: opción ‘-oo %s’ de salida desconocida\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"-o ovirt-upload: -oo ovirt-cafile establece más de una vez\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"-o ovirt-upload: -oo ovirt-cluster establece más de una vez\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"-o ovirt-upload: UUID no válido para -oo ovirt-disk-uuid\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\"-o ovirt-upload: archivo de contraseña de salida no fue especificada, \"\n\"utilice ‘-op’ para apuntar a un archivo el cual contenga la contraseña \"\n\"utilizada para el servidor oVirt\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\"-o ovirt-upload: no fue especificada la salida de almacén, utilce ‘-os’\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"-o ovirt-upload: opción ‘-oo %s’ con salida desconocida\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\"-o ovirt-upload: utilce ‘-oc’ para apuntar al servidor oVirt REST API URL, \"\n\"el cual usualmente es https://servername/ovirt-engine/api\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"-o ovirt: no fue especificada la opción -os\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\"-o qemu: no fue especificada el directorio de salida, utilice '-os /dir'\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"-o qemu: salida desconocida en la opción ‘-oo %s’\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"-o vdsm: no fue especificada -oo vdsm-image-uuid\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"-o vdsm: -oo vdsm-ovf-output se establece más de una vez\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"-o vdsm: -oo vdsm-vm-uuid se establece más de una vez\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"-o vdsm: la opción -os no fue especificada\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\"-o vdsm: o bien -oo vdsm-vol-uuid o bien -oo vdsm-vm-uuid no fue especificado\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"-o vdsm: opción ‘-oo %s’ de salida desconocida\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"-o vdsm: nivel vdsm-compat ‘%s’ desconocido\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"-os %s: directorio de salida no existe o no es un directorio\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"<checksum> no tiene el atributo 'method', se descarta\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"<checksum> atributo con fallo='%s' desconocido, se hace caso omiso\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"<disk type='%s'> fue ignorado\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"<disk type='network'> con <source protocol='%s'> se hizo caso omiso\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"<disk type='volume'> con <volume type='%s'> se hizo caso omiso\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"elemento <disk> con sin ningún tipo de atributo se hace caso omiso\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"<listen type='%s'> en el XML de libvirt de entrada se hace caso omiso\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\"<target dev='%s'> se hizo caso omiso porque el nombre del dispositivo no \"\n\"pudo ser reconocido\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\"<vmware:moref> no fue encontrado en la salida de ‘virsh dumpxml \\\"%s\\\"’.  La \"\n\"razón que más gusta es que libvirt es demasiado antiguo, intente \"\n\"modernizarlo a libvirt >= 3.7.\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"Añade paquete(s) para instalar\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"Añade paquete(s) para instalar en el primer arranque\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"Adjunta línea(s) para el archivo\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"Adjunta línea para %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\"Cambia el ID del usuario y grupo del propietario de un archivo o directorio\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"Cambia los permisos de un archivo\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"Cambia el propietario de %s a %d:%d\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"Cambiando permisos de %s a %s\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"Comprobando el sumatorio %s del disco %d/%d\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"Opción de compatibilidad sin hacer nada\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"Copia archivos dentro de imagen de disco\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"Copia archivos o directorios locales desde un tarball a imagen\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"Copia archivos o directorios locales en una imagen\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"Copiando (en imagen): %s a %s\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"Copiando disco %d/%d\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"Copiando: %s a %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"Crea un directorio\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"Crea enlaces simbólicos\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"Creando metadatos de salida\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"DIR\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"Elimina un archivo o directorio\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"Eliminando: %s\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"Exhibe una breve ayuda\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"Exhibe la versión y sale\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"No vuelva a etiquetar archivos con etiquetas correctas de SELinux\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"No recortar sistemas de archivo antes de conversión\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"No declara mensajes de progreso\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"No apaga el eco para frases de contraseña\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"Edita el archivo utilizando expresión de Perl\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"Editando: %s\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"Habilita mensajes de depuración en libguestfs\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"Habilita traza de invocaciones de libguestfs\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"Exportar Dominio de Almacén\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"Comando externo a ejecutar\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"ARCHIVO\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"ARCHIVO:CONTENIDO\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"ARCHIVO:DESTINO\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"ARCHIVO:EXPR\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"ARCHIVO:LÍNEA\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"NOMBRE-ARCHIVO\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"Terminando\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"NOMBRE-HOSPEDAJE\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"Como elegir sistema de archivos raíz\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\"Si reporta defectos, ejecute %s con depuración habilitada e incluya la \"\n\"salida completa:\\n\"\n\"\\n\"\n\"  %s -v -x […]\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"Inyecta una clave pública en el invitado\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"Inyecta el Servidor Balloon en un invitado de Windows\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"Inyecta el Agente Invitado de QEMU en un invitado de Windows\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"Inyecta unidades de virtio-win en un invitado de Windows\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"Formato de entrada\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\"Opciones de entrada (-io) las cueles pueden ser utilizadas con -it vddk\\n\"\n\"(todos los ajustes son opcionales):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Establece modo de compresión VDDK (consulte\\n\"\n\"                                la documentación nbdkit-vddk-plugin)\\n\"\n\"  -io vddk-config=ARCHIVO         Archivo de configuración VDDK\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=ARCHIVO           Override nbdkit-vddk-plugin file= \"\n\"parámetro\\n\"\n\"  -io vddk-libdir=LIBDIR       biblioteca VDDK de directorio antecesor\\n\"\n\"  -io vddk-nfchostport=PUERTO    VDDK nfchostport\\n\"\n\"  -io vddk-port=PUERTO           puerto VDDK\\n\"\n\"  -io vddk-snapshot=CAPTURA-MOREF\\n\"\n\"                               VDDK captura moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:…\\n\"\n\"                               VDDK servidor thumbprint\\n\"\n\"  -io vddk-transports=MODO:MODO:…\\n\"\n\"                               VDDK transportes\\n\"\n\"\\n\"\n\"Refiérase a nbdkit-vddk-plugin(1) y la documentación de VDDK para más\\n\"\n\"información en estos ajustes.\\n\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"Transporte de entrada\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"Instalar comando de primer arranque: %s\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"Instalar paquetes del primer arranque: %s\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"Instalando el guion del primer arranque: %s\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"Instalando los paquetes: %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"LOCALPATH:REMOTEDIR\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"URI de libvirt\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"Enlazando: %s → %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"MÉTODO\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"Hacer que la salida de la máquina sea leíble\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"Creando directorio: %s\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"Asocia NIC a la red o puente o solicitando IP estática\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"Asocia puente de entrada ‘in’ a salida ‘out’\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"Asocia entrada de red ‘in’ a salida ‘out’\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"Mueve archivos dentro de imagen del disco\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"Moviendo: %s → %s\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"No hay opciones de entrada que pueden ser utilizadas en este modo.\\n\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"No hay opciones de salida que puedan ser utilizadas en este modo.\\n\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"Directorio OVF (metadatos) (%s) no existen o no es un directorio\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\"Falta uno de los rhsrvany.exe o pvvxsvc.exe en %s. Se requiere uno de ellos \"\n\"con el fin de instalar los guiones de primer arranque de Windows.  Puede \"\n\"obtener uno de rhsrvany (https://github.com/rwmjones/rhsrvany)\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"Conexión de salida de hipervisor\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\"Opciones de salida (-oo) las cuáles pueden ser utilizados con -o ovirt-\"\n\"upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Pone el certificado ‘ca.pem' de nombre de \"\n\"archivo envuelto.\\n\"\n\"  -oo ovirt-cluster=NOMBRECLUSTER  Pone nombre de oVirt del cluster.\\n\"\n\"  -oo ovirt-proxy                          Conectar vía proxy oVirt Engine \"\n\"(predt.: false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verifica identidad de servidor (predt: \"\n\"false).\\n\"\n\"\\n\"\n\" Puedes superponer los UUID de los discos, en vez de utilizar los UUID auto‐\"\n\"generados\\n\"\n\"tras su subida (si lo hace, tienes que suministrar uno por cada disco):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disco UUID\\n\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\"Opciones de salida (-oo) lo cual puede ser utilizado con -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Comprime el archivo de salida (utilizado soo con -of \"\n\"qcow2)\\n\"\n\"  -oo qemu-boot       Arranca el invitado en qemu tras la conversión\\n\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\"Opciones de salida (-oo) los cuales pueden ser utilizados con -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Escribe qcow2 con compat=0.10|1.1\\n\"\n\"                                   (predet.: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (requerido)\\n\"\n\"  -oo vdsm-ovf-salida=DIR      OVF metadata directorio (requerido)\\n\"\n\"  -oo vdsm-ovf-sabor=%s\\n\"\n\"                                                      Puso el tipo de OVF \"\n\"generado (predt.: ovirtexp)\\n\"\n\"\\n\"\n\"Para cada disco tienes que proporcionar una de cada de estas opciones:\\n\"\n\"\\n\"\n\"  -oo vdsm-imagen-uuid=UUID     directorio de Imagen UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       volumen de Disco UUID\\n\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\"Opciones de salida que pueden ser utilizadas con -o disco:\\n\"\n\"\\n\"\n\"  -oo compressed      Comprime el archivo de salida (utilizado solo con -of \"\n\"qcow2)\\n\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\"Las opciones de salida que puede ser utilizadas con -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Comprime el archivo de salida (utilizado sólo con -of \"\n\"qcow2)\\n\"\n\"  -oo create=false        No crea los discos de salida\\n\"\n\"  -oo disk=disk1        Especificar nombre de archivo de disco de salida (si \"\n\"utilizado,\\n\"\n\"                    tiene que ser dado una vez por cada disco, o bien será \"\n\"utilizada la ruta -os)\\n\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\"Opciones de salida que pueden ser utilizadas con -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Comprime el archivo de salida (utilizado solo con -of \"\n\"qcow2)\\n\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"PATH\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"PERMISSIONS:FILE\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"PKG,PKG.\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"Prefiere 'virtio-blk' o 'virtio-scsi'\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"Declara origen y detiene\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"Lee comandos de personalización desde archivo\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"Lee frases de acceso desde stdin\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"Trunca recursivamente todos los archivos dentro del directorio\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"Trunca recursivamente: %s\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"Renombra invitado cuando convierta\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"Ejecuta comando al primer arranque del invitado\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"Ejecuta comando dentro de imagen de disco\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"Ejecuta script en el primer arranque de invitado\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"Ejecuta script en imagen de disco\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"Ejecuta touch sobre un archivo\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"Ejecuta hasta N instancias de nbdcopy en paralelo\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"Ejecuta comando externo\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"Ejecuta ``touch``: %s\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"Ejecuta: %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"SCRIPT\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"SELECTOR\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"Re‐etiquetando SELINUX\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"ORIGEN:DEST\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"La clave SSH no pudo ser inyectada para este tipo de invitado\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"Inyectar clave SSH: %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"Restriega un archivo\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"Restriega el archivo de bitácora construido\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"Restregando el archivo de bitácora\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"Restregando: %s\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"Establezca el ancho de banda dinámicamente desde el archivo\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"Establezca el ancho de banda de los bit por seg\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"Establezca el modo de entrada (por defecto: libvirt)\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"Establecer tamaño de memoria\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"Establecer número de las vCPU\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"Establecer opción para el modo de entrada\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"Establecer opción para el modo de salida\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"Establecer modo de asignación de salida\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"Establecer formato de salida\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"Establecer modo de salida (predet.: libvirt)\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"Establecer lugar de almacén de salida\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"Establecer contraseña cifrada\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"Establecer nombre del programa\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"Establecer la contraseña raíz\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"Establecer la zona horaria por defecto\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"Establece el nombre del host\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"Establece el nombre de archivo de salida\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"Establece contraseña de usuario\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"Establece una semilla aleatoria\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"Establece constraseñas\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"Establece contraseña aleatoria de %s a %s\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"Establece el nombre de host: %s\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"Establece el ID de máquina en %s\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"Establece la zona horaria: %s\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"Configura el destino: %s\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"Configura el origen: %s\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"Información del invitado origen (opción --print-source):\\n\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"Especifica una clave LUKS\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"TARFILE:REMOTEDIR\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"TARGET:LINK[:LINK..]\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"TIMEZONE\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\"La opción --in-place ha sido sustituida por el programa ‘virt-v2v-in-place’\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\"La máquina Virt no tiene mantenimiento para IDE. Reporte un fallo para virt-\"\n\"v2v — refiérase a sección virt-v2v(1) en \\\"BUGS\\\".\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\"La máquina Virt no admite disquetes. Informe de un defecto para virt-v2v — \"\n\"refiérase a la sección virt-v2v(1) en \\\"BUGS\\\".\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\"Este invitado requería una contraseña para conectarse a su pantalla, pero \"\n\"esto no está admitido por oVirt. Por lo tanto la pantalla del invitado \"\n\"convertida no requerirá una contraseña independiente para conectarse.\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\"Este transporte no admite invitados con máquinas virtuales. Puede colapsar \"\n\"las instantáneas de este invitado e intentar la conversión de nuevo, o bien \"\n\"utilice uno de los métodos de conversión alternativos descritos en la \"\n\"sección \\\"NOTAS\\\" de virt-v2v-input-vmware(1).\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"Truncar un archivo a tamaño cero\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"Truncando: %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"UID:GID:PATH\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"USER:SELECTOR\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"USER[:SELECTOR]\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"Desinstalar paquete(s)\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"Desinstalando paquetes: %s\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"Desempaquetar archivo tar: %s a %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"Actualizar paquetes\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"Actualizando paquetes\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"Subir archivo local al destino\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"Subir: %s a %s\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"Utilice secuencias de colores ANSI incluso si no es tty\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\"Utilice la contraseña del archivo para conectarse al hipervisor de entrada\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\"Utilice la contraseña del archivo para conectarse al hipervisor de entrada\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"Utilice en su lugar virt-v2v-in-place\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"Cubre los mensajes de bitácora incluso si no es por tty\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"Escribe archivo\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"Escribiendo: %s\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\"El bloque YAML contiene un carácter de salto de línea. Esto no debería \"\n\"suceder; por favor, informe de este defecto en virt-v2v.\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\"ya existe un dominio libvirt llamado ‘%s' en el destino.\\n\"\n\"\\n\"\n\"Si utiliza virt-v2v directamente, emplee la opción ‘-on' para seleccionar un \"\n\"nombre diferente. O borre el dominio existente en el destino utilizando el \"\n\"comando ‘virsh undefine'.\\n\"\n\"\\n\"\n\"Si utilizando virt-p2v, selecciona el ‘Nombre’ diferente en las ‘propiedades \"\n\"del Destino’. O borre el dominio existente sobre destino que utiliza el \"\n\"comando ‘virsh undefine'.\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"append_line: %s no es un archivo\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\"Suma de verificación incorrecta para el disco %d/%d\\n\"\n\"Suma de verificación esperada: %s\\n\"\n\"Suma de verificación real: %s\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"no se puede encontrar el dominio libvirt ‘%s’: %s\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\"no se puede encontrar el consorcio libvirt «%s>: %s\\n\"\n\"\\n\"\n\"Utilice «virsh pool-list --all» para enumerar todos los consorcios \"\n\"disponibles, y «virsh pool-dumpxml <pool>» para mostrar detalles sobre el \"\n\"consorcio particular.\\n\"\n\"\\n\"\n\"Para establecer el consorcio el cual utiliza virt-v2v, añada la opción ‘-os \"\n\"<consorcio>’.\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"no se puede encontrar el volumen libvirt ‘%s’: %s\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\"no se puede finalizar el primer arranque de instalación al ejecutar ‘%s’ \"\n\"porque la cpu huésped (%s) y la arquitectura invitara (%s) no son \"\n\"compatibles. Es posible que el servicio firstboot no se ejecute al iniciar \"\n\"el sistema.\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"no se pueden obtener las capacidades del dominio libvirt: %s\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"no se pueden obtener las capacidades de hipervisor libvirt: %s\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"no se pueden interpretar el parámetro --mac «%s»\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\"no se puede interpretar la ip %s --mac: «%s» no parece ser una dirección IP\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\"no se puede interpretar ip --mac prefijo con campo de longitud como un \"\n\"entero: %s\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\"No puede utilizar «%s» porque ninguna gestor de paquete ha sido detectado \"\n\"para este SO invitado.\\n\"\n\"\\n\"\n\"Si este SO invitado es uno usual con gestión de empaquetado ordinario \"\n\"entonces esto puede haber sido causado por un fallo de inspección en \"\n\"libguestfs.\\n\"\n\"\\n\"\n\"Para varios SO como Windows que les falta gestión de empaquetado, esto no es \"\n\"posible. Intenta utilizar un indicador '--firstboot'  en su lugar (descrito \"\n\"en el manual de virt-customiza(1).\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\"No se puede escribir archivos al servidor NFS como %d:%d, incluso aunque \"\n\"aparezca estar ejecutando como root. Esto probablemente significa que el \"\n\"cliente de NFS o idmapd no está configurado correctamente.\\n\"\n\"\\n\"\n\"Tendrás que hacer un chown a los archivos que cree virt-v2v tras ejecutar, \"\n\"en otro caso oVirt no será capaz de importar la MV.\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\"no se pueden escribir archivos en el servidor NFS como %d:%d. Quizás quieras \"\n\"detener virt-v2v (^C) y volver a ejecutarlo como root.\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\"el comando '%s' no se puede usar en archivos de comandos, consulte la página \"\n\"de man\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"el comando '%s' no es válido; consulte la página de man\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"no se pudo agregar la consola serie de grub2 (ignorada)\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\"no se pudo copiar el archivo VMX desde el servidor remoto; consulte los \"\n\"mensajes de error más anteriores\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\"no se pudo definir el dominio de libvirt: %s.\\n\"\n\"El archivo XML de libvirt aún está disponible en %s. Intente ejecutar \"\n\"manualmente el comando `virsh -c %s define %s`.\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\"no se pudo determinar una forma de actualizar la configuración de Grub2\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\"no se pudo obtener la huella digital del servidor, debe usar ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\"no se pudo encontrar el punto de montaje del gestor de arranque (%s): %s\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\"no se pudo encontrar la entrada de registro \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds en este sistema \"\n\"operativo Windows. Es posible que se trate de una versión muy antigua o muy \"\n\"reciente de Windows que no podemos procesar.\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\"no se pudo finalizar la instalación de firstboot ejecutando '%s' porque el \"\n\"comando falló: %s\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"no se pudo interpretar '-ic %s'. El mensaje de error original fue: %s\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\"no se pudo interpretar el nombre del dispositivo '%s' del archivo XML de \"\n\"origen de libvirt\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\"no se pudo interpretar el disco de rasd:HostResource desde el documento OVF\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"no se pudo interpretar ovf:Name desde el documento OVF\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\"no se pudo leer el %s especificado por el parámetro '-os %s' sobre la línea \"\n\"de comando.  ¿Realmente es un OVirt %s?  El error original es: %s\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\"no se pudo reconstruir el archivo de configuración de grub2 (%s).  Esto \"\n\"puede significar que la salida de grub no se enviará al puerto serie, pero \"\n\"por lo demás no debería causar problemas.  Mensaje de error original: %s\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"no se pudo refrescar el consorcio de libvirt '%s': %s\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"no se pudo retirar la consola serie de grub2 (ignorada)\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\"decode_utf16le: La cadena UTF16-LE de Windows contiene caracteres que no son \"\n\"de 7-bit.  Esto es un error en %s; por favor, repórtelo.\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\"decode_utf16le: La cadena de Windows no parece estar codificada en UTF16-LE. \"\n\"Esto pudo ser un defecto en %s.\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"no se encontró apunte de grub para el kernel %s\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"los discos en la línea de comandos tienen formatos mezclados\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\"exhiba <graphics type='%s'> dentro del XML de entrada de libvirt fueron \"\n\"ignorados\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"no conoce como convertir invitados de UEFI para arquitectura %s\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"no sé cómo encontrar al propietario del archivo usando %s\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"no sé cómo obtener la lista de archivos del paquete usando %s\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"descargando %s\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\"parámetro --mac duplicado. Se especificaron asignaciones duplicadas para la \"\n\"dirección MAC %s.\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\"parámetro -b/--bridge duplicado. Se especificaron asignaciones duplicadas \"\n\"para el puente %s.\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\"parámetro duplicado -b/--bridge. Solo se permite una asignación \"\n\"predeterminada.\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\"parámetro -n/--network duplicado. Se especificaron asignaciones duplicadas \"\n\"para la red %s.\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\"parámetro -n/--network duplicado. Solo se concede una asignación \"\n\"predeterminada.\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"error al interpretar el archivo FileRef del disco\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"error al descomprimir %s, consulte los mensajes de error anteriores\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"error al desempaquetar %s, consulte los mensajes de error anteriores\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"excepción: %s\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"salido con error %d\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"salido con error sin cero con código %d\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"esperaba nombre del disco >= 1 en la línea de comando\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\"esperaba expresión en XML para devolver un entero (expresión: %s, cadena \"\n\"coincidente: %s)\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"comando externo\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"pre‐comprobante de servidor incorrecto, consulte errores anteriores\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"ha fallado al crear máquina virtual, consulte errores anteriores\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\"incorrecto al finalizar las transferencias, consulte errores anteriores\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\"incorrecto al encontrar el binario de grub2-mkconfig (pero Grub2 fue \"\n\"detectado en invitado)\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"incorrecto al interpretar línea devuelta por tar: %S\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"incorrecto al iniciar transferencia, consulte errores anteriores\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"incorrecto al comprobar vmcheck, consulte errores anteriores\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"incorrecto: %s\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"archivo «%s» no encontrado en la ova\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\"firstboot: versión desconocida para archivo firsboot.service anterior %s \"\n\"(md5=%s), no será eliminado\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"generado por %s %s\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"get_osinfo_id: sistema operativo invitado desconocido: %s\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\"glance: cliente glance no está instalado o configurado apropiadamente.  \"\n\"Puede necesitar establecer las variables del entorno o fuente de un script \"\n\"para habilitar autenticación. Consulte mensajes precedentes para detalles.\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"glance: imagen subida a glance incorrecta, consulte errores anteriores\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"tipo de invitado %s no está mantenido\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"tipo invitado %s/%s no está mantenido\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\"host (%s/%s) e invitado (%s/%s) no son compatibles, por tanto no se puede \"\n\"utilizar las opciones de línea de comando que involucren ejecutar comandos \"\n\"en el invitado.  Utilice los script de --firstboot en su lugar.\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"nombre de host no pudo ser fijado para este tipo de invitado\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"se hace caso omiso al kernel %s en bootloader, ya que no existe.\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"el directorio de imagen (%s) no existe o no es un directorio\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\"en los metadatos XML de libvirt, <dominio tipo='...'> está ausente o vacío\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"dentro de los metadatos XML de libvirt, <nombre> está ausente o vacío\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"el modo in-place no funciona con origen HTTP\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"modo in-place no funciona con origen VDDK\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"modo in-place no funciona con origen VMX\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"modo in-place no funciona con Xen sobre origen SSH\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\"número incorrecto de parámetros ‘-oo disk’.  Este invitado tiene %d discos, \"\n\"pero el parámetro fue utilizado %d veces.\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\"entrada desde xen sobre ssh no admite discos almacenados en dispositivos de \"\n\"bloque remoto.  Consulte virt-v2v-input-xen(1) en la sección \\\"Xen or ssh \"\n\"conversions fron block devices\\\".\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\"espacio libre insuficiente en la directorio %s temporal de conversión del \"\n\"servidor (%s).\\n\"\n\"\\n\"\n\"O bien libere espacio en ese directorio, o bien establezca la variable del \"\n\"entorno LIBGUESTFS_CACHEDIR para apuntar a otro directorio con más de 1Gb de \"\n\"espacio libre.\\n\"\n\"\\n\"\n\"Además consulte el manual virt-v2v(1), en la sección \\\"Minimum free space \"\n\"check in the host\\\".\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"error interno: fue lanzada la excepción Not_found\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"error interno: aserción incorrecta en %s, línea %d, char %d\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"error interno: argumento no válido: %s\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\"error interno: is_file_owned: el comando dpkg no devolvió ninguna salida\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"error interno: is_file_owned: salida inesperada desde comando dpkg: %s\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"error interno: expresión regular no coincidió con «%s»\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\"error interno: wait devolvió ID %d con estado «%s» el cual no es esperado\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"opción --mac no válida\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"parámetro -b/--bridge no válido\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"parámetro -n/--network no válido\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"cpu.coresPerSocket < número de vCPU no válido\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"formato no válido para parámetro ‘--%s’, consulte la página man\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"cadena con formato no válido para --machine-readable: %s\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"entrada no válida del nombre de archivo (%s)\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"desplazamiento no válido devuelto por tar: %S\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"salida fd no válida para --machine-readable: %s\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"salida no válida para --machine-readable: %s\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"flujo de salida no válido para --machine-readable: %s\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"selector «%s» de contraseña no válida; consulte la página man\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"tamaño no válido devuelto por tar: %S\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"selector ssh-inject «%s» no válido; consulte la página man\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"vmw:CoresPerSocket no válido (%d) se hace caso omiso\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"vmw:CoresPerSocket < número de núcleos no válido\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"el kernel %s no está debajo del árbol de grub %s\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"matado por señal %d\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"error de libguestfs: %s\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\"dominio libvirt «%s» está ejecutándose o pausado. Convertir un invitado vivo \"\n\"resultará en salida corrupta. Sin embargo esto es seguro si está \"\n\"convirtiendo desde una captura de pantalla\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"archivo bitácora %s: %s (se descarta)\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\"haciendo legible el directorio OVA para que funcione rodeando de defecto de \"\n\"libvirt, https://bugzilla.redhat.com/1045069\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\"el manifiesto tiene un comprobante para archivo no existente %s (se descarta)\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"el método '%s' no está mantenido por más tiempo\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"valor ausente para la clave ‘%s’\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"se encontraron más de un archivo .ovf en %s\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"más que el valor para la clave «%s»\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\"el comando mount ha fallado, consulte errores anteriores.\\n\"\n\"\\n\"\n\"Esto probablemente significa que no especificó el derecho %s ruta [-os %s], \"\n\"o bien necesite volver a ejecutar virt-v2v como root.\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\"múltiples opciones --root-password/--password establecen la contraseña para \"\n\"el usuario «%s» dos veces\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\"El complemento nbdkit VDDK no está instalado o no funciona.  Está requerido \"\n\"si quieres utilizar VDDK.\\n\"\n\"\\n\"\n\" Parece que no especificó la ruta correcta en la opción '-io vddk-libdir', o \"\n\"su copia del directorio VDDK está incompleta.   Tendría que haber una \"\n\"biblioteca llamada '<libdir>/%s/libvixDiskLib.so.?'.\\n\"\n\"\\n\"\n\"Consulte además el manual de virt-v2v-input-vmware(1).\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\"El complemento nbdkit de VDDK no está instalado o no funciona.  Está \"\n\"requerido si quieres utilizar VDDK.\\n\"\n\"\\n\"\n\"El complemento VDDK no está habilitado por defecto cuando compila nbdkit.  \"\n\"Tiene que leer las instrucciones en las fuentes de nbdkit bajo 'plugins/vddk/\"\n\"README.VDDK' para encontrar como habilitar el complemento de VDDK.\\n\"\n\"\\n\"\n\"Consulte además el manual de virt-v2v-input-vmware(1).\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\"nbdkit no ha arrancado.  Consulte los mensajes de depuración previos para \"\n\"problemas.\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\"nbdkit no ha arancado.   Puede haber errores declarados por nbdkit encima.\\n\"\n\"\\n\"\n\"Si los mensajes encima no son suficientes para diagnosticar el problema \"\n\"entonces añade las opciones 'virt-v2v -v -x' y examine la salida de \"\n\"depuración cuidadosamente.\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"nbdkit no está instalado o no funciona\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\"nbdkit no está instalado o no funciona.  Está requerido para utilizar '-i \"\n\"disco'.\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\"nbdkit no está instalado o no funciona.  Es requerido para utilizar '-i \"\n\"libvirt|libvirtxml'.\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\"nbdkit no está instalado o no funciona.  Está requerido para utilizar '-i \"\n\"disk'.\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\"nbdkit no está instalado o no funciona.  Está requerido para utilizar '-o \"\n\"null'.\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\"nbdkit no es instalado o no funciona.  Está requerido para utilizar ‘-o \"\n\"ovirt-upload'.  Consulte el manual de virt-v2v-output-ovirt(1).\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"nbdkit debe ser >= 1.45.11 para entrada desde VDDK\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\"nbdkit con complemento en python no está instalado o no funciona.   Está \"\n\"requerido si desea utilizar ‘-o ovirt-upload'.\\n\"\n\"\\n\"\n\"Consulte también el manual de virt-v2v-output-ovirt(1).\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\"nbdkit fue compilado sin mantenimiento de SELinux.   Tendrá que recompile \"\n\"nbdkit con libselinux-devel instalado, o por otra parte establezca SELinux a \"\n\"modo Permissive mientras haga la conversión.\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"nbdkit-cow-filter no está instalado o no funciona\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"nbdkit-curl-plugin no está instalado\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"nbdkit-file-plugin no está instalado o no funciona\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"nbdkit-nbd-plugin no está instalado o no funciona\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"nbdkit-null-plugin no está instalado o no funciona\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"nbdkit-ssh-plugin no está instalado\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"nbdkit-vddk-plugin no está instalado\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"nbdkit: versión inesperada en --dump-config: %s\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"no está concedido ningún -io (opciones de entrada) aquí\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"no está concedido ningún -oo (opciones de salida) aquí\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"no fue encontrado ningún archivo .ovf en %s\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"ningún cargador de arranque detectado\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"ningún clave displayName encontrada dentro del archivo VMX\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"ningún href en ovf:File (id=%s)\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"ningún initrd fue encontrado en /boot coincidiendo con %s %s.\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\"no fue encontrado ningún paquete del kernel instalado.\\n\"\n\"\\n\"\n\"Esto probablemente indica que %s era incapaz de inspeccionar este invitado \"\n\"apropiadamente.\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\"no fue encontrado ningún kernel en la configuración del cargador de \"\n\"arranque.\\n\"\n\"\\n\"\n\"Esto indica probablemente que %s no fue capaz de interpretar la \"\n\"configuración del cargador de arranque de este invitado.\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\"ningún binario de python invocó a '%s' puede ser encontrado en la ruta $PATH\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\"sin mantenimiento para conexiones remotas de libvirt a '-ic %s'.  La \"\n\"conversión puede fallar cuando intenta leer los discos de fuente.\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\"oVirt no se puede emular tarjetas de sonido ‘%s'.  Esta tarjeta de sonido \"\n\"estará abandonada desde la salida.\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"oVirt no mantiene el formato ‘%s' de salida, solo en bruto o qcow2\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"openstack: -oo server-id=<NOMBRE|UUID> no presente\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\"openstack: incorrecto al adjuntar la ceniza del volumen a MV, consulte los \"\n\"mensajes de error anteriores\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\"openstack: incorrecto al crear un volumen ceniza, consulte los mensajes de \"\n\"error más anteriores\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\"openstack: incorrecto al solicitar estado del volumen cenizo, consulte \"\n\"mensajes de error más anteriores\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\"openstack: incorrecto al poner propiedades de imagen en volumen ceniza, \"\n\"consulte los mensajes de error más anteriores\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\"openstack: pre‐comprobante incorrecto, puede haber un problema con la \"\n\"autenticación, consulte los mensajes de error más anteriores\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\"openstack: estado de volumen «%s» desconocido: se esperaba «creating» o \"\n\"«available»\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"modo de salida solo admite formato en bruto o qcow2 (formato: %s)\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\"disco ova tiene un tipo de controlador (%d) VMware desconocido, informe esto \"\n\"como un defecto proporcionando el archivo *.ovf extraído desde el ova\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\"disco ova no tiene controlador de antecesor, informe esto como un defecto \"\n\"proporcionando el archivo *.ovf extraído desde el ova\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\"ovirt-upload: -of %s: solo el formato de salida en bruto 'raw' o 'qcow2' \"\n\"está mantenido.  Si la entrada está en un formato diferente entonces fuerza \"\n\"uno de estos formatos de salida para añadir o bien '-of raw' o '-of qcow2' \"\n\"en la línea de comando.\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\"password-crypto: algoritmo %s desconocido, utilice \\\"md5\\\", \\\"sha256\\\", \"\n\"\\\"sha512\\\" o \\\"yescrypt\\\"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\"password: utilizando cifrado de contraseña md5 inseguro para invitado de \"\n\"tipo %s, versión %d.%d.\\n\"\n\"Si esto es incorrecto, utilice la opción --password-crypto envíe un defecto.\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"las contraseñas no pudieron ser fijados para este tipo de invitado\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\"qemu-nbd no ha arrancado.  Consulte los mensajes de depuración anteriores \"\n\"para problemas.\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\"qemu-nbd no arrancó.   Puede haber errores declarados por qemu-nbd antes.\\n\"\n\"\\n\"\n\"Si los mensajes anteriores no son suficientes para diagnosticar el problema \"\n\"entonces añade las opciones 'virt-v2v -v -x' y examinar la salida de \"\n\"depuración cuidadosamente.\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"qemu-nbd: versión inesperada en --version: %s\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\"la semilla aleatoria no pudo ser establecida para este tipo de invitado\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"vmx '%s' remoto no pudo ser interpretado como un URI\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\"directorio raíz '/' falta desde el directorio virtio-win o ISO.\\n\"\n\"\\n\"\n\"Esto no sucedería y puede indicar que virtio-win o virt-v2v está estropeado \"\n\"de alguna manera.  Informe esto como un defecto con una bitácora depurante \"\n\"completa.\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"selector '%s': TYPE no válido\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"selector '%s': ausencia de FILENAME, o campos excesivos\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"selector '%s': falta ID\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"selector '%s': KEY_STRING ausente, o demasiados campos\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"Selector '%s': TIPO desaparecido\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"selector '%s': campos excesivos\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"señalado por señal %d\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\"disculpe, ‘%s' con el gestor de paquete ‘%s' no ha sido implementada aún.\\n\"\n\"\\n\"\n\"Puedes funcionar alrededor de esto utilizando una de las opciones de '--run' \"\n\"o '--firstboot*' en su lugar (descritas en el manual de virt-customize(1)).\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"ssh-inject: la variable del entorno $HOME no está establecida\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"ssh-inject: la clave es una cadena vacía\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"ssh-inject: ningún archivo de clave pública encontrado en %s\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"ssh-inject: el archivo de clave pública (%s) está vacío\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"ssh-inject: el usuario %s no existe en el invitado\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"detenido por señal %d\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"subproceso terminado con código de error %d distinto de cero\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"subproceso señalizado o detenido por señal %d\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"logrado\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\"hipervisor destino no admite dispositivos de disquete, pero los dispositivos \"\n\"de disquete se encontraron dentro del invitado origen\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\"el módulo de Python 'ovirtsdk4' no pudo ser cargado, ¿está instalad?  \"\n\"Consulte los mensajes anteriores para problemas.\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"el cluster '%s' no admite la arquitectura %s pero sí %s\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\"el comando puede haber fallado porque la red está inhabilitada.  Pruebe o \"\n\"bien retirando '--no-network' o añadiendo '--network' en la línea de comando.\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"la clave '%s' no fue encontrada dentro de un listado de objetos\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\"el número de los parámetros de '-oo ovirt-disk-uuid' son pasados a la línea \"\n\"de comando tiene que coincidir con el número de imágenes de disco invitados \"\n\"(para este invitado: %d)\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\"el número de los parámetros de '-oo vdsm-image-uuid' y '-oo vdsm-vol-uuid’ \"\n\"son pasados a la línea de comando tiene que coincidir con el número de \"\n\"imágenes de disco invitados (para este invitado: %d)\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"el hypervisor destino no admite un invitado %s KVM\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"el valor para clave ‘%s' no es una cadena como esperaba\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"el valor para la clave '%s' no es un arranque\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"el valor para la clave ‘%s' no es una cadena\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"el valor para la clave '%s' no es un entero\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"el valor para la clave '%s' no es un objeto\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"el valor no es un objeto\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"el valor de la clave '%s' no es un objeto\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\"el tamaño virtual del disco de entrada %d no es un múltiplo exacto de 512 \"\n\"bytes.  El tamaño virtual es: %Ld.\\n\"\n\"\\n\"\n\"Esta probablemente significa que algo no esperado está continuando, tal que \"\n\"envíe un defecto acerca del asunto.\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\"el programa '%s' no está disponible.  Es necesario comunicar con OpenStack.\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\"hay múltiples UUID en el %s (%s).  Esto es inesperado, y puede ser un \"\n\"defecto en virt-v2v u OVirt.\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"no hay ningún UUID en el %s (%s).  ¿Realmente esto es un OVirt %s?\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\"no hay disponible ninguna unidad virtio para esta versión de Windows (%d.%d \"\n\"%s %s %s).  virt-v2v busca unidades en %s\\n\"\n\"\\n\"\n\"El invitado estará configurado para utilizar unidades emuladas más lentas.\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\"no hay ninguna unidad del dispositivo de bloque virtio para esta versión de \"\n\"Windows (%d.%d %s).  virt-v2v busca esta unidad en %s\\n\"\n\"\\n\"\n\"El invitado será configurado para utilizar un dispositivo de emulador más \"\n\"lento.\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\"no hay ninguna unidad de red virtio para esta versión de Windows (%d.%d \"\n\"%s).  virt-v2v busca esta unidad en %s\\n\"\n\"\\n\"\n\"El invitado será configurado para utilizar una unidad emulada más lenta.\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\n\"este invitado tiene un interfaz de red directa la cual se hará caso omiso\"\nmsgstr[1] \"\"\n\"este invitado tiene interfaces de red directa la cual se hará caso omiso\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\n\"este invitado tiene un dispositivo de hospedaje con traspaso la cual será \"\n\"ignorada\"\nmsgstr[1] \"\"\n\"este invitado tiene dispositivos de hospedaje con traspaso la cual será \"\n\"ignorada\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"este invitado no tiene ningún disco no extraíble\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"esta salida del módulo no admite copia de más de %d discos\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\"la zona horaria '%s' no existe, utilice una localización como 'Europe/Madrid'\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"la zona horaria no pudo ser establecida para este tipo de invitado\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"no es capaz de interpretar línea desde archivo de declaración: %S\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"final inesperado del archivo mientras leía /dev/urandom\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"salida inesperada desde el comando %s\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"comprobante sumatorio no manipulado de tipo '%s'\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"opción --root desconocida: %s\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"opción -i desconocida: %s\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"opción -o desconocida: %s\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"opción -oa desconocida: %s\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"desconoce <checksum> con method='%s'\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"valor %s de Config:firmware desconocida (esperaba \\\"bios\\\" o \\\"efi\\\")\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"variante de Windows 10 desconocida: %s (%s)\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"bloque de unidad '--block-driver %s' desconocida\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"valor desconocido del firmware '%s', se asume BIOS\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"sistema operativo de invitado desconocido: %s %s %d.%d %s (%s)\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"transporte de entrada desconocido ‘-it %s'\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"dispositivo de sonido '%s' desconocido se hace caso omiso\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"modelo de sonido %s desconocido se hace caso omiso\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"compresión no admitida en OVF: %s\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\"vcenter: <vmware:datacenterpath> no fue encontrado en el XML.  Necesita \"\n\"mejorar a la versión de libvirt ≥ 1.2.20.\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"vcenter: URL no encontrada: %s\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"vcenter: identificador de usuario o contraseña incorrecta\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\"vcenter: identificador de usuario o contraseña incorrecta.  Tal vez necesite \"\n\"especificar el identificador de usuario en la URI como esta: [vpx|esx|..]://\"\n\"USERNAME@[etc]\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"vcenter: respuesta no válida desde servidor: %s\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"vcenter: sin código de estado en salida de comando ‘curl’.\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"vdsm: parámetro -os no válido no contiene un UUID válido: %s\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\"virt-v2v -oo servidor-id=<NOMBRE|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Especifique el nombre o el UUID de la conversión de aplicación utilizando\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NOMBRE|UUID>\\n\"\n\"\\n\"\n\"Cuando se ejecuta virt-v2v, adjuntará los volúmenes de Cinder al\\n\"\n\"aparato de conversión, por lo que este nombre o UUID debe ser el nombre\\n\"\n\"de la máquina virtual OpenStack donde  virt-v2v está ejecutándose.\\n\"\n\"\\n\"\n\"Además, se pueden utilizar todos los parámetros habituales de\\n\"\n\"OpenStack \\\"os-*\\\" o las variables de entorno \\\"OS_*\\\".\\n\"\n\"\\n\"\n\"Los parámetros “--os-*” de Openstack deben ser escritos como “virt-v2v -oo \"\n\"os-*”.\\n\"\n\"\\n\"\n\"Por ejemplo:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NOMBRE>\\n\"\n\"\\n\"\n\"                equivalente a openstack: --os-username=<NOMBRE> o\\n\"\n\"            la variable del entorno: OS_USERNAME=<NOMBRE>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NOMBRE>\\n\"\n\"\\n\"\n\"                equivalente a openstack: --os-project-name=<NOMBRE> o\\n\"\n\"            la variable del entorno: OS_PROJECT_NAME=<NOMBRE>\\n\"\n\"\\n\"\n\"Los parámetros os-* y variables del entorno son opcionales.\\n\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\"virt-v2v no mantiene pantallas locales, por tanto <graphics type='%s'> en el \"\n\"XML de libvirt de entrada se hizo caso omiso\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"virt-v2v-in-place no admite las URI libvirt remotas\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"componente de ruta URI de vnx parece incorrecto\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"nombre de servidor con URI vmx se hace caso omiso\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"inicio de URI vmx con 'ssh://…'\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"intérprete vmx: esta línea no se puede interpretar, se descarta: %s\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"intérprete vmx: clave '%s' duplicada se hace caso omiso\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"espera estado de volumen ceniza para cambiar a \\\"disponible\\\"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"esperando volumen ceniza %s para adjuntar al instrumento de conversión\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"debe proporcionar el parámetro --run\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"‘-ic %s’ de URL no contiene un campo de nombre del host\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"‘-io vddk-file=’ debe ser utilizado exactamente %d veces\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\"‘-io vddk-libdir=%s’ no apunta a un directorio.  Consulte el manual virt-v2v-\"\n\"input-vmware(1).\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\"‘-oo compressed’ solo está concedido cuando el formato de salida es un \"\n\"archivo local de qcow2-format, p.e. ‘-of qcow2’\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\"comando 'openssl' no encontrado: no es posible detectar automáticamente la \"\n\"impresión del pulgar, por tanto debe utilizar ‘-io vddk-thumbprint=XX:XX...’\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"Intente ‘%s --help' o consulte %s(1) para más información.\\n\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"%s: ‘%s' no es un valor numérico.\\n\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: entero fuera de rango\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"%s: ‘%s' no está concedido para -%c; los valores concedidos son:\\n\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"%s: ‘%s' no está concedido para %s%s; los valores concedidos son:\\n\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"Parámetro adicional en la línea de comando: '%s'.\\n\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"%s: línea %d: error al interpretar archivo de configuración: %s\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"tamaño de cadena desbordada\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\"'clevis_luks_unlock', necesario para descifrar %s, no está disponible en \"\n\"esta versión de libguestfs\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\"no se pudo encontrar clave para abrir LUKS %s cifrado.\\n\"\n\"\\n\"\n\"Intente utilizar --key en la línea de comando.\\n\"\n\"\\n\"\n\"Error original: %s (%d)\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\"%s: ningún sistema operativo estuvo encontrado en este disco\\n\"\n\"\\n\"\n\"Si utilizando la opción guestfish ‘-i', retire esta opción y en su lugar\\n\"\n\"utiliza las instrucciones ‘run’ seguidos por ‘list-filesystems'.\\n\"\n\"Entonces puedes montar sistemas de archivos deseados a\\n\"\n\"mano utilizando las instrucciones ‘mount’ o ‘mount-ro'.\\n\"\n\"\\n\"\n\"Si utiliza guestmount ‘-i', retire esta opción y escoja el sistema de\\n\"\n\"archivos que desee ver manualmente añadiendo la opción '-m' .\\n\"\n\"Emplee ‘virt-filesystems' para ver lo que sistema de archivos está\\n\"\n\"disponible.\\n\"\n\"\\n\"\n\"Si utiliza otro de las herramientas virt, esta imagen de disco\\n\"\n\"no funcionaría con estas herramientas.  Emplee las instrucciones\\n\"\n\"guestfish equivalentes (consulte la página del manual de la\\n\"\n\"herramienta virt).\\n\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\"%s: los sistemas operativos multi‐arranque no están mantenidos\\n\"\n\"\\n\"\n\"Si emplea la opción ‘guestfish -i’, retire esta opción y utilice en\\n\"\n\"su lugar las instrucciones ‘run’ seguido por ‘list-filesystems'.\\n\"\n\"Entonces puedes montar sistemas de archivos deseados a mano\\n\"\n\"utilizando las instrucciones ‘mount’ o ‘mount-ro'.\\n\"\n\"\\n\"\n\"Si utiliza guestmount ‘-i’, retire esta opción y elija el sistema de\\n\"\n\"archivo deseado para verlo manualmente añadiendo la opción\\n\"\n\"‘-m’. Utilice ‘virt‐filesystems' para ver qué sistema de archivos\\n\"\n\"está disponible.\\n\"\n\"\\n\"\n\"Si utilizando otras herramientas de virt, los S.O. de multi‐arranque\\n\"\n\"no funcionarían con estas herramientas. Utilice las instrucciones\\n\"\n\"equivalentes de guestfish (consulte la página del manual de virt).\\n\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\"%s: algunos sistemas de archivos no han podido ser montados (se \"\n\"descartaron)\\n\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"Sistema operativo: %s\\n\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"%s montado en %s\\n\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"Ingrese la llave o la frase de acceso (\\\"%s\\\"): \"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"size_t desbordado\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"no se pudo leer tecla desde usuario\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"%s: ‘%s’ no pudo ser montado.\\n\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\"%s: Compruebe la página man de mount(8) para asegurar las opciones ‘%s'\\n\"\n\"%s: se mantiene con el sistema de archivos que esté siendo montando.\\n\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"%s: ¿quiso decir montar uno de estos sistemas de archivos?\\n\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"no se puede determinar el sub‐volumen para %s: %s (%d)\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"%s: --add: no se pudo interpretar la URI ‘%s'\\n\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"%s: %s: esquema de URI es NULL o está vacío\\n\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\"%s: %s: no se puede tener ambos un nombre de servidor y un parámetro de \"\n\"consulta de zócalo\\n\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"%s ha salido correctamente\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"%s ha salido con estado de error %d\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"%s muerto por señal %d (%s)\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"%s detenido por señal %d (%s)\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"%s salió por una razón desconocida (estado %d)\"\n"
  },
  {
    "path": "po/eu.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: eu\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/fi.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 1.43.4\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2025-01-09 11:33+0000\\n\"\n\"Last-Translator: Ricky Tigg <ricky.tigg@gmail.com>\\n\"\n\"Language-Team: Finnish <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-master/fi/>\\n\"\n\"Language: fi\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Generator: Weblate 5.9.2\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"%s\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\"%s\\n\"\n\"Vaihtoehdot:\\n\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"%s (ohitettu)\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"%s ei palauttanut mitään ulostuloa\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"%s:ta ei ole olemassa vieraassa\"\n\n#: output/output_ovirt.ml:275\n#, fuzzy\n#| msgid \"\"\n#| \"%s does not exist or is not a directory.\\n\"\n#| \"\\n\"\n#| \"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n#| \"Center, or the path %s is not an %s at all.\\n\"\n#| \"\\n\"\n#| \"You have to attach the %s to a Data Center using the RHV-M / OVirt user \"\n#| \"interface first.\\n\"\n#| \"\\n\"\n#| \"If you don’t know what the %s mount point should be then you can also \"\n#| \"find this out through the RHV-M user interface.\"\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\"%s ei ole olemassa tai se ei ole hakemisto.\\n\"\n\"\\n\"\n\"Todennäköisin syy: %s (%s) ei ole liitetty mihinkään palvelinkeskukseen tai \"\n\"polku %s ei ole ollenkaan %s.\\n\"\n\"\\n\"\n\"Sinun on ensin liitettävä %s tietokeskukseen käyttämällä RHV-M / OVirt \"\n\"käyttöliittymää.\\n\"\n\"\\n\"\n\"Jos et tiedä mikä %s-liitoskohdan pitäisi olla, voit selvittää tämän myös \"\n\"RHV-M-käyttöliittymän kautta.\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"%s jätettiin huomioimatta ei-Windows-vieraille\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"%s ei ole tavallinen tiedosto vieraassa\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"%s-vaihtoehtoa käytetään useammin kuin kerran komentorivillä\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"%s: %s\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"%s: %s: %s\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\"%s: Poistutaan signaalilla %s\\n\"\n\"%!\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"%s: ei voi avata virtio-win ISO -tiedostoa: %s\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"%s: komento poistui virheellä\"\n\n#: v2v/v2v.ml:277\n#, fuzzy\n#| msgid \"\"\n#| \"%s: convert a guest to use KVM\\n\"\n#| \"\\n\"\n#| \"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n#| \"esx_guest\\n\"\n#| \"\\n\"\n#| \"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi esx_guest -o rhv \"\n#| \"-os rhv.nfs:/export_domain --network ovirtmgmt\\n\"\n#| \"\\n\"\n#| \"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n#| \"\\n\"\n#| \"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n#| \"\\n\"\n#| \"virt-v2v -i disk disk.img -o glance\\n\"\n#| \"\\n\"\n#| \"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n#| \"ISO or CD image that can be booted on physical machines.\\n\"\n#| \"\\n\"\n#| \"A short summary of the options is given below.  For detailed help please\\n\"\n#| \"read the man page virt-v2v(1).\\n\"\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\"%s: muunna vieras käyttämään KVM:aa\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://v-keskus.esimerkki.com/datakeskus/esxi -os tuotu_esx-\"\n\"vieras\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://v-keskus.esimerkki.com/datakeskus/esxi esx-vieras -o rhv \"\n\"-os rhv.nfs:/export_domain --network ovirt_hallinta\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml vieraan_verkkotunnus.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk levy.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk levy.img -o glance\\n\"\n\"\\n\"\n\"On olemassa kumppanikäyttöliittymä nimeltä \\\"virt-p2v\\\", joka tulee nimellä\\n\"\n\"ISO- tai CD-kuva, joka voidaan käynnistää fyysisillä koneilla.\\n\"\n\"\\n\"\n\"Alla on lyhyt yhteenveto vaihtoehdoista. Yksityiskohtaista apua saat \"\n\"lukemalla\\n\"\n\"man-sivu virt-v2v(1).\\n\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\"%s: muunna vieras käyttämään olemassa olevaa KVM:aa\\n\"\n\"\\n\"\n\"Huomaa, että tämä ohjelma muokkaa paikallaan olevaa vierasta, ilman\\n\"\n\"varmuuskopiota. Normaalisti sinun tulee käyttää virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml vieraan_verkkotunnus.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk levy.img\\n\"\n\"\\n\"\n\"Alla on lyhyt yhteenveto vaihtoehdoista. Yksityiskohtaista apua saat \"\n\"lukemalla\\n\"\n\"man-sivu virt-v2v-in-place(1).\\n\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"%s: virhe: %s\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\"%s: arvio levytilan tarpeesta ennen virt-v2v:n muuntamista\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk levy.img [-O ulostulo.xml]\\n\"\n\"\\n\"\n\"Alla on lyhyt yhteenveto vaihtoehdoista. Yksityiskohtaista apua saat \"\n\"lukemalla\\n\"\n\"man-sivu virt-v2v-inspector(1).\\n\"\n\n#: open/open.ml:94\n#, fuzzy\n#| msgid \"\"\n#| \"%s: estimate disk space needed before virt-v2v conversion\\n\"\n#| \"\\n\"\n#| \"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n#| \"\\n\"\n#| \"A short summary of the options is given below.  For detailed help please\\n\"\n#| \"read the man page virt-v2v-inspector(1).\\n\"\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\"%s: arvio levytilan tarpeesta ennen virt-v2v:n muuntamista\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk levy.img [-O ulostulo.xml]\\n\"\n\"\\n\"\n\"Alla on lyhyt yhteenveto vaihtoehdoista. Yksityiskohtaista apua saat \"\n\"lukemalla\\n\"\n\"man-sivu virt-v2v-inspector(1).\\n\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"%s: toiminta aikakatkaistiin\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\"%s: ei-tuettu tiedostomuoto\\n\"\n\"\\n\"\n\"Muodot, joita ymmärrämme tällä hetkellä '-i ova':lle ovat: tar (pakkaamaton, \"\n\"pakkaaminen gzip:llä tai xz:lla), zip\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"%s: varoitus: %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"'CMD+ARGS'\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\"--append-line: rivi ei saa sisältää uuden rivin merkkejä. Käytä '--append-\"\n\"line' -vaihtoehtoa useita kertoja lisätäksesi useita rivejä.\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"--chown: numeerista UID:GID:tä ei voitu jäsentää %s:%s:sta\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\"--inject-blnsvr: blnsvr.exe:ta ei löytynyt määrittämästäsi virtio-win-\"\n\"lähteestä\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\"--inject-qemu-ga: QEMU Vierasagentin MSI:ta ei löytynyt määrittämästäsi \"\n\"virtio-win-lähteestä\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\"--inject-virtio-win: virtio-ohjaimia ei löytynyt tälle Windows-versiolle \"\n\"määrittämästäsi virtio-win-lähteestä\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"--mac IP-etuliitepituuskenttä on alueen ulkopuolella\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"--parallel-parametrin on oltava >= 1\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"-i disk: odotetaan levykuvan (tiedostonimen) komentorivillä\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"-i libvirt: odotetaan -ic-parametria Xenille SSH-yhteyden välityksellä\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\n#, fuzzy\n#| msgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"-i libvirt: odotetaan -ic-parametria Xenille SSH-yhteyden välityksellä\"\n\n#: input/input_vcenter_https.ml:101\n#, fuzzy\n#| msgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"-i libvirt: odotetaan -ic-parametria Xenille SSH-yhteyden välityksellä\"\n\n#: input/input_vcenter_https.ml:78\n#, fuzzy\n#| msgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"-i libvirt: odotetaan -ic-parametria Xenille SSH-yhteyden välityksellä\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\n#, fuzzy\n#| msgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"-i disk: odotetaan levykuvan (tiedostonimen) komentorivillä\"\n\n#: input/input_libvirt.ml:59\n#, fuzzy\n#| msgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"-i disk: odotetaan levykuvan (tiedostonimen) komentorivillä\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\n#, fuzzy\n#| msgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"-i disk: odotetaan levykuvan (tiedostonimen) komentorivillä\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\n#, fuzzy\n#| msgid \"-o %s: %s option cannot be used in this output mode\"\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"-o %s: %s-vaihtoehtoa ei voi käyttää tässä lähtötilassa\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"-o %s: %s-vaihtoehtoa ei voi käyttää tässä lähtötilassa\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"-o disk: lähtöhakemistoa ei määritetty, käytä '-os /dir'\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"-o disk: tuntematon lähtövaihtoehto '-oo %s'\"\n\n#: output/output_kubevirt.ml:81\n#, fuzzy\n#| msgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"-o disk: lähtöhakemistoa ei määritetty, käytä '-os /dir'\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\"-o kubevirt: vieraan nimessä saa olla vain pieniä aakkosnumeerisia merkkejä, \"\n\"'-' or '.', ja sen tulee alkaa ja päättyä aakkosnumeeriseen merkkiin. Nimeä \"\n\"se uudelleen suorittamalla virt-v2v \\\"-on name\\\" -vaihtoehdolla.\"\n\n#: output/output_kubevirt.ml:71\n#, fuzzy\n#| msgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"-o disk: tuntematon lähtövaihtoehto '-oo %s'\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\n#, fuzzy\n#| msgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"-o disk: tuntematon lähtövaihtoehto '-oo %s'\"\n\n#: output/output_ovirt_upload.ml:97\n#, fuzzy\n#| msgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"-o vdsm: -oo vdsm-vm-uuid asetettu useammin kuin kerran\"\n\n#: output/output_ovirt_upload.ml:101\n#, fuzzy\n#| msgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"-o vdsm: -oo vdsm-ovf-output asetettu useammin kuin kerran\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\n#, fuzzy\n#| msgid \"\"\n#| \"-o rhv-upload: output password file was not specified, use ‘-op’ to point \"\n#| \"to a file which contains the password used to connect to the oVirt or RHV \"\n#| \"server\"\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\"-o rhv-upload: lähtösalasanatiedostoa ei määritetty, käytä '-op' \"\n\"osoittaaksesi tiedostoon, joka sisältää salasanan, jota käytetään yhteyden \"\n\"muodostamiseen oVirt- tai RHV-palvelimeen\"\n\n#: output/output_ovirt_upload.ml:83\n#, fuzzy\n#| msgid \"-o rhv-upload: output storage was not specified, use ‘-os’\"\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"-o rhv-upload: lähdön tallennustilaa ei ole määritetty, käytä '-os'\"\n\n#: output/output_ovirt_upload.ml:116\n#, fuzzy\n#| msgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"-o disk: tuntematon lähtövaihtoehto '-oo %s'\"\n\n#: output/output_ovirt_upload.ml:68\n#, fuzzy\n#| msgid \"\"\n#| \"-o rhv-upload: use ‘-oc’ to point to the oVirt or RHV server REST API \"\n#| \"URL, which is usually https://servername/ovirt-engine/api\"\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\"-o rhv-upload: käytä '-oc' osoittaaksesi oVirt- tai RHV-palvelimen REST API \"\n\"URL-osoitteeseen, joka on yleensä https://palvelimen_nimi/ovirt-kone/api\"\n\n#: output/output_ovirt.ml:51\n#, fuzzy\n#| msgid \"-o rhv: -os option was not specified\"\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"-o rhv: '-os':n vaihtoehtoa ei ole määritetty\"\n\n#: output/output_qemu.ml:72\n#, fuzzy\n#| msgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"-o disk: lähtöhakemistoa ei määritetty, käytä '-os /dir'\"\n\n#: output/output_qemu.ml:63\n#, fuzzy\n#| msgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"-o disk: tuntematon lähtövaihtoehto '-oo %s'\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"-o vdsm: -oo vdsm-image-uuid:ta ei ole määritelty\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"-o vdsm: -oo vdsm-ovf-output asetettu useammin kuin kerran\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"-o vdsm: -oo vdsm-vm-uuid asetettu useammin kuin kerran\"\n\n#: output/output_vdsm.ml:110\n#, fuzzy\n#| msgid \"-o rhv: -os option was not specified\"\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"-o rhv: '-os':n vaihtoehtoa ei ole määritetty\"\n\n#: output/output_vdsm.ml:97\n#, fuzzy\n#| msgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"-o vdsm: -oo vdsm-image-uuid:ta ei ole määritelty\"\n\n#: output/output_vdsm.ml:90\n#, fuzzy\n#| msgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"-o disk: tuntematon lähtövaihtoehto '-oo %s'\"\n\n#: output/output_vdsm.ml:74\n#, fuzzy\n#| msgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"-o disk: tuntematon lähtövaihtoehto '-oo %s'\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\n#, fuzzy\n#| msgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\"OVF (metatieto) -hakemistoa (%s) ei ole olemassa tai se ei ole hakemisto\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"Lisää asennettavat paketit\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"Lisää ensimmäisen käynnistyksen yhteydessä asennettavat paketit\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"Liitä tiedostoon rivit\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"Liitetään rivi %s:een\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"Muuta tiedoston käyttöoikeuksia\"\n\n#: common/mlcustomize/customize_run.ml:155\n#, fuzzy\n#| msgid \"Changing permissions of %s to %s\"\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"Muuta %s:n käyttöoikeuksia %s:ksi\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"Muuta %s:n käyttöoikeuksia %s:ksi\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"Yhteensopivuusvaihtoehto, ei tee mitään\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"Kopioi levykuvan tiedostot\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\n#, fuzzy\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"Kopioi paikalliset tiedostot tai hakemistot kuvaan\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"Kopioi paikalliset tiedostot tai hakemistot kuvaan\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"Kopioidaan (kuvassa): %s %s:een\"\n\n#: v2v/v2v.ml:518\n#, fuzzy\n#| msgid \"Copying: %s to %s\"\nmsgid \"Copying disk %d/%d\"\nmsgstr \"Kopioidaan: %s %s:een\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"Kopioidaan: %s %s:een\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"Luo hakemisto\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"Luo symbolisia linkkejä\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"Tulosteen metatietojen luominen\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"HAKEMISTO\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"Poista tiedosto tai hakemisto\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"Poistetaan: %s\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"Näytä lyhyt ohje\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"Näytä versio ja poistu\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"Älä nimeä tiedostoja uudelleen oikeilla SELinux-nimiöillä\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"Älä tulosta etenemisviestejä\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"Älä poista tunnuslauseiden kaikua käytöstä\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"Muokkaa tiedostoa käyttämällä Perl-lauseketta\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"Muokkaus: %s\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"Ota libguestfs-viankorjausviestit käyttöön\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"Ota libguestfs-kutsujen jäljitys käyttöön\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"Vie tallennustilaverkkotunnus\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"TIEDOSTO\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\n#, fuzzy\n#| msgid \"FILE\"\nmsgid \"FILE:DEST\"\nmsgstr \"TIEDOSTO\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\n#, fuzzy\n#| msgid \"FILE\"\nmsgid \"FILE:EXPR\"\nmsgstr \"TIEDOSTO\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\n#, fuzzy\n#| msgid \"FILE\"\nmsgid \"FILE:LINE\"\nmsgstr \"TIEDOSTO\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\n#, fuzzy\n#| msgid \"FILE\"\nmsgid \"FILENAME\"\nmsgstr \"TIEDOSTO\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"Viimeistellään\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"Kuinka valita juuritiedostojärjestelmä\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\"Jos ilmoitat vioista, suorita %s viankorjauksen ollessa käytössä ja \"\n\"sisällytä koko tulos:\\n\"\n\"\\n\"\n\" %s -v -x [...]\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"Sisällytä julkinen avain vieraaseen\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"Sisällytä Balloon-palvelin Windows-vieraaseen\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"Sisällytä QEMU-vierasagentti Windows-vieraaseen\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"Sisällytä virtio-win-ajurit Windows-vieraaseen\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"Syöttömuoto\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"Syöttökuljetus\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"firstboot-komennon asentaminen: %s\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"Firstboot-pakettien asentaminen: %s\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"Firstboot-skriptin asentaminen: %s\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"Asennetaan paketteja: %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"Libvirt:n URI\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"Linkittäminen: %s -> %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"Tee tulosteesta koneella luettava\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"Luodaan hakemistoa: %s\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"Yhdistä NIC verkkoon tai siltaan tai määritä staattinen IP\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"Siirrä levykuvassa olevia tiedostoja\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"Siirretään: %s -> %s\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"Tässä tilassa ei voi käyttää syöttövaihtoehtoja.\\n\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"Tässä tilassa ei voi käyttää lähtövaihtoehtoja.\\n\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\"OVF (metatieto) -hakemistoa (%s) ei ole olemassa tai se ei ole hakemisto\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\"Yksi tiedostoista rhsrvany.exe tai pvvxsvc.exe puuttuu %s:sta. Yksi niistä \"\n\"tarvitaan Windowsin firstboot-komentosarjojen asentamiseen. Voit hankkia \"\n\"sellaisen rakentamalla rhsrvany (https://github.com/rwmjones/rhsrvany)\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"Lue mukautuskomennot tiedostosta\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\n#, fuzzy\n#| msgid \"Delete a file or directory\"\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"Poista tiedosto tai hakemisto\"\n\n#: common/mlcustomize/customize_run.ml:298\n#, fuzzy\nmsgid \"Recursively truncating: %s\"\nmsgstr \"%s: varoitus: %s\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"Nimeä vieras uudelleen muunnettaessa\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"Suorita komento ensimmäisen vieraskäynnistyksen yhteydessä\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"Suorita komento levykuvassa\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"Suorita skripti ensimmäisen vieraskäynnistyksen yhteydessä\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"Suorita skripti levykuvassa\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\n#, fuzzy\n#| msgid \"Running: %s\"\nmsgid \"Running touch: %s\"\nmsgstr \"Suoritetaan: %s\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"Suoritetaan: %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"KOMENTOSARJA\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"SELinuxin nimiön uudelleenmäärittäminen\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"SSH-avainta ei voitu sisällyttää tämän tyyppiselle vieraalle\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"SSH-avaimen sisällyttäminen: %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\n#, fuzzy\n#| msgid \"Running: %s\"\nmsgid \"Scrubbing: %s\"\nmsgstr \"Suoritetaan: %s\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\n#, fuzzy\n#| msgid \"Set output mode (default: libvirt)\"\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"Aseta lähtötila (oletus: libvirt)\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\n#, fuzzy\n#| msgid \"Set the output filename\"\nmsgid \"Set option for output mode\"\nmsgstr \"Aseta tulostetiedoston nimi\"\n\n#: v2v/v2v.ml:234\n#, fuzzy\n#| msgid \"Set output storage location\"\nmsgid \"Set output allocation mode\"\nmsgstr \"Aseta tulosteiden tallennustilan paikka\"\n\n#: v2v/v2v.ml:238\n#, fuzzy\n#| msgid \"Input format\"\nmsgid \"Set output format\"\nmsgstr \"Syöttömuoto\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"Aseta lähtötila (oletus: libvirt)\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"Aseta tulosteiden tallennustilan paikka\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"Aseta krypton salasana\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"Aseta ohjelman nimi\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"Aseta rootin salasana\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"Aseta oletusaikavyöhyke\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"Aseta isäntänimi\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"Aseta tulostetiedoston nimi\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"Aseta käyttäjän salasana\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"Satunnaisen siemenen asettaminen\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"Salasanojen asettaminen\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"Asetetaan %s:n satunnainen salasana %s:ksi\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"Isäntänimen asettaminen: %s\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"Konetunnuksen asettaminen %s:ssa\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"Aikavyöhykkeen asettaminen: %s\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"Asetetaan määränpäätä: %s\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"Asetetaan lähdettä: %s\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"Vieraan lähdetiedot (--print-source option):\\n\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"Määritä LUKS-avain\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"Vaihtoehto --in-place on korvattu \\\"virt-v2v-in-place\\\" -ohjelmalla\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\"Virtuaalikoneella ei ole tukea IDE:lle. Ilmoita virt-v2v:n viasta -- katso \"\n\"virt-v2v(1) osio \\\"BUGS\\\".\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\"Virtuaalikoneella ei ole tukea levykkeille. Ilmoita virt-v2v:n viasta -- \"\n\"katso virt-v2v(1) osio \\\"BUGS\\\".\"\n\n#: lib/create_ovf.ml:785\n#, fuzzy\n#| msgid \"\"\n#| \"This guest required a password for connection to its display, but this is \"\n#| \"not supported by RHV.  Therefore the converted guest’s display will not \"\n#| \"require a separate password to connect.\"\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\"Tämä vieras vaati salasanan muodostaakseen yhteyden näyttöönsä, mutta RHV ei \"\n\"tue tätä. Siksi muunnetun vieraan näyttö ei vaadi erillistä salasanaa \"\n\"yhteyden muodostamiseen.\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\"Tämä kuljetus ei tue vieraita tilannekuvien kanssa. Joko tiivistä tämän \"\n\"vieraan tilannevedokset ja yritä muuntamista uudelleen tai käytä jotakin \"\n\"vaihtoehtoisista muunnosmenetelmistä, jotka on kuvattu virt-v2v-input-\"\n\"vmware(1) -osiossa \\\"HUOMAUTUKSET\\\".\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"Katkaise tiedosto nollakokoon\"\n\n#: common/mlcustomize/customize_run.ml:294\n#, fuzzy\nmsgid \"Truncating: %s\"\nmsgstr \"%s: varoitus: %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"Poista paketteja\"\n\n#: common/mlcustomize/customize_run.ml:311\n#, fuzzy\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"Poista paketteja\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\n#, fuzzy\nmsgid \"Update packages\"\nmsgstr \"Poista paketteja\"\n\n#: common/mlcustomize/customize_run.ml:316\n#, fuzzy\nmsgid \"Updating packages\"\nmsgstr \"Poista paketteja\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\n#, fuzzy\n#| msgid \"Copying: %s to %s\"\nmsgid \"Uploading: %s to %s\"\nmsgstr \"Kopioidaan: %s %s:een\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\n#, fuzzy\nmsgid \"Writing: %s\"\nmsgstr \"%s: varoitus: %s\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\n#, fuzzy\nmsgid \"append_line: %s is not a file\"\nmsgstr \"Liitä tiedostoon rivit\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\n#, fuzzy\n#| msgid \"\"\n#| \"could not finish firstboot installation by running ‘%s’ because the \"\n#| \"command failed: %s\"\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\"firstboot-asennusta ei voitu suorittaa loppuun suorittamalla '%s', koska \"\n\"komento epäonnistui: %s\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\n#, fuzzy\n#| msgid \"--mac ip prefix length field is out of range\"\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"--mac IP-etuliitepituuskenttä on alueen ulkopuolella\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"komentoa '%s' ei voi käyttää komentotiedostoissa, katso man-sivu\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"komentoa '%s'ei kelpaa, katso man-sivua\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\"firstboot-asennusta ei voitu suorittaa loppuun suorittamalla '%s', koska \"\n\"komento epäonnistui: %s\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"ladataan %s\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\n#, fuzzy\n#| msgid \"Deleting: %s\"\nmsgid \"exception: %s\"\nmsgstr \"Poistetaan: %s\"\n\n#: common/mltools/tools_utils.ml:455\n#, fuzzy\nmsgid \"exited with error %d\"\nmsgstr \"ulkoinen komento '%s' poistui virheellä %d\"\n\n#: lib/utils.ml:34\n#, fuzzy\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"ulkoinen komento '%s' poistui virheellä %d\"\n\n#: input/input_disk.ml:147\n#, fuzzy\n#| msgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"-i disk: odotetaan levykuvan (tiedostonimen) komentorivillä\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"epäonnistuminen: %s\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\n#, fuzzy\nmsgid \"generated by %s %s\"\nmsgstr \"aliprosessi, joka on signaloitu tai pysäytetty signaalilla %d\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\n#, fuzzy\n#| msgid \"SSH key could not be injected for this type of guest\"\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"SSH-avainta ei voitu sisällyttää tämän tyyppiselle vieraalle\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\n#, fuzzy\n#| msgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\"OVF (metatieto) -hakemistoa (%s) ei ole olemassa tai se ei ole hakemisto\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\n#, fuzzy\n#| msgid \"command '%s' not valid, see the man page\"\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"komentoa '%s'ei kelpaa, katso man-sivua\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\n#, fuzzy\n#| msgid \"Make output machine readable\"\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"Tee tulosteesta koneella luettava\"\n\n#: common/mltools/tools_utils.ml:376\n#, fuzzy\n#| msgid \"Make output machine readable\"\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"Tee tulosteesta koneella luettava\"\n\n#: common/mltools/tools_utils.ml:368\n#, fuzzy\n#| msgid \"Make output machine readable\"\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"Tee tulosteesta koneella luettava\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\n#, fuzzy\nmsgid \"killed by signal %d\"\nmsgstr \"aliprosessi, joka on signaloitu tai pysäytetty signaalilla %d\"\n\n#: common/mltools/tools_utils.ml:237\n#, fuzzy\n#| msgid \"%s: error: %s\"\nmsgid \"libguestfs error: %s\"\nmsgstr \"%s: virhe: %s\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\n#, fuzzy\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"%s (ohitettu)\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\"password-crypto: tuntematon algoritmi %s, käytä \\\"md5\\\", \\\"sha256\\\", \"\n\"\\\"sha512\\\" tai \\\"yescrypt\\\"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\n#, fuzzy\n#| msgid \"SSH key could not be injected for this type of guest\"\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"SSH-avainta ei voitu sisällyttää tämän tyyppiselle vieraalle\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\n#, fuzzy\n#| msgid \"SSH key could not be injected for this type of guest\"\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"SSH-avainta ei voitu sisällyttää tämän tyyppiselle vieraalle\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\n#, fuzzy\nmsgid \"signalled by signal %d\"\nmsgstr \"aliprosessi, joka on signaloitu tai pysäytetty signaalilla %d\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\n#, fuzzy\n#| msgid \"Inject a public key into the guest\"\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"Sisällytä julkinen avain vieraaseen\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\n#, fuzzy\n#| msgid \"%s does not exist in the guest\"\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"%s:ta ei ole olemassa vieraassa\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\n#, fuzzy\nmsgid \"stopped by signal %d\"\nmsgstr \"aliprosessi, joka on signaloitu tai pysäytetty signaalilla %d\"\n\n#: output/changeuid.ml:58\n#, fuzzy\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"ulkoinen komento '%s' poistui virheellä %d\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"aliprosessi, joka on signaloitu tai pysäytetty signaalilla %d\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"onnistui\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\"komento on saattanut epäonnistua, koska verkko on poistettu käytöstä. Yritä \"\n\"joko poistaa ”--no-network” tai lisätä ”--network” komentoriville.\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\n#, fuzzy\n#| msgid \"SSH key could not be injected for this type of guest\"\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"SSH-avainta ei voitu sisällyttää tämän tyyppiselle vieraalle\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"tuntematon --root vaihtoehto: %s\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"tuntematon -i vaihtoehto: %s\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"tuntematon -o vaihtoehto: %s\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"tuntematon -oa vaihtoehto: %s\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\n#, fuzzy\n#| msgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"-o disk: tuntematon lähtövaihtoehto '-oo %s'\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"Ylimääräinen parametri komentorivillä: ‘%s’.\\n\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\"ei löytynyt avainta salatun LUKS %s avaamiseen.\\n\"\n\"\\n\"\n\"Yritä käyttää '--key' komentorivillä.\\n\"\n\"\\n\"\n\"Alkuperäinen virhe: %s (%d)\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\"%s: tältä levyltä ei löytynyt käyttöjärjestelmää\\n\"\n\"\\n\"\n\"Jos käytät guestfish ‘-i’ -vaihtoehtoa, poista tämä vaihtoehto ja\\n\"\n\"sen sijaan käytä komentoja 'run' ja sitten 'list-filesystems'.\\n\"\n\"Tämän jälkeen voit liittää haluamasi tiedostojärjestelmät käsin\\n\"\n\"'Mount' tai 'mount-ro' -komento.\\n\"\n\"\\n\"\n\"Jos käytät guestmount ‘-i’, poista tämä vaihtoehto ja valitse\\n\"\n\"tiedostojärjestelmät, jotka haluat nähdä lisäämällä manuaalisesti\\n\"\n\"'-m' -vaihtoehdot. Käytä virt-filesystems-sovellusta nähdäksesi\\n\"\n\"käytettävissä olevat tiedostojärjestelmät.\\n\"\n\"\\n\"\n\"Jos käytät muita virt-työkaluja, tämä levykuva ei toimi näiden\\n\"\n\"työkalujen avulla. Käytä guestfish-vastaavia komentoja\\n\"\n\"(katso virt-työkalun käyttöoppaan sivu).\\n\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\"%s: monikäynnistyskäyttöjärjestelmiä ei tueta\\n\"\n\"\\n\"\n\"Jos käytät guestfish ‘-i’ -vaihtoehtoa, poista tämä vaihtoehto ja\\n\"\n\"sen sijaan käytä komentoja 'run' ja sitten 'list-filesystems'.\\n\"\n\"Tämän jälkeen voit liittää haluamasi tiedostojärjestelmät käsin\\n\"\n\"'Mount' tai 'mount-ro' -komento.\\n\"\n\"\\n\"\n\"Jos käytät guestmount ‘-i’, poista tämä vaihtoehto ja valitse\\n\"\n\"tiedostojärjestelmät, jotka haluat nähdä lisäämällä manuaalisesti\\n\"\n\"'-m' -vaihtoehdot. Käytä virt-filesystems-sovellusta nähdäksesi\\n\"\n\"käytettävissä olevat tiedostojärjestelmät.\\n\"\n\"\\n\"\n\"Jos käytät muita virt-työkaluja, monikäynnistyskäyttöjärjestelmät\\n\"\n\"eivät toimi näiden työkalujen avulla. Käytä guestfish-vastaavia komentoja\\n\"\n\"(katso virt-työkalun käyttöoppaan sivu).\\n\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n\n#~ msgid \"Attach to a subscription-manager pool\"\n#~ msgstr \"Liitä tilaus-manager-varantoon\"\n\n#~ msgid \"Attaching to compatible subscriptions\"\n#~ msgstr \"Liittäminen yhteensopiviin tilauksiin\"\n\n#~ msgid \"Attaching to the pool %s\"\n#~ msgstr \"Liittäminen varantoon %s\"\n\n#~ msgid \"Credentials for subscription-manager\"\n#~ msgstr \"Tilausvastaavan tunnistetiedot\"\n\n#~ msgid \"Ignored for backwards compatibility\"\n#~ msgstr \"Jätetty huomioimatta taaksepäin yhteensopivuuden vuoksi\"\n\n#~ msgid \"Registering with subscription-manager\"\n#~ msgstr \"Rekisteröityminen tilausten hallinnan kanssa\"\n\n#~ msgid \"Remove all the subscriptions\"\n#~ msgstr \"Poista kaikki tilaukset\"\n\n#~ msgid \"Removing all the subscriptions\"\n#~ msgstr \"Poistetaan kaikki tilaukset\"\n\n#, fuzzy\n#~ msgid \"Unregistering with subscription-manager\"\n#~ msgstr \"Liitä tilaus-manager-varantoon\"\n\n#~ msgid \"external command ‘%s’ killed by signal %d\"\n#~ msgstr \"signaalin %d tappamana ulkoinen komento '%s'\"\n\n#~ msgid \"external command ‘%s’ stopped by signal %d\"\n#~ msgstr \"signaalin %d pyrähtämänä ulkoinen komento '%s'\"\n"
  },
  {
    "path": "po/fr.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the PACKAGE package.\n#\n# Translators:\n# Jérôme Fenal <jfenal@gmail.com>, 2013-2014\n# Αικατερίνη Χ. Καταπόδη <spanish.katerina@gmail.com>, 2013\n# Kévin Raymond <shaiton@fedoraproject.org>, 2012\n# Αικατερίνη Χ. Καταπόδη <spanish.katerina@gmail.com>, 2013\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2023-03-21 09:20+0000\\n\"\n\"Last-Translator: grimst <grimaitres@gmail.com>\\n\"\n\"Language-Team: French <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-master/fr/>\\n\"\n\"Language: fr\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n > 1;\\n\"\n\"X-Generator: Weblate 4.15.2\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"%s: command exited with an error\"\nmsgstr \"%s s'est terminé avec l'état d'erreur %d\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\n#, fuzzy\n#| msgid \"credential index out of range\"\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"index de données d'identification hors limite\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"CHEMIN\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\n#, fuzzy\n#| msgid \"credential index out of range\"\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"index de données d'identification hors limite\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\n#, fuzzy\n#| msgid \"could not parse boot size\"\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"n'a pas pu analyser la taille de démarrage\"\n\n#: input/input_ova.ml:98\n#, fuzzy\n#| msgid \"could not parse boot size\"\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"n'a pas pu analyser la taille de démarrage\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"exited with error %d\"\nmsgstr \"%s s'est terminé avec l'état d'erreur %d\"\n\n#: lib/utils.ml:34\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"%s s'est terminé avec l'état d'erreur %d\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\n#, fuzzy\n#| msgid \"%s killed by signal %d (%s)\"\nmsgid \"generated by %s %s\"\nmsgstr \"%s a été tué par le signal %d (%s) \"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\n#, fuzzy\n#| msgid \"%s killed by signal %d (%s)\"\nmsgid \"killed by signal %d\"\nmsgstr \"%s a été tué par le signal %d (%s) \"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\n#, fuzzy\n#| msgid \"%s killed by signal %d (%s)\"\nmsgid \"signalled by signal %d\"\nmsgstr \"%s a été tué par le signal %d (%s) \"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\n#, fuzzy\n#| msgid \"%s stopped by signal %d (%s)\"\nmsgid \"stopped by signal %d\"\nmsgstr \"%s a été arrêté par le signal %d (%s)\"\n\n#: output/changeuid.ml:58\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"%s s'est terminé avec l'état d'erreur %d\"\n\n#: output/changeuid.ml:60\n#, fuzzy\n#| msgid \"%s stopped by signal %d (%s)\"\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"%s a été arrêté par le signal %d (%s)\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s : %s : nombre entier hors plage\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\"%s : certains systèmes de fichiers n'ont pas pu être montés (ignorés)\\n\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"Système d'exploitation : %s\\n\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"%s monté sur %s\\n\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"Saisir une phrase de passe (« %s ») : \"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"Impossible de lire la clé de l'utilisateur\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"%s : Vouliez-vous monter l'un de ces systèmes de fichiers ?\\n\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"%s s'est terminé avec succès\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"%s s'est terminé avec l'état d'erreur %d\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"%s a été tué par le signal %d (%s) \"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"%s a été arrêté par le signal %d (%s)\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"%s s'est terminé pour une raison inconnue (état %d)\"\n"
  },
  {
    "path": "po/gu.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the PACKAGE package.\n#\n# Translators:\n# rjones <rjones@redhat.com>, 2011\n# sweta <swkothar@redhat.com>, 2011\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2015-02-21 10:49+0000\\n\"\n\"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\\n\"\n\"Language-Team: Gujarati (http://www.transifex.com/projects/p/libguestfs/\"\n\"language/gu/)\\n\"\n\"Language: gu\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\n#, fuzzy\n#| msgid \"could not parse boot size\"\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"બુટ માપનું પદચ્છેદન કરી શક્યા નહિં\"\n\n#: input/input_ova.ml:98\n#, fuzzy\n#| msgid \"could not parse boot size\"\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"બુટ માપનું પદચ્છેદન કરી શક્યા નહિં\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: સીમાની બહાર ઇંટિજર\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"%s: અમુક ફાઇલસિસ્ટમોને માઉન્ટ કરી શક્યા નહિં (અવગણેલ)\\n\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"ઓપરેટીંગ સિસ્ટમ: %s\\n\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"કી અથવા પાસફ્રેઝને દાખલ કરો (\\\"%s\\\"): \"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, fuzzy, c-format\n#| msgid \"could not parse boot size\"\nmsgid \"could not read key from user\"\nmsgstr \"બુટ માપનું પદચ્છેદન કરી શક્યા નહિં\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/hi.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the PACKAGE package.\n#\n# Translators:\n# Rajesh Ranjan <rranjan@redhat.com>, 2011\n# rjones <rjones@redhat.com>, 2011\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2015-02-21 10:49+0000\\n\"\n\"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\\n\"\n\"Language-Team: Hindi (http://www.transifex.com/projects/p/libguestfs/\"\n\"language/hi/)\\n\"\n\"Language: hi\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: परिसर के बाहर पूर्णांक\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/id.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: id\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/it.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: it\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/ja.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the PACKAGE package.\n#\n# Translators:\n# Hajime Taira <htaira@redhat.com>, 2011\n# Tomoyuki KATO <tomo@dream.daynight.jp>, 2011-2013\n# Richard Jones <rjones@redhat.com>, 2017. #zanata\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2017-02-24 07:33+0000\\n\"\n\"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\\n\"\n\"Language-Team: Japanese (http://www.transifex.com/projects/p/libguestfs/\"\n\"language/ja/)\\n\"\n\"Language: ja\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"%s: command exited with an error\"\nmsgstr \"%s がエラーステータス %d で終了しました\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\n#, fuzzy\n#| msgid \"credential index out of range\"\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"クレディンシャルのインデックスが範囲外です\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\n#, fuzzy\n#| msgid \"credential index out of range\"\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"クレディンシャルのインデックスが範囲外です\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\n#, fuzzy\n#| msgid \"could not parse boot size\"\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"ブートサイズを解析できません\"\n\n#: input/input_ova.ml:98\n#, fuzzy\n#| msgid \"could not parse boot size\"\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"ブートサイズを解析できません\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"exited with error %d\"\nmsgstr \"%s がエラーステータス %d で終了しました\"\n\n#: lib/utils.ml:34\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"%s がエラーステータス %d で終了しました\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\n#, fuzzy\n#| msgid \"%s killed by signal %d (%s)\"\nmsgid \"generated by %s %s\"\nmsgstr \"%s がシグナル %d (%s) によりキルされました\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\n#, fuzzy\n#| msgid \"%s killed by signal %d (%s)\"\nmsgid \"killed by signal %d\"\nmsgstr \"%s がシグナル %d (%s) によりキルされました\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\n#, fuzzy\n#| msgid \"%s killed by signal %d (%s)\"\nmsgid \"signalled by signal %d\"\nmsgstr \"%s がシグナル %d (%s) によりキルされました\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\n#, fuzzy\n#| msgid \"%s stopped by signal %d (%s)\"\nmsgid \"stopped by signal %d\"\nmsgstr \"%s がシグナル %d (%s) により停止しました\"\n\n#: output/changeuid.ml:58\n#, fuzzy\n#| msgid \"%s exited with error status %d\"\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"%s がエラーステータス %d で終了しました\"\n\n#: output/changeuid.ml:60\n#, fuzzy\n#| msgid \"%s stopped by signal %d (%s)\"\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"%s がシグナル %d (%s) により停止しました\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: 範囲外の整数\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\"%s: いくつかのファイルシステムがマウントできませんでした（無視されました）\\n\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"オペレーティングシステム: %s\\n\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"%s を %s にマウントしました\\n\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"キーかパスフレーズを入力してください。(\\\"%s\\\"): \"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, fuzzy, c-format\n#| msgid \"could not parse boot size\"\nmsgid \"could not read key from user\"\nmsgstr \"ブートサイズを解析できません\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\"%s: これらのファイルシステムのどれかをマウントしたいということですか?\\n\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"%s: %s: URI のスキーマが NULL または空です\\n\"\n\n#: common/options/uri.c:138\n#, fuzzy, c-format\n#| msgid \"%s: %s: cannot both a server name and a socket query parameter\\n\"\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\"%s: %s: サーバー名とソケットクエリーパラメーターをどちらも指定することはでき\"\n\"ません \\n\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"%s が正常に終了しました\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"%s がエラーステータス %d で終了しました\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"%s がシグナル %d (%s) によりキルされました\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"%s がシグナル %d (%s) により停止しました\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"%s が未知の理由で終了しました (ステータス %d)\"\n"
  },
  {
    "path": "po/ka.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.1.1\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2026-03-31 11:58+0000\\n\"\n\"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-\"\n\"memory@weblate.org>\\n\"\n\"Language-Team: Georgian <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-master/ka/>\\n\"\n\"Language: ka\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Generator: Weblate 5.16.2\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"%s\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"%s: %s\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"%s: %s: %s\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"%s: ბრძანება დასრულდა შეცდომით\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"%s: შეცდომა: %s\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"%s: გაფრთხილება: %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"ხაზის %s-ის ბოლოსი მიწერა\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"[%s]-ის კოპირება [%s]-ში\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"საქ\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"ვერსიის ჩვენება და გამოსვლა\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"ფაილი\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"ფილი:შემცველობა\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"ფაილი:სამიზნე\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"ფაილი:გამოს\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"ფაილი:ხაზი\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"ფაილის სახელი\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"ჰოსტის სახელი\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"პირველი ჩატვირთვის პროგრამის დაყენება: %s\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"პირველი ჩატვირთვის პაკეტების დაყენება: %s\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"პაკეტების დაყენება: %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"Libvirt-ის URI\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"ბმულის შექმნა: %s -> %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"გადატანა: %s -> %s\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"ბილიკი\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"სკრიპტი\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"პაკეტების წაშლა\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"პაკეტების წაშლა: %s\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"tar ფაილის გაშლა: %s %s-ში\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"პაკეტების განახლება\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"მიმდინარეობს პაკეტების განახლება\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"ატვირთვა: %s %s-ში\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"ovf-ის დამუშავება შეუძლებელია (ovf:Name): სახელი OVF დოკუმენტიდან\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"%s-ის გადმოწერა\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"დასრულდა შეცდომით %d\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"დასრულდა არანულოვანი შეცდომის კოდით %d\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"შეცდომა: %s\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"შექმნილია პროგრამით %s %s\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"მოკვდა სიგნალით %d\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"დაშორებული vmx-ის '%s' URI-ის სახით დამუშავება შეუძლებელია\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"სელექტორი '%s': არასწორი TYPE\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"სელექტორი '%s': აკლია FILENAME ან მეტისმეტად ბევრი ველი\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"სელექტორი '%s': აკლია ID\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"სელექტორი '%s': აკლია KEY_STRING ან მეტისმეტად ბევრი ველი\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"სელექტორი '%s': აკლია TYPE\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"სელექტორი '%s': მეტისმეტად ბევრი ველი\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"მიიღო სიგნალი %d\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"გაჩერდა სიგნალით %d\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"ქვეპროცესი დასრულდა არანულოვანი შეცდომის კოდით %d\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"ქვეპროცესმა მიიღო სიგნალი %d\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"წარმატება\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: მთელი მნიშვნელობა დიაპაზონს გარეთაა\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"%s: ხაზი %d: შეცდომა კონფიგურაციის ფაილის დამუშავებისას: %s\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"სტრიქონის ზომის გადავსება\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\"'clevis_luks_unlock', რომელიც საჭიროა %s-ის გაშიფვრისთვის, libguestfs -ის ამ \"\n\"ვერსიაში ხელმიუწვდომელია\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"%s: ზოგიერთი ფაილური სისტემის მიმაგრება შეუძლებელია (იგნორირება)\\n\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"ოპერაციული სისტემა: %s\\n\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"%s მიმაგრებულია %s-ზე\\n\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"შეიყვანეთ გასაღები ან საკვანძო ფრაზა (\\\"%s\\\"): \"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"size_t -ის გადავსება\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"მომხმარებლიდან გასაღების წაკითხვის შეცდომა\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"%s: ‘%s’ მიმაგრების შეცდომა.\\n\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"%s: გულისხმობდით ამ ფაილური სისტემებიდან ერთ ერთის მიმაგრებას?\\n\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"%s-ის ქვეტომის აღმოჩენის შეცდომა: %s (%d)\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"%s: --add: URI ‘%s’-ის დამუშავების შეცდომა\\n\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"%s: %s: URI-ის სქემა NULL ან ცარიელია\\n\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\"%s: %s: ორივეს, სერვერის სახელის და სოკეტის მოთხოვნის პარამეტრის ქონა \"\n\"შეუძლებელია\\n\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"%s წარმატებით დასრულდა\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"%s დასრულდა შეცდომის კოდით %d\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"%s მოკვდა სიგნალით %d (%s)\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"%s გაჩერდა სიგნალით %d (%s)\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"%s გავიდა უცნობი მიზეზით (სტატუსი %d)\"\n"
  },
  {
    "path": "po/kn.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the PACKAGE package.\n#\n# Translators:\n# rjones <rjones@redhat.com>, 2011\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2015-02-21 10:50+0000\\n\"\n\"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\\n\"\n\"Language-Team: Kannada (http://www.transifex.com/projects/p/libguestfs/\"\n\"language/kn/)\\n\"\n\"Language: kn\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: ಪೂರ್ಣಾಂಕವು ವ್ಯಾಪ್ತಿಯ ಹೊರಗಿದೆ\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/ml.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the PACKAGE package.\n#\n# Translators:\n# rjones <rjones@redhat.com>, 2011\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2015-02-21 10:50+0000\\n\"\n\"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\\n\"\n\"Language-Team: Malayalam (http://www.transifex.com/projects/p/libguestfs/\"\n\"language/ml/)\\n\"\n\"Language: ml\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: ഇന്റിജര്‍ പരിധികഴിഞ്ഞിരിക്കുന്നു\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/mr.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the PACKAGE package.\n#\n# Translators:\n# rjones <rjones@redhat.com>, 2011\n# sandeeps <sshedmak@redhat.com>, 2011\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2015-02-21 10:51+0000\\n\"\n\"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\\n\"\n\"Language-Team: Marathi (http://www.transifex.com/projects/p/libguestfs/\"\n\"language/mr/)\\n\"\n\"Language: mr\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\n#, fuzzy\n#| msgid \"could not parse boot size\"\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"बूट आकार वाचणे अशक्य\"\n\n#: input/input_ova.ml:98\n#, fuzzy\n#| msgid \"could not parse boot size\"\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"बूट आकार वाचणे अशक्य\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: इंटीजर व्याप्तीच्या बाहेर आहे\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"%s: काहिक फाइलप्रणाली माऊंट करणे अशक्य (दुर्लक्ष केले)\\n\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"कार्यप्रणाली: %s\\n\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"%s ला %s वर माऊंट केले\\n\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"कि किंवा पासफ्रेज द्या (\\\"%s\\\"): \"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, fuzzy, c-format\n#| msgid \"could not parse boot size\"\nmsgid \"could not read key from user\"\nmsgstr \"बूट आकार वाचणे अशक्य\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/nl.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the PACKAGE package.\n#\n# Translators:\n# Geert Warrink <geert.warrink@onsnet.nu>, 2011-2012\n# Richard E. van der Luit <nippur@fedoraproject.org>, 2011, 2012\n# rjones <rjones@redhat.com>, 2011\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2015-02-21 10:51+0000\\n\"\n\"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\\n\"\n\"Language-Team: Dutch (http://www.transifex.com/projects/p/libguestfs/\"\n\"language/nl/)\\n\"\n\"Language: nl\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\n#, fuzzy\n#| msgid \"credential index out of range\"\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"referentie index is buiten het bereik\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\n#, fuzzy\n#| msgid \"credential index out of range\"\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"referentie index is buiten het bereik\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\n#, fuzzy\n#| msgid \"could not parse boot size\"\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"kon boot grootte niet ontleden\"\n\n#: input/input_ova.ml:98\n#, fuzzy\n#| msgid \"could not parse boot size\"\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"kon boot grootte niet ontleden\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: geheel getal ligt buiten de reeks\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\"%s: sommige bestandssystemen konden niet aangekoppeld worden (genegeerd)\\n\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"Besturingssysteem: %s\\n\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"%s aangekoppeld op %s\\n\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"Vul sleutel of wachtzin in (\\\"%s\\\"): \"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, fuzzy, c-format\n#| msgid \"could not parse boot size\"\nmsgid \"could not read key from user\"\nmsgstr \"kon boot grootte niet ontleden\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\"%s: Bedoelde je het om een van deze bestandssystemen aan te koppelen?\\n\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/or.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the PACKAGE package.\n#\n# Translators:\n# rjones <rjones@redhat.com>, 2011\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2015-02-21 10:51+0000\\n\"\n\"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\\n\"\n\"Language-Team: Oriya (http://www.transifex.com/projects/p/libguestfs/\"\n\"language/or/)\\n\"\n\"Language: or\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: ଗଣନସଂଖ୍ୟାଟି ପରିସର ବାହାରେ\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/pa.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the PACKAGE package.\n#\n# Translators:\n# Jaswinder Singh <phulewala.j@gmail.com>, 2011\n# rjones <rjones@redhat.com>, 2011\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2015-02-21 10:52+0000\\n\"\n\"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\\n\"\n\"Language-Team: Panjabi (Punjabi) (http://www.transifex.com/projects/p/\"\n\"libguestfs/language/pa/)\\n\"\n\"Language: pa\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\n#, fuzzy\n#| msgid \"could not parse boot size\"\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"ਬੂਟ ਅਕਾਰ ਨੂੰ ਪਾਰਸ ਨਹੀਂ ਕਰ ਸਕਦਾ\"\n\n#: input/input_ova.ml:98\n#, fuzzy\n#| msgid \"could not parse boot size\"\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"ਬੂਟ ਅਕਾਰ ਨੂੰ ਪਾਰਸ ਨਹੀਂ ਕਰ ਸਕਦਾ\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: ਪੂਰਨਅੰਕ ਰੇਂਜ ਤੋਂ ਬਾਹਰ ਹੈ\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"%s: ਕੁਝ ਫਾਇਲ ਸਿਸਟਮ ਮਾਊਂਟ ਨਹੀਂ ਕੀਤੇ ਜਾ ਸਕਦੇ (ਰੱਦ ਕੀਤੇ ਗਏ ਹਨ)\\n\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ: %s\\n\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"%s ਨੂੰ %s ਉੱਪਰ ਮਾਊਂਟ ਕੀਤਾ ਗਿਆ ਹੈ\\n\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"ਕੁੰਜੀ ਜਾਂ ਗੁਪਤਕੋਡ ਦਿਓ (\\\"%s\\\"): \"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, fuzzy, c-format\n#| msgid \"could not parse boot size\"\nmsgid \"could not read key from user\"\nmsgstr \"ਬੂਟ ਅਕਾਰ ਨੂੰ ਪਾਰਸ ਨਹੀਂ ਕਰ ਸਕਦਾ\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/pl.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the PACKAGE package.\n#\n# Translators:\n# Mateusz Marzantowicz <mmarzantowicz@osdf.com.pl>, 2013\n# Mateusz Marzantowicz <mmarzantowicz@osdf.com.pl>, 2012\n# Piotr Drąg <piotrdrag@gmail.com>, 2011-2013\n# rjones <rjones@redhat.com>, 2011\n# Piotr Drąg <piotrdrag@gmail.com>, 2016. #zanata\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2024-01-15 13:36+0000\\n\"\n\"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-\"\n\"memory@weblate.org>\\n\"\n\"Language-Team: Polish <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-master/pl/>\\n\"\n\"Language: pl\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 \"\n\"|| n%100>=20) ? 1 : 2;\\n\"\n\"X-Generator: Weblate 5.3.1\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"%s\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\"%s\\n\"\n\"Opcje:\\n\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"%s (zignorowane)\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"%s: %s\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"%s: %s: %s\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"%s: błąd: %s\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"%s: ostrzeżenie: %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\n#, fuzzy\n#| msgid \"downloading %s\"\nmsgid \"Appending line to %s\"\nmsgstr \"pobieranie %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\n#, fuzzy\n#| msgid \"Copy local files or directories into image\"\nmsgid \"Copy files in disk image\"\nmsgstr \"Kopiuje lokalne pliki lub katalogi do obrazu\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\n#, fuzzy\n#| msgid \"Copy local files or directories into image\"\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"Kopiuje lokalne pliki lub katalogi do obrazu\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"Kopiuje lokalne pliki lub katalogi do obrazu\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\n#, fuzzy\n#| msgid \"downloading %s\"\nmsgid \"Copying: %s to %s\"\nmsgstr \"pobieranie %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"Tworzy katalog\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"Tworzy dowiązania symboliczne\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"KATALOG\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\n#, fuzzy\n#| msgid \"Create a directory\"\nmsgid \"Delete a file or directory\"\nmsgstr \"Tworzy katalog\"\n\n#: common/mlcustomize/customize_run.ml:176\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Deleting: %s\"\nmsgstr \"%s: ostrzeżenie: %s\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"Wyświetla wersję i kończy działanie\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Editing: %s\"\nmsgstr \"%s: ostrzeżenie: %s\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"PLIK\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\n#, fuzzy\n#| msgid \"FILENAME\"\nmsgid \"FILE:CONTENT\"\nmsgstr \"NAZWA-PLIKU\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\n#, fuzzy\n#| msgid \"FILE\"\nmsgid \"FILE:DEST\"\nmsgstr \"PLIK\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\n#, fuzzy\n#| msgid \"FILE\"\nmsgid \"FILE:EXPR\"\nmsgstr \"PLIK\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\n#, fuzzy\n#| msgid \"FILENAME\"\nmsgid \"FILE:LINE\"\nmsgstr \"NAZWA-PLIKU\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"NAZWA-PLIKU\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"NAZWA-KOMPUTERA\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\n#, fuzzy\n#| msgid \"Uninstall package(s)\"\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"Odinstalowuje pakiety\"\n\n#: common/mlcustomize/customize_run.ml:195\n#, fuzzy\n#| msgid \"Uninstall package(s)\"\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"Odinstalowuje pakiety\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\n#, fuzzy\n#| msgid \"Uninstall package(s)\"\nmsgid \"Installing packages: %s\"\nmsgstr \"Odinstalowuje pakiety\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"Adres URI biblioteki libvirt\"\n\n#: common/mlcustomize/customize_run.ml:255\n#, fuzzy\n#| msgid \"downloading %s\"\nmsgid \"Linking: %s -> %s\"\nmsgstr \"pobieranie %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\n#, fuzzy\n#| msgid \"downloading %s\"\nmsgid \"Moving: %s -> %s\"\nmsgstr \"pobieranie %s\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"ŚCIEŻKA\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Recursively truncating: %s\"\nmsgstr \"%s: ostrzeżenie: %s\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Running touch: %s\"\nmsgstr \"%s: ostrzeżenie: %s\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Running: %s\"\nmsgstr \"%s: ostrzeżenie: %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"SKRYPT\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Scrubbing: %s\"\nmsgstr \"%s: ostrzeżenie: %s\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"Skraca plik do zerowego rozmiaru\"\n\n#: common/mlcustomize/customize_run.ml:294\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Truncating: %s\"\nmsgstr \"%s: ostrzeżenie: %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"Odinstalowuje pakiety\"\n\n#: common/mlcustomize/customize_run.ml:311\n#, fuzzy\n#| msgid \"Uninstall package(s)\"\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"Odinstalowuje pakiety\"\n\n#: common/mlcustomize/customize_run.ml:290\n#, fuzzy\n#| msgid \"downloading %s\"\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"pobieranie %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\n#, fuzzy\n#| msgid \"Uninstall package(s)\"\nmsgid \"Update packages\"\nmsgstr \"Odinstalowuje pakiety\"\n\n#: common/mlcustomize/customize_run.ml:316\n#, fuzzy\n#| msgid \"Uninstall package(s)\"\nmsgid \"Updating packages\"\nmsgstr \"Odinstalowuje pakiety\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\n#, fuzzy\n#| msgid \"downloading %s\"\nmsgid \"Uploading: %s to %s\"\nmsgstr \"pobieranie %s\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\n#, fuzzy\n#| msgid \"%s: warning: %s\"\nmsgid \"Writing: %s\"\nmsgstr \"%s: ostrzeżenie: %s\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\n#, fuzzy\n#| msgid \"could not parse ovf:Name from OVF document\"\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"nie można przetworzyć ovf:Name z dokumentu OVF\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"nie można przetworzyć ovf:Name z dokumentu OVF\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"pobieranie %s\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"niepowodzenie: %s\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"błąd biblioteki libguestfs: %s\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\n#, fuzzy\n#| msgid \"%s (ignored)\"\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"%s (zignorowane)\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\nmsgstr[2] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\nmsgstr[2] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"nieznana opcja --root: %s\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"nieznana opcja -i: %s\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"nieznana opcja -o: %s\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"nieznana opcja -oa: %s\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: liczba całkowita spoza zakresu\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"%s: %d. wiersz: błąd podczas przetwarzania pliku konfiguracji: %s\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"%s: nie można zamontować niektórych systemów plików (zignorowano)\\n\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"System operacyjny: %s\\n\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"%s zamontowano w %s\\n\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"Proszę podać klucz lub hasło („%s”): \"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"nie można odczytać klucza od użytkownika\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n\n#~ msgid \"package ‘%s’ contains no files\"\n#~ msgstr \"pakiet „%s” nie zawiera plików\"\n"
  },
  {
    "path": "po/pt_BR.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2026-03-01 09:36+0000\\n\"\n\"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\\n\"\n\"Language-Team: Portuguese (Brazil) <https://translate.fedoraproject.org/\"\n\"projects/libguestfs/virt-v2v-master/pt_BR/>\\n\"\n\"Language: pt_BR\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n > 1;\\n\"\n\"X-Generator: Weblate 5.16.1\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"%s\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\"%s\\n\"\n\"Opções:\\n\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"%s (ignorado)\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"%s não retornou qualquer saída\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"%s não existe no convidado\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\"%s não existe ou não é um diretório.\\n\"\n\"\\n\"\n\"Causa mais provável: Ou %s (%s) não foi associado a nenhum Data Center, ou o \"\n\"caminho %s não é um %s.\\n\"\n\"\\n\"\n\"Você precisa associar %s a um Data Center usando a interface do usuário do \"\n\"oVirt primeiro.\\n\"\n\"\\n\"\n\"Se você não souber qual deve ser o ponto de montagem de %s, também poderá \"\n\"descobrir isso através da interface do usuário do oVirt.\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"%s ignorado para convidados não-Windows\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"%s não é um arquivo regular no convidado\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"Opção %s usada mais de uma vez na linha de comando\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"%s: %s\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"%s: %s: %s\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\"%s: Saindo com o sinal %s\\n\"\n\"%!\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"%s: não é possível abrir arquivo ISO virtio-win: %s\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"%s: o comando foi encerrado com um erro\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\"%s: converte um convidado para usar KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"Existe uma interface complementar chamada \\\"virt-p2v\\\", que é fornecida \"\n\"como\\n\"\n\"uma imagem ISO ou de CD que pode ser inicializada em máquinas físicas.\\n\"\n\"\\n\"\n\"Um breve resumo das opções é fornecido abaixo. Para obter ajuda detalhada,\\n\"\n\"consulte a página man virt-v2v(1).\\n\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\"%s: converte um convidado para usar KVM in-place\\n\"\n\"\\n\"\n\"Observe que este programa modifica o convidado in-place sem backup.\\n\"\n\"Normalmente, você deve usar o virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"Um breve resumo das opções é fornecido abaixo. Para uma ajuda detalhada,\\n\"\n\"consulte a página man virt-v2v-in-place(1).\\n\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"%s: insira a senha de ‘%s’: \"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"%s: erro: %s\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\"%s: estima o espaço em disco necessário antes da conversão virt-v2v\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"Um breve resumo das opções é fornecido abaixo. Para uma ajuda detalhada,\\n\"\n\"consulte a página man virt-v2v-inspector(1).\\n\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\"%s: abre a entrada de virt-v2v e executa um programa nela\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"Um breve resumo das opções é fornecido abaixo. Para uma ajuda detalhada,\\n\"\n\"consulte a página man virt-v2v-open(1).\\n\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"%s: a operação expirou\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\"%s: formato de arquivo sem suporte\\n\"\n\"\\n\"\n\"Os formatos que atualmente reconhecemos para '-i ova' são: tar \"\n\"(descompactado, compactado com gzip ou xz), zip\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"%s: aviso: %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"'CMD+ARGS'\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\"--append-line: a linha não deve conter caracteres de nova linha. Use a opção \"\n\"--append-line várias vezes para adicionar várias linhas.\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"--chown: não foi possível analisar o UID:GID numérico de %s:%s\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\"--inject-blnsvr: blnsvr.exe não encontrado na origem de virtio-win \"\n\"especificada\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\"--inject-qemu-ga: O MSI do QEMU Guest Agent não foi encontrado na origem de \"\n\"virtio-win especificada\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\"--inject-virtio-win: os drivers virtio não foram encontrados para esta \"\n\"versão do Windows na origem de virtio-win especificada\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\"o campo de comprimento do prefixo IP da opção --mac está fora do intervalo\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"o parâmetro --parallel deve ser >= 1\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\"-i disk: esperava uma imagem de disco (nome de arquivo) na linha de comando\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"-i libvirt: esperava o parâmetro -ic para conexão Xen via SSH\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"-i libvirt: esperava o parâmetro -ic para conexão com vcenter\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\"-i libvirt: esperava que o parâmetro -ic contenha o nome do servidor vcenter\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\"-i libvirt: esperava o parâmetro -ip passwordfile para conexão com o vCenter\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"-i libvirt: esperava um nome de convidado libvirt na linha de comando\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\"-i libvirtxml: esperava um nome de arquivo XML do libvirt na linha de comando\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\"-i ova: OVF faz referência ao arquivo ‘%s’, que não foi encontrado no \"\n\"arquivo OVA\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\"-i ova: OVA corrompido: a soma de verificação do disco %s não corresponde ao \"\n\"manifesto (real = %s, esperado = %s)\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"-i ova: esperava um nome de arquivo OVA na linha de comando\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\"-i ova: arquivo OVA inválido: o caminho ‘%s’ faz referência a um arquivo \"\n\"fora do arquivo\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"-i vmx: não é possível usar -it vddk neste modo de entrada\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"-i vmx: esperava um arquivo VMX ou URI ssh://\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\"parâmetro -ip PASSWORD_FILE foi ignorado porque 'user@' não foi fornecido na \"\n\"URL\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"-it vddk: ‘-io %s’ não é uma opção de entrada válida\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"-o %s: a opção %s não pode ser usada neste modo de saída\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"-o disk: diretório de saída não foi especificado, use '-os /dir'\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"-o disk: opção de saída desconhecida ‘-oo %s’\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"-o kubevirt: o diretório de saída não foi especificado, use '-os /dir'\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\"-o kubevirt: o nome do convidado deve conter apenas caracteres alfanuméricos \"\n\"minúsculos, '-' or '.' e deve iniciar e terminar com um caractere \"\n\"alfanumérico. Execute novamente virt-v2v com a opção '-on name' para renomeá-\"\n\"la.\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"-o kubevirt: opção de saída desconhecida ‘-oo %s’\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\"-o libvirt: o pool de saída ‘%s’ não tem o elemento /pool/target/path. \"\n\"Consulte virt-v2v-output-local(1)\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\"-o libvirt: o pool de saída ‘%s’ tem type='dir', mas o elemento /pool/target/\"\n\"path não é um diretório local.  Consulte virt-v2v-output-local(1)\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\"-o libvirt: o pool de saída ‘%s’ não é um diretório (type='dir'). Consulte \"\n\"virt-v2v-output-local(1)\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"o modo -o openstack só é compatível com -oa sparse -of raw\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"-o openstack: opção de saída desconhecida ‘-oo %s’\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"-o ovirt-upload: -oo ovirt-cafile definido mais de uma vez\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"-o ovirt-upload: -oo ovirt-cluster definido mais de uma vez\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"-o ovirt-upload: UUID inválido para -oo ovirt-disk-uuid\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\"-o ovirt-upload: um arquivo de senha de saída não foi especificado; use '-\"\n\"op' para indicar um arquivo que contenha a senha usada para conectar ao \"\n\"servidor oVirt\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\"-o ovirt-upload: o armazenamento de saída não foi especificado, use ‘-os’\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"-o ovirt-upload: opção de saída desconhecida ‘-oo %s’\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\"-o ovirt-upload: use ‘-oc’ para apontar para a URL da API REST do servidor \"\n\"oVirt, que geralmente é https://servername/ovirt-engine/api\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"-o ovirt: a opção -os não foi especificada\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"-o qemu: o diretório de saída não foi especificado, use '-os /dir'\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"-o qemu: opção de saída desconhecida ‘-oo %s’\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"-o vdsm: -oo vdsm-image-uuid não foi especificado\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"-o vdsm: -oo vdsm-ovf-output definido mais de uma vez\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"-o vdsm: -oo vdsm-vm-uuid definido mais de uma vez\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"-o vdsm: a opção -os não foi especificada\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"-o vdsm: não foi especificado -oo vdsm-vol-uuid ou -oo vdsm-vm-uuid\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"-o vdsm: opção de saída desconhecida ‘-oo %s’\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"-o vdsm: nível de compatibilidade vdsm desconhecido ‘%s’\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"-os %s: o diretório de saída não existe ou não é um diretório\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"<checksum> não tem atributo 'method', ignorando\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"<checksum> com falha desconhecida no atributo '%s', ignorando\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"<disk type='%s'> foi ignorado\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"<disk type='network'> com <source protocol='%s'> foi ignorado\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"<disk type='volume'> com <volume type='%s'> foi ignorado\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"elemento <disk> sem atributo type ignorado\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"a linha <listen type='%s'> no XML de entrada do libvirt foi ignorada\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\"<target dev='%s'> foi ignorado porque o nome do dispositivo não pôde ser \"\n\"reconhecido\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\"<vmware:moref> não foi encontrado na saída de ‘virsh dumpxml \\\"%s\\\"’. O \"\n\"motivo mais provável é que o libvirt está muito desatualizado; tente \"\n\"atualizar o libvirt para uma versão ≥ 3.7.\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"Adiciona pacote(s) para instalar\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"Adiciona pacote(s) para instalar na primeira inicialização\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"Adiciona linha(s) ao arquivo\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"Adicionando linha a %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"Altera o ID de usuário e de dono de um arquivo ou diretório\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"Altera as permissões de um arquivo\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"Alterando o dono de %s para %d:%d\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"Alterando permissões de %s para %s\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"Verificando a soma de verificação %s do disco %d/%d\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"Opção de compatibilidade fazendo nada\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"Copia arquivos em uma imagem de disco\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"Copia arquivos ou diretórios locais de um tarball para uma imagem\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"Copia arquivos ou diretórios locais para uma imagem\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"Copiando (na imagem): %s para %s\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"Copiando disco %d/%d\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"Copiando: %s para %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"Cria um diretório\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"Cria links simbólicos\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"Criando metadados de saída\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"DIR\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"Exclui um arquivo ou diretório\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"Excluindo: %s\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"Exibe ajuda breve\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"Exibe a versão e sai\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"Não rerotula arquivos com rótulos SELinux corretos\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"Não exibe mensagens de progresso\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"Não desativa o exibição para senhas\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"Edita arquivo usando expressão Perl\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"Editando: %s\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"Habilita mensagens de depuração do libguestfs\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"Habilita rastreamento de chamadas do libguestfs\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"Comando externo para executar\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"ARQUIVO\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"ARQUIVO:CONTEÚDO\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"ARQUIVO:DESTINO\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"ARQUIVO:EXPR\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"ARQUIVO:LINHA\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"NOME-DE-ARQUIVO\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"Finalizando\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"NOME-DO-HOST\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"Como escolher o sistema de arquivos raiz\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\"Se estiver relatando bugs, execute %s com depuração habilitada e inclua a \"\n\"saída completa:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"Injeta uma chave pública em um convidado\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"Injeta o Balloon Server em um convidado Windows\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"Injeta o QEMU Guest Agent em um convidado Windows\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"Injeta drivers virtio-win em um convidado Windows\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"Formato de entrada\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\"Opções de entrada (-io) que podem ser usadas com -it vddk\\n\"\n\"(todas as configurações são opcionais):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Define o modo de compressão VDDK (veja\\n\"\n\"                                 a documentação de nbdkit-vddk-plugin)\\n\"\n\"  -io vddk-config=ARQUIVO      Arquivo de configuração VDDK\\n\"\n\"  -io vddk-cookie=COOKIE       Cookie VDDK\\n\"\n\"  -io vddk-file=ARQUIVO        Substitui o parâm. file= de nbdkit-vddk-\"\n\"plugin\\n\"\n\"  -io vddk-libdir=LIBDIR       Diretório pai da biblioteca VDDK\\n\"\n\"  -io vddk-nfchostport=PORTA   nfchostport VDDK\\n\"\n\"  -io vddk-port=PORTA          porta VDDK\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               moref de snapshot VDDK\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               Impressão digital do servidor VDDK\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               Transporte VDDK\\n\"\n\"\\n\"\n\"Consulte nbdkit-vddk-plugin(1) e a documentação VDDK para mais informações\\n\"\n\"sobre essas configurações.\\n\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"Transporte de entrada\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"Instalando comando de primeira inicialização: %s\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"Instalando pacotes de primeira inicialização: %s\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"Instalando script de primeira inicialização: %s\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"Instalando pacotes: %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"CAMINHOLOCAL:DIRREMOTO\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"URI do Libvirt\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"Vinculando: %s -> %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"MÉTODO\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"Torna a saída legível por máquina\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"Criando diretório: %s\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"Mapeia a placa de rede à rede ou ponte ou atribui IP estático\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"Mapeia ponte ‘in’ para ‘out’\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"Mapeia rede ‘in’ para ‘out’\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"Move arquivos em uma imagem de disco\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"Movendo: %s -> %s\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"Nenhuma opção de entrada pode ser usada neste modo.\\n\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"Nenhuma opção de saída pode ser usada neste modo.\\n\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"O diretório de OVF (metadados) (%s) não existe ou não é um diretório\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\"Um dos arquivos rhsrvany.exe ou pvvxsvc.exe está faltando em %s. Um deles é \"\n\"necessário para instalar os scripts de inicialização do Windows. Você pode \"\n\"obter um compilando o rhsrvany (https://github.com/rwmjones/rhsrvany)\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"Emite a conexão do hipervisor\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\"Opções de saída (-oo) que podem ser usadas com -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Define o nome do arquivo do pacote de \"\n\"certificados ‘ca.pem’.\\n\"\n\"  -oo ovirt-cluster=NOMECLUSTER Define o nome do cluster oVirt.\\n\"\n\"  -oo ovirt-proxy               Conecta via proxy do oVirt Engine (padrão: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verifica a identidade do servidor \"\n\"(padrão: false).\\n\"\n\"\\n\"\n\"Você pode substituir os UUIDs dos discos, em vez de usar os UUIDs gerados\\n\"\n\"automaticamente após o upload (se fizer isso, você deve fornecer um para\\n\"\n\"cada disco):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      UUID do disco\\n\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\"Opções de saída (-oo) que podem ser usadas com -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compacta o arquivo de saída (usado apenas com -of \"\n\"qcow2)\\n\"\n\"  -oo qemu-boot       Inicializa o convidado no qemu após conversão\\n\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\"Opções de saída (-oo) que podem ser usadas com -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Escreve qcow2 com compat=0.10|1.1\\n\"\n\"                                   (padrão: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        UUID da VM (obrigatório)\\n\"\n\"  -oo vdsm-ovf-output=DIR      Diretório de metadados de OVF (obrigatório)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Define o tipo de OVF gerado (padrão: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"Para cada disco, você deve fornecer um para cada uma dessas opções:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     UUID do diretório de imagem\\n\"\n\"  -oo vdsm-vol-uuid=UUID       UUID do volume de disco\\n\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\"Opções de saída que podem ser usadas com -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compacta o arquivo de saída (usado apenas com -of \"\n\"qcow2)\\n\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\"Opções de saída que podem ser usadas com -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compacta o arquivo de saída (usado apenas com -of \"\n\"qcow2)\\n\"\n\"  -oo create=false    Não cria os discos de saída\\n\"\n\"  -oo disk=disk1      Especifica nome de arquivo do disco de saída (se \"\n\"usado,\\n\"\n\"                           deve ser dado uma vez para cada disco,\\n\"\n\"                          do contrário -os path é usado)\\n\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\"Opções de saída que podem ser usadas com -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compacta o arquivo de saída (usado apenas com -of \"\n\"qcow2)\\n\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"CAMINHO\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"PERMISSÕES:ARQUIVO\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"PKG,PKG..\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"Prefira 'virtio-blk' ou 'virtio-scsi'\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"Exibe a fonte e para\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"Lê comandos personalizados do arquivo\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"Lê senhas da entrada padrão (stdin)\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"Trunca recursivamente todos os arquivos no diretório\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"Truncando recursivamente: %s\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"Renomeia o convidado ao converter\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"Executa o comando na primeira inicialização do convidado\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"Executa comando na imagem de disco\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"Executa script na primeira inicialização do convidado\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"Executa script na imagem de disco\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"Executa touch em um arquivo\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"Executa até N instâncias de nbdcopy em paralelo\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"Executando comando externo\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"Executando touch: %s\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"Executando: %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"SCRIPT\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"SELETOR\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"Re-rotulação SELinux\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"FONTE:DESTINO\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"A chave SSH não pôde ser injetada para este tipo de convidado\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"Injeção de chave SSH: %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"Exclui permanentemente um arquivo\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"Exclui permanentemente o arquivo de log de compilação\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"Excluindo permanentemente o arquivo de log\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"Excluindo permanentemente: %s\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"Defina a largura de banda dinamicamente a partir de um arquivo\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"Defina a largura de banda para bits por segundo\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"Define o modo de entrada (padrão: libvirt)\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"Define o tamanho da memória\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"Define o número de vCPUs\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"Define opção para o modo de entrada\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"Define opção para o modo de saída\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"Define o modo de alocação da saída\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"Define o formato da saída\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"Define o modo de saída (padrão: libvirt)\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"Define o local de armazenamento da saída\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"Define crypto da senha\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"Define o nome do programa\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"Define a senha do root\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"Define o fuso horário padrão\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"Define nome de host\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"Define o nome de arquivo da saída\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"Define a senha do usuário\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"Definindo uma semente aleatória\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"Definindo senhas\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"Definindo uma senha aleatória de %s para %s\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"Definindo o nome de host: %s\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"Definindo o ID de máquina em %s\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"Definindo o fuso horário: %s\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"Configurando o destino: %s\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"Configurando a fonte: %s\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"Informações de fonte do convidado (a opção --print-source):\\n\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"Especifica uma chave LUKS\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"ARQUIVOTAR:DIRREMOTO\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"ALVO:LINK[:LINK..]\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"FUSO-HORÁRIO\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"A opção --in-place foi substituída pelo programa 'virt-v2v-in-place'\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\"A máquina Virt não oferece suporte para IDE. Relate um bug para irt-v2v -- \"\n\"consulte a seção \\\"BUGS\\\" de virt-v2v(1).\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\"A máquina Virt não oferece suporte para disquetes. Relate um bug para irt-\"\n\"v2v -- consulte a seção \\\"BUGS\\\" de virt-v2v(1).\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\"Este convidado exigiu uma senha para a conexão com sua tela, mas isso não é \"\n\"suportado pelo oVirt. Portanto, a tela do convidado convertido não vai \"\n\"exigir uma senha separada para se conectar a ele.\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\"Este transporte não suporta convidados com snapshots. Ou desfaça os \"\n\"snapshots para este convidado e tente a conversão novamente, ou use um dos \"\n\"métodos de conversão alternativos descritos na seção \\\"NOTES\\\" de virt-v2v-\"\n\"input-vmware(1).\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"Trunca um arquivo para tamanho zero\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"Truncando: %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"UID:GID:CAMINHO\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"USUÁRIO:SELETOR\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"USUÁRIO[:SELETOR]\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"Desinstala pacote(s)\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"Desinstalando pacotes: %s\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"Desempacotamento de arquivo tar: %s para %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"Atualiza pacotes\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"Atualizando pacotes\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"Atualiza arquivo local para destino\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"Enviando: %s para %s\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"Usa sequências de cores ANSI mesmo se não estiver em um terminal (tty)\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"Usa a senha de um arquivo para conectar ao hipervisor de entrada\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"Usa a senha de um arquivo para conectar ao hipervisor de saída\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"Usa virt-v2v-in-place em vez disso\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\"Quebra linha de mensagens de log mesmo se não estiver no terminal (tty)\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"Escreve o arquivo\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"Escrevendo: %s\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\"O bloco YAML contém um caractere de nova linha. Isso não deveria acontecer. \"\n\"Relate um bug para o virt-v2v.\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\"Um domínio libvirt chamado ‘%s’ já existe no alvo.\\n\"\n\"\\n\"\n\"Se estiver usando o virt-v2v diretamente, use a opção ‘-on’ para selecionar \"\n\"um nome diferente. Ou exclua o domínio existente no destino usando o comando \"\n\"‘virsh undefine’.\\n\"\n\"\\n\"\n\"Se estiver usando o virt-p2v, selecione um ‘Name’ diferente em ‘Target \"\n\"properties’. Ou exclua o domínio existente no destino usando o comando \"\n\"‘virsh undefine’.\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"append_line: %s não é um arquivo\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\"checksum inválido para o disco %d/%d\\n\"\n\"Checksum esperado: %s\\n\"\n\"Checksum encontrado: %s\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"não foi possível encontrar o domínio libvirt ‘%s’: %s\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\"não foi possível encontrar o pool libvirt ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ para listar todos os pools disponíveis e ‘virsh \"\n\"pool-dumpxml <pool>’ para exibir detalhes sobre um pool específico.\\n\"\n\"\\n\"\n\"Para definir o pool que o virt-v2v utiliza, adicione a opção ‘-os <pool>’.\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"não foi possível encontrar o volume libvirt ‘%s’: %s\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\"não foi possível concluir a instalação de primeira inicialização executando \"\n\"‘%s’ porque a CPU do host (%s) e a arquitetura do convidado (%s) não são \"\n\"compatíveis. O serviço de primeira inicialização pode não ser executado na \"\n\"inicialização.\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"não foi possível obter recursos de domínio libvirt: %s\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"não foi possível obter os recursos do hipervisor libvirt: %s\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"não foi possível analisar o parâmetro --mac \\\"%s\\\"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\"não foi possível analisar o ip de --mac %s: parece que “%s” não é um \"\n\"endereço IP\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\"não foi possível usar ‘%s’ porque nenhum gerenciador de pacotes foi \"\n\"detectado para este sistema operacional convidado.\\n\"\n\"\\n\"\n\"Se este sistema operacional convidado for comum e possuir gerenciamento de \"\n\"pacotes padrão, isso pode ter sido causado por uma falha na inspeção da \"\n\"libguestfs.\\n\"\n\"\\n\"\n\"Para sistemas operacionais como o Windows, que não possuem gerenciamento de \"\n\"pacotes, isso não é possível. Tente usar uma das opções ‘--firstboot*’ \"\n\"(descritas no manual do virt-customize(1)).\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\"não foi possível gravar arquivos no servidor NFS como %d:%d, mesmo que \"\n\"pareça que estamos executando como root. Isso provavelmente significa que o \"\n\"cliente NFS ou o idmapd não estão configurados corretamente.\\n\"\n\"\\n\"\n\"Você precisará alterar o proprietário dos arquivos criados pelo virt-v2v \"\n\"após a execução; caso contrário, o oVirt não conseguirá importar a máquina \"\n\"virtual.\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\"não foi possível gravar arquivos no servidor NFS como %d:%d. Você pode \"\n\"tentar interromper o virt-v2v (^C) e executá-lo novamente como root.\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\"O comando '%s' não pode ser usado em arquivos de comando; consulte a página \"\n\"man\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"o comando '%s' não é válido, consulte a página man\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"não foi possível adicionar o console serial do grub2 (ignorado)\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\"não foi possível copiar o arquivo VMX do servidor remoto, consulte as \"\n\"mensagens de erro anteriores\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\"não foi possível definir o domínio libvirt: %s.\\n\"\n\"O XML do libvirt ainda está disponível em ‘%s’. Tente executar ‘virsh -c %s \"\n\"define %s’ manualmente.\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\"não foi possível determinar uma maneira de atualizar a configuração do Grub2\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\"não foi possível obter a impressão digital do servidor. Você deve usar '-io \"\n\"vddk-thumbprint=XX:XX...'\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\"não foi possível encontrar o ponto de montagem do carregador de \"\n\"inicialização (%s): %s\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\"não foi possível encontrar a entrada de registro \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds nesta máquina virtual \"\n\"Windows. Pode ser uma versão muito antiga ou muito recente do Windows que \"\n\"não podemos processar.\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\"não foi possível concluir a instalação de primeira inicialização executando \"\n\"‘%s’ porque o comando falhou: %s\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\"não foi possível analisar '-ic %s'. A mensagem de erro original foi: %s\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\"não foi possível analisar o nome do dispositivo '%s' do XML de origem do \"\n\"libvirt\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\"não foi possível analisar o recurso de disco rasd:HostResource do documento \"\n\"OVF\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"não foi possível analisar ovf:Name do documento OVF\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\"não foi possível ler o %s especificado pelo parâmetro '-os %s' na linha de \"\n\"comando. É realmente um %s do OVirt? O erro original é: %s\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\"não foi possível reconstruir o arquivo de configuração do grub2 (%s). Isso \"\n\"pode significar que a saída do grub não será enviada para a porta serial, \"\n\"mas, fora isso, não deve causar problemas. Mensagem de erro original: %s\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"não foi possível atualizar o pool libvirt ‘%s’: %s\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"não foi possível remover o console serial do grub2 (ignorado)\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\"decode_utf16le: A string UTF16-LE do Windows contém caracteres que não são \"\n\"de 7 bits. Isso é um bug em %s, por favor, reporte-o.\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\"decode_utf16le: A string do Windows não parece estar codificada em UTF16-LE. \"\n\"Isso pode ser um bug em %s.\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"não foi encontrada entrada do grub para o kernel %s\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"discos na linha de comando têm formatos mistos\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\"a exibição de <graphics type='%s'> no XML de entrada do libvirt foi ignorada\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"não sei como converter convidados UEFI para a arquitetura %s\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"não sei como encontrar o proprietário do arquivo usando %s\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"não sei como obter a lista de arquivos de um pacote usando %s\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"baixando %s\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\"parâmetro --mac duplicado. Mapeamentos duplicados especificados para o \"\n\"endereço MAC %s.\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\"parâmetro -b/--bridge duplicado. Mapeamentos duplicados especificados para a \"\n\"ponte %s.\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\"parâmetro -b/--bridge duplicado. Apenas um mapeamento padrão é permitido.\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\"parâmetro -n/--network duplicado. Mapeamentos duplicados especificados para \"\n\"a rede %s.\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\"parâmetro -n/--network duplicado. Apenas um mapeamento padrão é permitido.\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"erro ao analisar fileRef do disco\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"erro ao descompactar %s, veja as mensagens de erro anteriores\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"erro ao desempacotar %s, veja as mensagens de erro anteriores\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"exceção: %s\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"saiu com erro %d\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"saiu com código de erro não-zero %d\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"esperava nome de disco >= 1 na linha de comando\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\"espera-se que a expressão XML retorne um número inteiro (expressão: %s, \"\n\"string correspondente: %s)\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"comando externo\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"falha nas prechecks do servidor; consulte os erros anteriores\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"falha ao criar a máquina virtual; consulte os erros anteriores\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"falha ao finalizar as transferências; consulte os erros anteriores\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\"falha ao encontrar o binário grub2-mkconfig (mas o Grub2 foi detectado no \"\n\"convidado)\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"falha ao analisar a linha retornada por tar: %S\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"falha ao iniciar a transferência; consulte os erros anteriores\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"falha nas vmchecks; consulte os erros anteriores\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"falha: %s\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"arquivo ‘%s’ não encontrado no ova\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\"firstboot: versão desconhecida para o arquivo antigo firstboot.service %s \"\n\"(md5=%s), ele não será removido\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"gerada por %s %s\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"get_osinfo_id: sistema operacional convidado desconhecido: %s\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\"glance: o cliente glance não está instalado ou configurado corretamente. \"\n\"Pode ser necessário definir variáveis de ambiente ou executar um script para \"\n\"habilitar a autenticação. Consulte as mensagens anteriores para obter \"\n\"detalhes.\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\"glance: falha ao carregar a imagem para o glance, veja os erros anteriores\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"O tipo de convidado %s não é suportado\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"O tipo de convidado %s/%s não é suportado\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\"O host (%s/%s) e o convidado (%s/%s) não são compatíveis, portanto, você não \"\n\"pode usar opções de linha de comando que envolvam a execução de comandos no \"\n\"convidado. Use scripts --firstboot em vez disso.\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"nome do host não pôde ser definido para este tipo de convidado\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\"ignorando o kernet %s no carregador de inicialização, pois ele não existe.\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"o diretório de imagem (%s) não existe ou não é um diretório\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\"nos metadados do XML do libvirt, <domain type='...'> está em falta ou vazio\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"nos metadados do XML do libvirt, <name> está em falta ou vazio\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"o modo in-place não funciona com a fonte HTTP\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"o modo in-place não funciona com a fonte VDDK\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"o modo in-place não funciona com a fonte VMX\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"o modo in-place não funciona com a fonte Xen por SSH\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\"número incorreto de parâmetros de '-oo disk'. Este convidado tem %d discos, \"\n\"mas o parâmetro foi usado %d vezes.\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\"a entrada de xen por ssh não suporta discos armazenados em dispositivos de \"\n\"bloco remotos. Consulte a seção \\\"Conversões de Xen ou SSH de dispositivos \"\n\"de bloco\\\" em virt-v2v-input-xen(1).\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\"espaço livre insuficiente no diretório temporário do servidor de conversão \"\n\"%s (%s).\\n\"\n\"\\n\"\n\"Libere espaço nesse diretório ou defina a variável de ambiente \"\n\"IBGUESTFS_CACHEDIR para apontar para outro diretório com mais de 1 GB de \"\n\"espaço livre.\\n\"\n\"\\n\"\n\"Consulte também o manual virt-v2v(1), seção \\\"Verificação de espaço livre \"\n\"mínimo no host\\\".\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"erro interno: exceção Not_found foi lançada\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"erro interno: asserção falhou em %s, linha %d, caractere %d\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"erro interno: argumento inválido: %s\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"erro interno: is_file_owned: o comando dpkg retornou nenhuma saída\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"erro interno: is_file_owned: saída inesperada do comando dpkg: %s\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"erro interno: a expressão regular não correspondeu a ‘%s’\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\"erro interno: wait retornou ID de processo inesperado %d com status \\\"%s\\\"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"opção --mac ip inválido\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"parâmetro de -b/--bridge inválido\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"parâmetro de -n/--network inválido\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"cpuid.coresPerSocket inválido < número de vCPUs\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"formato inválido para o parâmetro de '--%s'; consulte a página man\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"string de formato inválida para --machine-readable: %s\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"nome de arquivo de entrada inválido (%s)\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"deslocamento inválido retornado por tar: %S\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"descritor de arquivo de saída inválido para --machine-readable: %s\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"saída inválida para --machine-readable: %s\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"fluxo de saída inválido para --machine-readable: %s\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"seletor de senhas inválido ‘%s’; consulte a página man\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"tamanho inválido retornado por tar: %S\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"seletor de ssh-inject inválido ‘%s’; consulte a página man\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"vmw:CoresPerSocket inválido (%d) ignorado\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"vmw:CoresPerSocket inválido < número de núcleos\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"o kernel %s não está na árvore de grub %s\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"morto pelo sinal %d\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"erro do libguestfs: %s\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\"o domínio libvirt '%s' está em execução ou pausado. Converter uma máquina \"\n\"virtual em execução resultará em saída corrompida. No entanto, isso é seguro \"\n\"se você estiver convertendo a partir de um snapshot\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"arquivo log %s: %s (ignorado)\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\"tornando o diretório OVA público e legível para contornar o bug do libvirt \"\n\"https://bugzilla.redhat.com/1045069\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\"o manifesto tem uma soma de verificação para um arquivo não existente %s \"\n\"(ignorado)\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"o método '%s' não é mais suportado\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"faltando um valor para a chave ‘%s’\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"mais de um arquivo .ovf foi encontrado em %s\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"mais de um valor para a chave ‘%s’\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\"o comando mount falhou. Consulte os erros anteriores.\\n\"\n\"\\n\"\n\"Isso provavelmente significa que você não especificou o caminho %s correto [-\"\n\"os %s], ou então precisa executar o virt-v2v novamente como root.\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\"várias opções --root-password/--password definem a senha do usuário ‘%s’ \"\n\"duas vezes\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\"O plugin VDDK do nbdkit não está instalado ou não está funcionando. Ele é \"\n\"necessário para usar o VDDK.\\n\"\n\"\\n\"\n\"Parece que você não definiu o caminho correto na opção ‘-io vddk-libdir’, ou \"\n\"sua cópia do diretório VDDK está incompleta. Deveria haver uma biblioteca \"\n\"chamada ‘<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"Veja também o manual virt-v2v-input-vmware(1).\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\"O plugin VDDK do nbdkit não está instalado ou não está funcionando. Ele é \"\n\"necessário para usar o VDDK.\\n\"\n\"\\n\"\n\"O plugin VDDK não está habilitado por padrão ao compilar o nbdkit. Você \"\n\"precisa ler as instruções nos arquivos-fonte do nbdkit em ‘plugins/vddk/\"\n\"README.VDDK’ para descobrir como habilitar o plugin VDDK.\\n\"\n\"\\n\"\n\"Veja também o manual virt-v2v-input-vmware(1).\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\"o nbdkit não foi iniciado. Consulte as mensagens de depuração anteriores \"\n\"para obter detalhes sobre o problema.\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\"o nbdkit não foi iniciado. Podem existir erros exibidos pelo nbdkit acima.\\n\"\n\"\\n\"\n\"Se as mensagens acima não forem suficientes para diagnosticar o problema, \"\n\"adicione as opções ‘virt-v2v -v -x’ e examine cuidadosamente a saída de \"\n\"depuração.\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"o nbdkit não está instalado ou não está funcionando\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\"o nbdkit não está instalado ou não está funcionando. É necessário usar ‘-i \"\n\"disk’.\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\"o nbdkit não está instalado ou não está funcionando. É necessário usar ‘-i \"\n\"libvirt|libvirtxml’.\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\"o nbdkit não está instalado ou não está funcionando. É necessário usar ‘-o \"\n\"disk’.\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\"o nbdkit não está instalado ou não está funcionando. É necessário usar ‘-o \"\n\"null’.\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\"o nbdkit não está instalado ou não está funcionando. É necessário usar ‘-o \"\n\"ovirt-upload’. Consulte o manual virt-v2v-output-ovirt(1).\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"o nbdkit deve ser >= 1.45.11 para entrada de VDDK\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\"O plugin Python do nbdkit não está instalado ou não está funcionando. Ele é \"\n\"necessário para usar ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"Veja também o manual do virt-v2v-output-ovirt(1).\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\"o nbdkit foi compilado sem suporte a SELinux. Você precisará recompilar o \"\n\"nbdkit com o pacote libselinux-devel instalado ou, então, configurar o \"\n\"SELinux para o modo Permissive durante a conversão.\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"nbdkit-cow-filter não está instalado ou não está funcionando\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"nbdkit-curl-plugin não está instalado\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"nbdkit-file-plugin não está instalado ou não está funcionando\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"nbdkit-nbd-plugin não está instalado ou não está funcionando\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"nbdkit-null-plugin não está instalado ou não está funcionando\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"nbdkit-ssh-plugin não está instalado\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"nbdkit-vddk-plugin não está instalado\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"nbdkit: versão inesperada em --dump-config: %s\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"não é permitido -io (opções de entrada) aqui\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"não é permitido -oo (opções de saída) aqui\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"nenhum arquivo .ovf foi encontrado em %s\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"nenhum carregador de inicialização detectado\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"nenhuma chave displayName encontrada no arquivo VMX\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"nenhum href em ovf:File (id=%s)\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"nenhum initrd foi encontrado em /boot correspondendo a %s %s.\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\"nenhum pacote de kernel instalado foi encontrado.\\n\"\n\"\\n\"\n\"Isso provavelmente indica que %s não conseguiu inspecionar este convidado \"\n\"corretamente.\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\"nenhum kernel foi encontrado na configuração do carregador de \"\n\"inicialização.\\n\"\n\"\\n\"\n\"Isso provavelmente indica que %s não conseguiu analisar a configuração do \"\n\"carregador de inicialização deste convidado.\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"não foi possível encontrar nenhum binário Python chamado ‘%s’ no $PATH\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\"não há suporte para conexões remotas do libvirt com '-ic %s'. A conversão \"\n\"pode falhar ao tentar ler os discos de origem.\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\"o oVirt não consegue emular placas de som ‘%s’. Essa placa de som será \"\n\"removida da saída.\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"oVirt não suporta o formato de saída ‘%s‘, apenas raw ou qcow2\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"openstack: -oo server-id=<NAME|UUID> não presente\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\"openstack: falha ao anexar o volume cinder à VM, consulte as mensagens de \"\n\"erro anteriores\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\"openstack: falha ao criar um volume cinder, consulte as mensagens de erro \"\n\"anteriores\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\"openstack: falha ao consultar o status do volume cinder, consulte as \"\n\"mensagens de erro anteriores\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\"openstack: falha ao definir as propriedades de imagem em volume cinder, \"\n\"consulte as mensagens de erro anteriores\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\"openstack: precheck falhou, pode haver um problema com a autenticação, \"\n\"consulte as mensagens de erro anteriores\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\"openstack: status de volume desconhecido \\\"%s\\\": esperava \\\"creating\\\" ou \"\n\"\\\"available\\\"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"o modo de saída só suporta os formatos raw ou qcow2 (formato: %s)\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\"o disco ova tem um tipo de controlador VMware desconhecido (%d), relate isso \"\n\"como um bug fornecendo o arquivo *.ovf extraído do ova\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\"o disco ova tem nenhum controlador pai, relate isso como um bug fornecendo o \"\n\"arquivo *.ovf extraído do ova\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\"ovirt-upload: -of %s: Somente os formatos de saída 'raw' ou 'qcow2' são \"\n\"suportados. Se a entrada estiver em um formato diferente, force um desses \"\n\"formatos de saída adicionando '-of raw' ou '-of qcow2' na linha de comando.\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\"password-crypto: um algoritmo desconhecido %s, use \\\"md5\\\", \\\"sha256\\\", \"\n\"\\\"sha512\\\" ou \\\"yescrypt\\\"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\"password: usando criptografia de senha md5 insegura para convidado do tipo \"\n\"%s versão %d.%d.\\n\"\n\"Se isso estiver incorreto, use a opção --password-crypto e registre um bug.\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"senhas não puderam ser definidas para este tipo de convidado\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\"O qemu-nbd não iniciou. Veja mensagens de depuração anterior por problemas.\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\"O qemu-nbd não iniciou. Podem existir erros impressos pelo qemu-nbd acima.\\n\"\n\"\\n\"\n\"Se as mensagens acima não forem suficientes para diagnosticar o problema, \"\n\"adicione as opções ‘virt-v2v -v -x’ e examine cuidadosamente a saída de \"\n\"depuração.\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"qemu-nbd: versão ini=esperada em --version: %s\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"semente aleatória não pôde ser definida para este tipo de convidado\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"vmx remoto ‘%s’ não pôde ser analisado como um URI\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\"diretório raiz ‘/’ está em falta no diretório virtio-win ou ISO.\\n\"\n\"\\n\"\n\"Isso não deveria acontecer e pode indicar que o virtio-win ou o virt-v2v \"\n\"está com algum problema. Por favor, relate isso como um bug com um log de \"\n\"depuração completo.\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"seletor '%s': TYPE inválido\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"seletor '%s': FILENAME em falta ou muitos campos\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"seletor '%s': ID em falta\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"seletor '%s': KEY_STRING em falta ou muitos campos\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"seletor '%s': TYPE em falta\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"seletor '%s': muitos campos\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"sinalizado pelo sinal %d\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\"Desculpe, o uso de ‘%s’ com o gerenciador de pacotes ‘%s’ ainda não foi \"\n\"implementado.\\n\"\n\"\\n\"\n\"Você pode contornar isso usando uma das opções ‘--run*’ ou ‘--firstboot*’ \"\n\"(descritas no manual virt-customize(1)).\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"ssh-inject: variável de ambiente $HOME não definida\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"ssh-inject: a chave é uma string vazia\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"ssh-inject: nenhum arquivo de chave pública encontrado em %s\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"ssh-inject: o arquivo de chave pública (%s) está vazio\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"ssh-inject: o usuário %s não existe no convidado\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"parado pelo sinal %d\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"o subprocesso foi encerrado com código de erro não-zero %d\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"subprocesso sinalizado ou parado pelo sinal %d\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"sucesso\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\"o hipervisor alvo não suporta dispositivos de disquete, mas dispositivos de \"\n\"disquete foram encontrados no sistema operacional convidado de origem\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\"o módulo Python ‘ovirtsdk4’ não pôde ser carregado. Ele está instalado? \"\n\"Consulte as mensagens anteriores para obter mais detalhes sobre o problema.\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"o cluster ‘%s’ não suporta a arquitetura %s, mas sim a arquitetura %s\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\"o comando pode ter falhado porque a rede está desabilitada. Tente remover ‘--\"\n\"no-network’ ou adicionar ‘--network’ na linha de comando.\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"a chave ‘%s’ não foi encontrada na lista de objetos\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\"oO número de parâmetros ‘-oo ovirt-disk-uuid’ passados na linha de comando \"\n\"deve corresponder ao número de imagens de disco do convidado (para este \"\n\"convidado: %d)\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\"o número de parâmetros ‘-oo vdsm-image-uuid’ e ‘-oo vdsm-vol-uuid’ passados \"\n\"na linha de comando deve corresponder ao número de imagens de disco do \"\n\"convidado (para este convidado: %d)\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"o hipervisor de destino não suporta um convidado KVM %s\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"o valor da chave ‘%s’ não é uma string como esperado\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"o valor da chave ‘%s’ não é um booleano\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"o valor da chave ‘%s’ não é uma string\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"o valor da chave ‘%s’ não é um inteiro\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"o valor da chave ‘%s’ não é um objeto\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"o valor não é um objeto\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"o valor da chave ‘%s’ não é um objeto\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\"O tamanho virtual do disco de entrada %d não é um múltiplo exato de 512 \"\n\"bytes. O tamanho virtual é: %Ld.\\n\"\n\"\\n\"\n\"Isso provavelmente significa que algo inesperado está acontecendo, então, \"\n\"por favor, relate um bug sobre esse problema.\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\"o programa ‘%s’ não está disponível. Ele é necessário para a comunicação com \"\n\"o OpenStack.\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\"existem vários UUIDs em %s (%s). Isso é inesperado e pode ser um bug no virt-\"\n\"v2v ou no OVirt.\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"não há UUIDs em %s (%s). É realmente um %s do OVirt?\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\"não há drivers virtio disponíveis para esta versão do Windows (%d.%d %s %s \"\n\"%s). O virt-v2v procura drivers em %s.\\n\"\n\"\\n\"\n\"O sistema convidado será configurado para usar dispositivos emulados mais \"\n\"lentos.\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\"não existe um driver de dispositivo de bloco virtio para esta versão do \"\n\"Windows (%d.%d %s). O virt-v2v procura este driver em %s\\n\"\n\"\\n\"\n\"O sistema convidado será configurado para usar um dispositivo emulado mais \"\n\"lento.\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\"não existe um driver de rede virtio para esta versão do Windows (%d.%d %s). \"\n\"O virt-v2v procura este driver em %s\\n\"\n\"\\n\"\n\"O sistema convidado será configurado para usar um dispositivo emulado mais \"\n\"lento.\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"este convidado tem uma interface de rede direta que será ignorada\"\nmsgstr[1] \"este convidado tem interfaces de rede diretas que serão ignoradas\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\n\"este convidado tem um dispositivo de host em passthrough que será ignorado\"\nmsgstr[1] \"\"\n\"este convidado tem dispositivos de host em passthrough que serão ignorados\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"este convidado não tem discos não-removíveis\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"este módulo de saída não suporta copiar mais de %d discos\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"o fuso horário '%s' não existe, use um local como 'Europa/Londres'\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"o fuso horário não pôde ser definido para este tipo de convidado\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"não foi possível analisar a linha do arquivo de manifesto: %S\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"fim de arquivo inesperado ao ler /dev/urandom\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"saída inesperada do comando %s\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"tipo de some de verificação não tratada ‘%s’\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"opção --root desconhecida: %s\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"opção -i desconhecida: %s\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"opção -o desconhecida: %s\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"opção -oa desconhecida: %s\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"method=‘%s’ de <checksum> desconhecido\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\"valor de Config:firmware desconhecido %s (esperava \\\"bios\\\" ou \\\"efi\\\")\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"variante de Windows 10 desconhecida: %s (%s)\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"driver de bloco desconhecido ‘--block-driver %s’\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"valor de firmware desconhecido '%s', presumindo BIOS\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"sistema operacional convidado desconhecido: %s %s %d.%d %s (%s)\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"transporte de entrada desconhecido ‘-it %s’\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"desconhecido de som desconhecido '%s' ignorado\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"modelo de som desconhecido %s ignorado\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"compactação não suportada por OVF: %s\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\"vcenter: <vmware:datacenterpath> não foi encontrado no XML.  Você precisa \"\n\"atualizar para libvirt ≥ 1.2.20.\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"vcenter: URL não encontrado: %s\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"vcenter: nome de usuário e senha incorretos\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\"vcenter: nome de usuário ou senha incorretos. Você pode precisar especificar \"\n\"o nome de usuário na URI como este: [vpx|esx|..]://USERNAME@[etc]\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"vcenter: resposta inválida do servidor: %s\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"vcenter: nenhum código de status na saída do comando ‘curl’.\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\"vdsm: um parâmetro -os inválido não contém não contém um UUID válido: %s\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Especifique o nome ou UUID do appliance de conversão usando\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"Quando virt-v2v é executado, ele irá conectar os volumes Cinder\\n\"\n\"ao dispositivo de conversão, portanto, esse nome ou UUID deve\\n\"\n\"ser o nome da máquina virtual no OpenStack onde o virt-v2v está\\n\"\n\"em execução.\\n\"\n\"\\n\"\n\"Além disso, todos os usuais parâmetros “os-*” do OpenStack ou\\n\"\n\"as variáveis de ambiente “OS_*” podem ser usados.\\n\"\n\"\\n\"\n\"Os parâmetros “--os-*” do Openstack devem ser escritos como\\n\"\n\"“virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"Por exemplo:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equiavalente a openstack: --os-username=<NAME>\\n\"\n\"            ou a variável de ambiente: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equiavalente a openstack: --os-project-name=<NAME>\\n\"\n\"            ou a variável de ambiente: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"Os parâmetros os-* e variáveis de ambiente são opcionais.\\n\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\"o virt-v2v não suporta displays locais, então <graphics type='%s'> no XML \"\n\"libvirt de entrada foi ignorado\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"o virt-v2v-in-place não suporta URIs libvirt remotos\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"o componente de caminho URI vmx parece incorreto\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"nome de servidor remoto de URI em vmx omitido\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"URI em vmx começa com ‘ssh://...’\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"analisador de vmx: não é possível analisar esta linha, ignorando: %s\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"analisador de vmx: chave duplicada '%s' ignorada\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\"aguardando o status do volume cinder ser alterado para \\\"available\\\" \"\n\"(disponível)\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"aguardando pelo volume cinder %s ser anexado ao appliance de conversão\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"você deve fornecer o parâmetro --run\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"a URL ‘-ic %s’ não contém o campo de nome do host\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"‘-io vddk-file=’ deve ser usado exatamente %d vezes\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\"‘-io vddk-libdir=%s’ não aponta para um diretório. Veja o manual virt-v2v-\"\n\"input-vmware(1).\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\"‘-oo compressed’ só é permitido quando o formato de saída é um arquivo qcow2-\"\n\"format local, isto é, ‘-of qcow2’\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\"comando ‘openssl’ não encontrado: não é possível detectar automaticamente \"\n\"impressões digitais, então você deve usar ‘-io vddk-thumbprint=XX:XX...’\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"Tente ‘%s --help’ ou consulte %s(1) para mais informações.\\n\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"%s: ‘%s’ não é um valor numérico.\\n\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: inteiro fora do limite\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"%s: ‘%s’ não é permitido para -%c; valores permitidos são:\\n\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"%s: ‘%s’ não é permitido para %s%s; valores permitidos são:\\n\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"Parâmetro extra na linha de comando: ‘%s’.\\n\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"%s: linha %d: erro ao analisar o arquivo de configuração: %s\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"estouro de tamanho da string\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\"'clevis_luks_unlock', necessário para descriptografar %s, está indisponível \"\n\"nesta versão do libguestfs\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\"não foi possível encontrar chave para abrir %s criptografado com LUKS.\\n\"\n\"\\n\"\n\"Tente usar --key na linha de comando.\\n\"\n\"\\n\"\n\"Erro original: %s (%d)\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\"%s: nenhum sistema operacional foi encontrado neste disco\\n\"\n\"\\n\"\n\"Se estiver usando a opção '-i' do guestfish, remova-a e use os\\n\"\n\"comandos 'run' seguido de 'list-filesystems'.\\n\"\n\"Você poderá então montar os sistemas de arquivos desejados\\n\"\n\"manualmente usando o comando 'mount' ou 'mount-ro'.\\n\"\n\"\\n\"\n\"Se estiver usando a opção '-i' do guestmount, remova-a e escolha\\n\"\n\"os sistemas de arquivos que deseja visualizar adicionando\\n\"\n\"manualmente a(s) opção(ões) '-m'. Use 'virt-filesystems'\\n\"\n\"para ver quais sistemas de arquivos estão disponíveis.\\n\"\n\"\\n\"\n\"Se estiver usando outras ferramentas de virtualização,\\n\"\n\"esta imagem de disco não funcionará com elas. Use os comandos\\n\"\n\"equivalentes do guestfish (consulte a página man da ferramenta\\n\"\n\"de virtualização).\\n\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\"%s: sem suporte a sistemas operacionais com multi-inicialização\\n\"\n\"\\n\"\n\"Se estiver usando a opção '-i' do guestfish, remova-a e use os\\n\"\n\"comandos 'run' seguido de 'list-filesystems'. Você poderá então\\n\"\n\"montar os sistemas de arquivos desejados manualmente usando\\n\"\n\"o comando 'mount' ou 'mount-ro'.\\n\"\n\"\\n\"\n\"Se estiver usando a opção '-i' do guestmount, remova-a e escolha\\n\"\n\"os sistemas de arquivos que deseja visualizar adicionando\\n\"\n\"manualmente a(s) opção(ões) '-m'. Use 'virt-filesystems'\\n\"\n\"para ver quais sistemas de arquivos estão disponíveis.\\n\"\n\"\\n\"\n\"Se estiver usando outras ferramentas de virtualização,\\n\"\n\"sistemas operacionais com inicialização múltipla não funcionarão\\n\"\n\"com essas ferramentas. Use os comandos equivalentes do guestfish\\n\"\n\"(consulte a página do manual da ferramenta de virtualização).\\n\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"%s: alguns sistemas de arquivos não puderam ser montados (ignorado)\\n\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"Sistema operacional: %s\\n\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"%s montado em %s\\n\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"Insira a chave ou senha (\\\"%s\\\"): \"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"estouro de size_t\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"não foi possível ler a chave do usuário\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"%s: ‘%s’ não pôde ser montado.\\n\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\"%s: Consulte a página man mount(8) para garantir que as opções ‘%s’\\n\"\n\"%s: seja compatíveis com o sistema de arquivos que está sendo montado.\\n\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"%s: Você pretendia montar um desses sistemas de arquivos?\\n\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"não foi possível determinar o subvolume de %s: %s (%d)\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"%s: --add: não foi possível analisar a URI ‘%s’\\n\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"%s: %s: esquema de URI é NULL ou vazia\\n\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\"%s: %s: não é possível ter simultaneamente um nome de servidor e um \"\n\"parâmetro de consulta de socket\\n\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"%s saiu com sucesso\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"%s saiu com status de erro %d\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"%s morto pelo sinal %d (%s)\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"%s parado pelo sinal %d (%s)\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"%s saiu por um motivo desconhecido (status %d)\"\n\n#~ msgid \"\"\n#~ \"ssh-agent authentication has not been set up ($SSH_AUTH_SOCK is not \"\n#~ \"set).  This is required by qemu to do passwordless ssh access.  See the \"\n#~ \"virt-v2v(1) man page for more information.\"\n#~ msgstr \"\"\n#~ \"A autenticação do ssh-agent não foi configurada ($SSH_AUTH_SOCK não está \"\n#~ \"definido). Isso é necessário para que o qemu permita acesso ssh sem \"\n#~ \"senha. Consulte a página de manual virt-v2v(1) para obter mais \"\n#~ \"informações.\"\n"
  },
  {
    "path": "po/ru.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: ru\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && \"\n\"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\nmsgstr[2] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\nmsgstr[2] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/si.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 1.43.3\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: si\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n > 1;\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/ta.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: ta\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/te.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: te\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/tg.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: tg\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n > 1;\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/uk.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the PACKAGE package.\n#\n# Translators:\n# Yuri Chornoivan <yurchor@ukr.net>, 2011-2014\n# Yuri Chornoivan <yurchor@ukr.net>, 2013\n# Yuri Chornoivan <yurchor@ukr.net>, 2015. #zanata\n# Yuri Chornoivan <yurchor@ukr.net>, 2016. #zanata\n# Yuri Chornoivan <yurchor@ukr.net>, 2017. #zanata\n# Yuri Chornoivan <yurchor@ukr.net>, 2018. #zanata\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: 2026-02-19 19:39+0000\\n\"\n\"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\\n\"\n\"Language-Team: Ukrainian <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-master/uk/>\\n\"\n\"Language: uk\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && \"\n\"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\\n\"\n\"X-Generator: Weblate 5.16\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"%s\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\"%s\\n\"\n\"Параметри:\\n\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"%s (проігноровано)\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"%s не повернуто жодних даних\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"%s не існує у гостьовій системі\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\"%s не існує або не є каталогом.\\n\"\n\"\\n\"\n\"Найімовірніша причина: %s (%s) не було долучено до жодного Data Center або \"\n\"шлях %s взагалі не є %s.\\n\"\n\"\\n\"\n\"Спочатку вам слід долучити %s до Data Center за допомогою інтерфейсу \"\n\"користувача OVirt.\\n\"\n\"\\n\"\n\"Якщо вам не вдається встановити, якою має бути точка монтування %s, ви \"\n\"можете скористатися для цього інтерфейсом користувача OVirt.\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"%s проігноровано для відмінної від Windows гостьової системи\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"%s не є звичайним файлом у гостьовій системі\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"у командному рядку параметр %s використано декілька разів\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"%s: %s\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"%s: %s: %s\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\"%s: вихід за сигналом %s\\n\"\n\"%!\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"%s: не вдалося відкрити файл ISO virtio-win: %s\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"%s: виконання команди завершилося повідомленням про помилку\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\"%s: перетворити гостьову систему для використання з KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenterexample.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"Передбачено супутню програму з назвою «virt-p2v, яка постачається у форматі\\n\"\n\"образу ISO або компакт-диска, який можна завантажити на фізичній машині.\\n\"\n\"\\n\"\n\"Коротке резюме щодо параметрів наведено нижче. Докладний опис можна знайти \"\n\"на\\n\"\n\"сторінці підручника virt-v2v(1).\\n\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\"%s: виконати перетворення гостьової системи для використання у KVM «на \"\n\"місці»\\n\"\n\"\\n\"\n\"Зауважте, що ця програма змінює гостьову систему на місці без резервного \"\n\"копіювання.\\n\"\n\"Зазвичай, краще скористатися virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml гостьовий-домен.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk диск.img\\n\"\n\"\\n\"\n\"Нижче наведено коротке резюме щодо параметрів. Докладніший опис\\n\"\n\"можна знайти на сторінці man virt-v2v-in-place(1).\\n\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"%s: введіть пароль до «%s»: \"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"%s: помилка: %s\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\"%s: оцінка потрібного місця на диску до перетворення virt-v2v\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk диск.img [-O результат.xml]\\n\"\n\"\\n\"\n\"Нижче наведено коротке резюме щодо параметрів. Докладні довідкові дані\\n\"\n\"можна знайти на сторінці підручника (man) з virt-v2v-inspector(1).\\n\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\"%s: відкрити канал вхідних даних virt-v2v і запустити у ньому програму\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"Нижче наведено коротке резюме щодо параметрів. Докладні довідкові дані\\n\"\n\"можна знайти на сторінці підручника (man) з virt-v2v-open(1).\\n\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"%s: перевищено час виконання дії\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\"%s: непідтримуваний формат файлів\\n\"\n\"\\n\"\n\"У поточній версії передбачено підтримку таких форматів для «-i ova»: \"\n\"нестиснений tar (нестиснений, стиснений за допомогою gzip або xz), zip\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"%s: попередження: %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"'КОМАНДА+ПАРАМЕТРИ'\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\"--append-line: рядок не повинен містити символів розриву рядка. \"\n\"Скористайтеся параметром --append-line потрібну кількість разів, щоб додати \"\n\"декілька рядків.\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"--chown: не вдалося визначити числові значення UID:GID на основі %s:%s\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\"--inject-blnsvr: blnsvr.exe не знайдено у вказаному вами джерелі virtio-win\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\"--inject-qemu-ga: не знайдено MSI гостьового агента QEMU у вказаному вами \"\n\"джерелі virtio-win\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\"--inject-virtio-win: не знайдено драйверів virtio для цієї версії Windows у \"\n\"вказаному вами джерелі virtio-win\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\"поле довжини префікса IP-адреси --mac лежить поза припустимим діапазоном\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"параметр --parallel має бути >= 1\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\"-i disk: у командному рядку мало бути вказано образ диска (назва файла)\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\"-i libvirt: мало бути вказано параметр -ic для з'єднання із Xen з \"\n\"використанням SSH\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\"-i libvirt: мало бути вказано параметр -ic для встановлення з'єднання vcenter\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"-i libvirt: параметр -ic має містити назву сервера vcenter\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\"-i libvirt: мало бути вказано параметр -ip файл_пароля для встановлення \"\n\"з'єднання vCenter\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\"-i libvirt: у командному рядку мало бути вказано назву гостьової системи \"\n\"libvirt\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\"-i libvirtxml: у командному рядку мало бути вказано назву файла XML libvirt\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"-i ova: файл посилань OVF «%s», якого не було знайдено в архіві OVA\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\"-i ova: пошкоджений OVA: контрольна сума диска %s не відповідає маніфесту \"\n\"(маємо %s, мало бути %s)\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"-i ova: у командному рядку мало бути вказано назву файла OVA\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\"-i ova: некоректний файл OVA: шлях «%s» посилається на файл поза архівом\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"-i vmx: не можна використовувати -it vddk у цьому режимі вхідних даних\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"-i vmx: мало бути вказано файл VMX або адресу ssh://\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\"параметр -ip ФАЙЛ_ПАРОЛЯ проігноровано, оскільки у адресі не вказано частини \"\n\"«користувач@»\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"-it vddk: «-io %s» не є коректним параметром вхідних даних\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\"-o %s: параметр %s не можна використовувати у цьому режимі виведення даних\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\"-o disk: не вказано каталогу для виведення даних, скористайтеся «-os /\"\n\"каталог»\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"-o disk: невідомий параметр виведення — «-oo %s»\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\"-o kubevirt: не вказано каталогу для виведення даних, скористайтеся «-os /\"\n\"каталог»\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\"-o kubevirt: назва гостьової системи має складатися лише літер нижчого \"\n\"регістру, цифр і символів «-» або «.» і має починатися і завершуватися \"\n\"літерою або цифрою. Повторно запустіть з параметром «-on назва», щоб \"\n\"перейменувати її.\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"-o kubevirt: невідомий параметр виведення — «-oo %s»\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\"-o libvirt: у буфері виведення «%s» немає елемента /pool/target/path. Див. \"\n\"virt-v2v-output-local(1)\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\"-o libvirt: буфер виведення «%s» належить до типу «dir», але елемент /pool/\"\n\"target/path не є локальним каталогом. Див. virt-v2v-output-local(1)\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\"-o libvirt: буфер виведення «%s» не є каталогом (type='dir'). Див. virt-v2v-\"\n\"output-local(1)\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"у режимі -o openstack передбачено підтримку лише -oa sparse -of raw\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"-o openstack: невідомий параметр виведення — «-oo %s»\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"-o ovirt-upload: -oo ovirt-cafile встановлено декілька разів\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"-o ovirt-upload: -oo ovirt-cluster встановлено декілька разів\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"-o ovirt-upload: некоректне значення UUID для -oo ovirt-disk-uuid\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\"-o ovirt-upload: файл пароля введення не вказано, скористайтеся «-op», що \"\n\"вказати файл, який містить пароль, який буде використано для встановлення \"\n\"з'єднання із сервером oVirt\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"-ovirt-upload: не вказано сховище виведення даних, скористайтеся «-os»\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"-o ovirt-upload: невідомий параметр виведення «-oo %s»\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\"-o ovirt-upload: скористайтеся «-oc», щоб вказати адресу програмного \"\n\"інтерфейсу REST сервера oVirt. Зазвичай, такою адресою є https://\"\n\"назва_сервера/ovirt-engine/api\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"-o ovirt: не вказано параметр -os\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\"-o qemu: не вказано каталогу для виведення даних, скористайтеся «-os /\"\n\"каталог»\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"-o qemu: невідомий параметр виведення — «-oo %s»\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"-o vdsm: не вказано --oo vdsm-image-uuid\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"-o vdsm: -oo vdsm-ovf-output встановлено декілька разів\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"-o vdsm: -oo vdsm-vm-uuid встановлено декілька разів\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"-o vdsm: не було вказано параметр -os\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"-o vdsm: не вказано -oo vdsm-vol-uuid або -oo vdsm-vm-uuid\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"-o vdsm: невідомий параметр виведення — «-oo %s»\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"-o vdsm: невідомий рівень vdsm-compat «%s»\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"-os %s: каталогу виведення даних не існує або вказано не каталог\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"у <checksum> пропущено атрибут «method», ігноруємо\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"невідомий атрибут <checksum> fail='%s', ігноруємо\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"<disk type='%s'> проігноровано\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"<disk type='network'> з <source protocol='%s'> проігноровано\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"<disk type='volume'> з <volume type='%s'> проігноровано\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"проігноровано елемент <disk> без атрибута типу (type)\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"<listen type='%s'> у вхідних даних XML libvirt було проігноровано\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\"<target dev='%s'> було проігноровано, оскільки не вдалося визначити назву \"\n\"пристрою\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\"У даних, які виведено «virsh dumpxml \\\"%s\\\"» не виявлено <vmware:moref>. \"\n\"Найімовірнішою причиною є те, що встановлена версія libvirt є застарілою. \"\n\"Спробуйте оновити libvirt до ≥ 3.7.\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"Додати пакунки для встановлення\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"Додати пакунки для встановлення під час першого завантаження\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"Дописати рядки до файла\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"Дописуємо рядок до %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"Змінити ідентифікатор користувача і групи власника файла або каталогу\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"Змінити права доступу до файла\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"Змінюємо власника %s на %d:%d\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"Зміна прав доступу до %s на %s\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"Перевіряємо суму %s диска %d з %d\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"Параметр сумісності ні на що не впливає\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"Копіювати файли на образ диска\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"Копіювати локальні файли або каталоги з архіву tar до образу\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"Копіювати локальні файли або каталоги до образу\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"Копіюємо (на образ): %s у %s\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"Копіювання диска %d з %d\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"Копіюємо %s до %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"Створити каталог\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"Створювати символічні посилання\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"Створюємо метадані результатів\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"КАТАЛОГ\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"Вилучити файл або каталог\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"Вилучаємо: %s\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"Показати коротку довідку\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"Вивести версію та вийти\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"Не змінити мітки файлів на коректні мітки SELinux\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"Не виводити повідомлень щодо поступу\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"Не вимикати луна-повторення у паролях\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"Редагувати файл за допомогою виразу Perl\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"Редагування: %s\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"Увімкнути діагностичні повідомлення libguestfs\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"Увімкнути трасування викликів libguestfs\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"Експортувати домен сховища\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"Зовнішня команда\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"ФАЙЛ\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"ФАЙЛ:ВМІСТ\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"ФАЙЛ:ПРИЗНАЧЕННЯ\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"ФАЙЛ:ВИРАЗ\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"ФАЙЛ:РЯДОК\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"НАЗВА_ФАЙЛА\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"Завершуємо\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"НАЗВА_ВУЗЛА\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"Як вибрати кореневу файлову систему\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\"Якщо звітуєте про вади, запустіть %s з увімкненою діагностикою і включіть \"\n\"виведені дані повністю:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"Вставити відкритий ключ до гостьової системи\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"Вставити Balloon Server до гостьової системи Windows\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"Вставити агент гостьової системи QEMU до гостьової системи Windows\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"Вставити драйвери virtio-win до гостьової системи Windows\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"Формат вхідних даних\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\"Параметри вхідних даних (-io), якими можна скористатися за допомогою -it \"\n\"vddk (усі інші параметри є необов'язковими):\\n\"\n\"\\n\"\n\"  -io vddk-config=ФАЙЛ         файл налаштувань VDDK\\n\"\n\"  -io vddk-cookie=КУКА         кука VDDK\\n\"\n\"  -io vddk-libdir=КАТ_БІБ      батьківський каталог бібліотек VDDK\\n\"\n\"  -io vddk-nfchostport=ПОРТ    nfchostport VDDK\\n\"\n\"  -io vddk-file=ФАЙД           перевизначити параметр nbdkit-vddk-plugin \"\n\"file=\\n\"\n\"  -io vddk-port=ПОРТ           порт VDDK\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               moref знімка VDDK\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               відбиток сервера VDDK\\n\"\n\"  -io vddk-transports=РЕЖИМ:РЕЖИМ:..\\n\"\n\"                               способи передавання даних VDDK\\n\"\n\"\\n\"\n\"Зверніться до документації з nbdkit-vddk-plugin(1) та VDDK, щоб дізнатися \"\n\"більше\\n\"\n\"про ці параметри.\\n\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"Вхідне передавання\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"Встановлюємо програму firstboot: %s\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"Встановлюємо пакунки firstboot: %s\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"Встановлюємо скрипт firstboot: %s\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"Встановлюємо пакунки: %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"ЛОКАЛЬНИЙШЛЯХ:ВІДДАЛЕНИЙКАТАЛОГ\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"Адреса libvirt\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"Компонування: %s -> %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"МЕТОД\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"Зробити машину виведення придатною до читання\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"Створюємо каталог: %s\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\"Пов'язати NIC із мережею або містком чи пов'язати із ним статичну IP-адресу\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"Відобразити місток «in» на «out»\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"Пов'язати мережу «in» із мережею «out»\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"Пересунути файли на образ диска\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"Пересуваємо: %s -> %s\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"У цьому режимі не можна використовувати параметри вхідних даних.\\n\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"У цьому режимі не можна використовувати параметри виведення.\\n\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"Каталогу OVF (метаданих) (%s) не існує або це не каталог\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\"На «%s» не знайдено хоча б одного з файлів rhsrvany.exe або pvvxsvc.exe. \"\n\"Один із цих файлів потрібен для встановлення скриптів першого завантаження \"\n\"Windows. Отримати цей файл можна зібравши rhsrvany (https://github.com/\"\n\"rwmjones/rhsrvany).\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"Вивести з'єднання гіпервізора\"\n\n#: output/output_ovirt_upload.ml:51\n#, fuzzy\n#| msgid \"\"\n#| \"Output options (-oo) which can be used with -o rhv-upload:\\n\"\n#| \"\\n\"\n#| \"  -oo rhv-cafile=CA.PEM         Set ‘ca.pem’ certificate bundle \"\n#| \"filename.\\n\"\n#| \"  -oo rhv-cluster=CLUSTERNAME   Set RHV cluster name.\\n\"\n#| \"  -oo rhv-proxy                 Connect via oVirt Engine proxy (default: \"\n#| \"false).\\n\"\n#| \"  -oo rhv-verifypeer[=true|false] Verify server identity (default: \"\n#| \"false).\\n\"\n#| \"\\n\"\n#| \"You can override the UUIDs of the disks, instead of using autogenerated \"\n#| \"UUIDs\\n\"\n#| \"after their uploads (if you do, you must supply one for each disk):\\n\"\n#| \"\\n\"\n#| \"  -oo rhv-disk-uuid=UUID          Disk UUID\\n\"\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\"Параметри виведення (-oo), якими можна скористатися із -o rhv-upload:\\n\"\n\"\\n\"\n\"  -oo rhv-cafile=CA.PEM           Встановити назву файла комплекту \"\n\"сертифіката «ca.pem».\\n\"\n\"  -oo rhv-cluster=НАЗВА_КЛАСТЕРА  Встановити назву кластера RHV.\\n\"\n\"  -oo rhv-proxy                 Встановити з'єднання з використанням проксі \"\n\"oVirt Engine (типове значення: false).\\n\"\n\"  -oo rhv-verifypeer[=true|false] Перевіряти ідентичність сервера (типово: \"\n\"false).\\n\"\n\"\\n\"\n\"Ви можете перевизначити UUID дисків, замість використання автоматично \"\n\"створених UUID\\n\"\n\"після їхнього вивантаження (якщо ви зробите це, вам слід вказати один для \"\n\"кожного диска):\\n\"\n\"\\n\"\n\"  -oo rhv-disk-uuid=UUID          UUID диска\\n\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\"Параметри виведення (-oo), якими можна скористатися із -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      стиснути файл виведених даних (можна використовувати \"\n\"лише з -of qcow2)\\n\"\n\"  -oo qemu-boot       завантажити гостьову систему до qemu після \"\n\"перетворення\\n\"\n\n#: output/output_vdsm.ml:43\n#, fuzzy\n#| msgid \"\"\n#| \"Output options (-oo) which can be used with -o vdsm:\\n\"\n#| \"\\n\"\n#| \"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n#| \"                                   (default: 0.10)\\n\"\n#| \"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n#| \"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n#| \"  -oo vdsm-ovf-flavour=%s\\n\"\n#| \"                               Set the type of generated OVF (default: \"\n#| \"rhvexp)\\n\"\n#| \"\\n\"\n#| \"For each disk you must supply one of each of these options:\\n\"\n#| \"\\n\"\n#| \"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n#| \"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\"Параметри виведення (-oo), якими можна скористатися з -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Записати qcow2 з compat=0.10|1.1\\n\"\n\"                                   (типово: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        UUID ВМ (обов'язковий)\\n\"\n\"  -oo vdsm-ovf-output=КАТАЛОГ  каталог метаданих OVF (обов'язковий)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Встановити тип створеного OVF (типово: \"\n\"rhvexp)\\n\"\n\"\\n\"\n\"Для кожного диска вам слід вказати один з таких параметрів:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     UUID каталогу образу\\n\"\n\"  -oo vdsm-vol-uuid=UUID       UUID тому диска\\n\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\"Параметри виведення, якими можна скористатися з -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      стиснути файл виведення (можна використовувати лише з \"\n\"-of qcow2)\\n\"\n\n#: output/output_kubevirt.ml:51\n#, fuzzy\n#| msgid \"\"\n#| \"Output options (-oo) which can be used with -o qemu:\\n\"\n#| \"\\n\"\n#| \"  -oo compressed      Compress the output file (used only with -of \"\n#| \"qcow2)\\n\"\n#| \"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\"Параметри виведення (-oo), якими можна скористатися із -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      стиснути файл виведених даних (можна використовувати \"\n\"лише з -of qcow2)\\n\"\n\"  -oo qemu-boot       завантажити гостьову систему до qemu після \"\n\"перетворення\\n\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\"Параметри виведення, якими можна скористатися з -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      стиснути файл виведення (можна використовувати лише з \"\n\"-of qcow2)\\n\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"ШЛЯХ\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"ПРАВА_ДОСТУПУ:ФАЙЛ\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"ПАКУНОК,ПАКУНОК..\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"Перевага «virtio-blk» або «virtio-scsi»\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"Вивести джерело і припинити обробку\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"Прочитати команди налаштовування з файла\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"Читати паролі зі стандартного введення (stdin)\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"Рекурсивно обрізати усі файли у каталозі\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"Рекурсивно обрізаємо: %s\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"Перейменувати гостьову систему під час перетворення\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"Виконати команду під час першого завантаження гостьової системи\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"Виконати команду у образі диска\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"Виконати скрипт під час першого завантаження гостьової системи\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"Виконати скрипт у образі диска\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"Обробити файл за допомогою touch\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"Запускати паралельно до N екземплярів nbdcopy\"\n\n#: open/open.ml:188\n#, fuzzy\n#| msgid \"external command\"\nmsgid \"Running external command\"\nmsgstr \"зовнішня команда\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"Виконуємо touch: %s\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"Виконуємо: %s\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"СКРИПТ\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"СЕЛЕКТОР\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"Зміна міток SELinux\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"ДЖЕРЕЛО:ПРИЗНАЧЕННЯ\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"Ключ SSH не можна вставляти до цього типу гостьових систем\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"Вставлення ключа SSH: %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"Витерти файл\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"Витерти файл журналу збирання\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"Витираємо файл журналу\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"Витираємо: %s\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"Встановити ширину каналу динамічно з файла\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"Встановити ширину каналу у бітах за секунду\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"Встановити режим введення даних (типовий: libvirt)\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"Встановити варіант для режиму вхідних даних\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"Встановити варіант для режиму виведення\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"Встановити режим отримання пам’яті для виведення даних\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"встановити формат виведення даних\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"Встановити режим виведення (типовий: libvirt)\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"Встановити розташування сховища виведених даних\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"Встановити алгоритм шифрування пароля\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"Встановити назву програми\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"Встановити пароль root\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"Встановити типовий часовий пояс\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"Встановити назву вузла\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"Встановити назву файла результатів\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"Встановити пароль користувача\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"Встановлюємо базу випадковості\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"Встановлення паролів\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"Встановлюємо випадковий пароль %s у значення %s\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"Встановлюємо назву вузла: %s\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"Встановлюємо ідентифікатор комп'ютера у %s\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"Встановлюємо часовий пояс: %s\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"Налаштовуємо призначення: %s\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"Налаштовуємо джерело: %s\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"Дані щодо гостьової системи джерела (параметр --print-source):\\n\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"Вказати ключ LUKS\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"ФАЙЛTAR:ВІДДАЛЕНИЙКАТАЛОГ\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"ПРИЗНАЧЕННЯ:ПОСИЛАННЯ[:ПОСИЛАННЯ..]\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"ЧАСОВИЙ_ПОЯС\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"Параметр --in-place замінено на програму «virt-v2v-in-place»\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\"У віртуальній машині не передбачено підтримки комплексних середовищ \"\n\"розробки. Будь ласка, повідомте про ваду у virt-v2v — скористайтеся розділом \"\n\"«BUGS» сторінки підручника virt-v2v(1).\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\"У віртуальній машині не передбачено підтримки дискет. Будь ласка, повідомте \"\n\"про ваду у virt-v2v — скористайтеся розділом «BUGS» сторінки підручника virt-\"\n\"v2v(1).\"\n\n#: lib/create_ovf.ml:785\n#, fuzzy\n#| msgid \"\"\n#| \"This guest required a password for connection to its display, but this is \"\n#| \"not supported by RHV.  Therefore the converted guest’s display will not \"\n#| \"require a separate password to connect.\"\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\"Для з’єднання з дисплеєм цієї гостьової системи слід вказати пароль, але \"\n\"передавання паролів не передбачено у RHV. Тому перетворений дисплей \"\n\"гостьової системи не вимагатиме окремого пароля для встановлення з’єднання.\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\"Для цього каналу передавання даних не передбачено підтримки гостьових систем \"\n\"зі знімками. Або згорніть усі знімки для цієї гостьової системи і повторіть \"\n\"спробу перетворення, або скористайтеся альтернативними способами \"\n\"перетворення, які описано у підручнику з virt-v2v-input-vmware(1), розділ \"\n\"«ПРИМІТКИ».\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"Обрізати файл до нульового розміру\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"Обрізаємо: %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"UID:GID:ШЛЯХ\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"КОРИСТУВАЧ:ВАРІАНТ\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"КОРИСТУВАЧ[:СЕЛЕКТОР]\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"Вилучити пакунки\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"Вилучаємо пакунки: %s\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"Розпаковування файла tar: %s до %s\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"Оновити пакунки\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"Оновлюємо пакунки\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"Вивантажити локальний файл у систему призначення\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"Вивантажуємо: %s до %s\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"Використовувати послідовності ANSI для кольорів, навіть якщо це не tty\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"Скористатися паролем з файла для з'єднання із вхідним гіпервізором\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"Скористатися паролем з файла для з'єднання із вихідним гіпервізором\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"Скористайтеся краще virt-v2v-in-place\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"Переносити рядки повідомлень журналу, навіть якщо це не tty\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"Записати файл\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"Записуємо: %s\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\"Блок YAML містить символ розриву рядка. Такого не мало трапитися. Будь \"\n\"ласка, повідомте про цю ваду у virt-v2v.\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\"у системі призначення вже є домен libvirt із назвою «%s».\\n\"\n\"\\n\"\n\"Якщо використовуєте virt-v2v безпосередньо, скористайтеся параметром «-on» \"\n\"для вибору іншої назви. Ви також можете вилучити наявний домен у системі \"\n\"призначення за допомогою команди «virsh undefine».\\n\"\n\"\\n\"\n\"Якщо використовуєте virt-p2v, виберіть інше значення «Назва» у «Властивостях \"\n\"цілі». Ви також можете вилучити наявний домен у системі призначення за \"\n\"допомогою команди «virsh undefine».\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"append_line: %s не є файлом\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\"Помилкова контрольна сума для диска %dз %d\\n\"\n\"Очікувана контрольна сума: %s\\n\"\n\"Справжня контрольна сума: %s\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"не вдалося знайти домен libvirt «%s»: %s\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\"не вдалося знайти буфер libvirt «%s»: %s\\n\"\n\"\\n\"\n\"Скористайтеся командою «virsh pool-list --all», щоб переглянути список усіх \"\n\"доступних буферів, або командою «virsh pool-dumpxml <буфер>», щоб \"\n\"переглянути параметри певного буфера.\\n\"\n\"\\n\"\n\"Щоб встановити буфер, який використовуватиме virt-v2v, додайте параметр «-os \"\n\"<буфер>».\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"не вдалося знайти том libvirt «%s»: %s\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\"не вдалося завершити встановлення firstboot запуском «%s», оскільки процесор \"\n\"основної системи (%s) та архітектура гостьової системи (%s) є несумісними. \"\n\"Служба firstboot може не запуститися під час завантаження.\"\n\n#: output/output_libvirt.ml:180\n#, fuzzy\n#| msgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"не вдалося отримати список можливостей гіпервізора libvirt: %s\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"не вдалося отримати список можливостей гіпервізора libvirt: %s\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"не вдалося обробити параметр --mac \\\"%s\\\"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"Не вдалося обробити --mac ip %s: здається, «%s» не є IP-адресою\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"не вдалося обробити поле довжини префікса --mac ip як ціле число: %s\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\"не вдалося скористатися «%s», оскільки для цієї гостьової системи не було \"\n\"виявлено засобу для керування пакунками.\\n\"\n\"\\n\"\n\"Якщо ця гостьова система є типовою зі звичайним керуванням пакунками, \"\n\"причиною можуть бути проблеми із виявленням у libguestfs.\\n\"\n\"\\n\"\n\"Для операційних систем, подібних до Windows, де немає керування пакунками, \"\n\"це неможливо. Спробуйте натомість скористатися прапорцями «--firstboot*» (їх \"\n\"описано на сторінці підручника щодо virt-customize(1)).\"\n\n#: output/output_ovirt.ml:91\n#, fuzzy\n#| msgid \"\"\n#| \"cannot write files to the NFS server as %d:%d, even though we appear to \"\n#| \"be running as root. This probably means the NFS client or idmapd is not \"\n#| \"configured properly.\\n\"\n#| \"\\n\"\n#| \"You will have to chown the files that virt-v2v creates after the run, \"\n#| \"otherwise RHV-M will not be able to import the VM.\"\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\"запис файлів на сервер NFS неможливий від імені %d:%d, хоча програма і \"\n\"працювала від імені користувача root. Це, ймовірно, означає, що клієнт NFS \"\n\"або idmapd налаштовано неналежним чином.\\n\"\n\"\\n\"\n\"Вам доведеться змінити власника файлів, які virt-v2v створює після запуску, \"\n\"інакше RHV-M не зможе імпортувати віртуальну машину.\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\"запис файлів на сервер NFS від імені %d:%d неможливий. Вам варто зупинити \"\n\"роботу virt-v2v (^C), а потім повторно запустити програму від імені \"\n\"користувача root.\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\"у командних файлах не можна використовувати команду «%s», див. сторінку man\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"команда «%s» є некоректною, див. сторінку man\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"не вдалося додати послідовну консоль grub2 (проігноровано)\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\"не вдалося скопіювати файл VMX з віддаленого сервера; див. попередні \"\n\"повідомлення про помилки\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\"не вдалося визначити домен libvirt: %s.\\n\"\n\"XML libvirt все ще доступний у «%s». Спробуйте замість цього віддати команду \"\n\"«virsh -c %s define %s».\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"не вдалося визначити спосіб оновлення налаштувань Grub2\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"не вдалося виявити точки монтування завантажувача (%s): %s\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\"не вдалося знайти запис реєстру \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds у цій гостьовій \"\n\"системі Windows. Це може бути або дуже давня або дуже нова версія Windows, з \"\n\"якою ми не можемо працювати.\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\"не вдалося завершити встановлення firstboot за допомогою команди «%s», \"\n\"оскільки виконання цієї команди завершилося повідомленням про помилку: %s\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\"не вдалося обробити параметр «-ic %s». Початкове повідомлення щодо помилки: \"\n\"%s\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"не вдалося обробити назву пристрою «%s» XML libvirt джерела\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"не вдалося обробити значення rasd:HostResource диска з документа OVF\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"не вдалося обробити значення ovf:Name з документа OVF\"\n\n#: output/output_ovirt.ml:247\n#, fuzzy\n#| msgid \"\"\n#| \"could not read the %s specified by the '-os %s' parameter on the command \"\n#| \"line.  Is it really an OVirt or RHV-M %s?  The original error is: %s\"\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\"не вдалося прочитати %s, вказаний за допомогою параметра «-os %s» у \"\n\"командному рядку. Чи справді це %s OVirt або RHV-M? Початкове повідомлення \"\n\"щодо помилки: %s\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\"не вдалося перебудувати файл налаштувань grub2 (%s). Це може значити, що \"\n\"виведені grub дані не буде надіслано до послідовного порту, але, окрім \"\n\"цього, не зашкодить. Початкове повідомлення щодо помилки: %s\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"не вдалося оновити буфер libvirt «%s»: %s\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"не вдалося вилучити послідовну консоль grub2 (проігноровано)\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\"decode_utf16le: рядок Windows UTF16-LE містить символи, які не є 7-бітовими. \"\n\"Це вада у %s. Будь ласка, повідомте про неї розробникам.\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\"decode_utf16le: рядок Windows, здається, не містить даних у кодуванні UTF16-\"\n\"LE. Ймовірно, це вада у %s.\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"не знайдено запис grub для ядра %s\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"диски у командному рядку мають мішані формати\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"дисплей <graphics type='%s'> у вхідному XML libvirt проігноровано\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"спосіб перетворення гостьових систем UEFI для архітектури %s невідомий\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\"спосіб отримання даних щодо власника файла за допомогою %s є невідомим \"\n\"програмі\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\"спосіб отримання списку файлів з пакунка за допомогою %s невідомий програмі\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"отримуємо %s\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\"дублювання параметра --mac. Вказано дублікати прив'язок для MAC-адреси %s.\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\"дублювання параметра -b/--bridge. Вказано дублікати прив'язок для містка %s.\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"дублювання параметра -b/--bridge. Можлива лише одна типова прив’язка.\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\"дублювання параметра -n/--network. Вказано повторну прив’язку для мережі %s.\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"дублювання параметра -n/--network. Можлива лише одна типова прив’язка.\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"помилка під час спроби обробити fileRef диска\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\"помилка під час розпаковування %s, див. попередні повідомлення щодо помилок\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\"помилка під час розпаковування %s, див. попередні повідомлення щодо помилок\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"виключення: %s\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"завершено роботу з помилкою %d\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"завершено роботу з ненульовим кодом виходу %d\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"у рядку команди мало бути >= 1 назви диска\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\"очікуємо, що вираз XML поверне ціле число (вираз: %s, відповідний рядок: %s)\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"зовнішня команда\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\"не пройдено попередніх перевірок сервера; див. попередні повідомлення про \"\n\"помилки\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\"не вдалося створити віртуальну машину; див. попередні повідомлення про \"\n\"помилки\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\"не вдалося завершити перенесення; див. попередні повідомлення про помилки\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\"не вдалося знайти виконуваний файл grub2-mkconfig (втім, на гостьовій \"\n\"системі виявлено Grub2)\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"не вдалося обробити рядок, який повернуто tar: %S\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\"не вдалося розпочати перенесення; див. попередні повідомлення про помилки\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\"не вдалося пройти перевірки віртуальної машини; див. попередні повідомлення \"\n\"про помилки\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"помилка: %s\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"файл «%s» не знайдено в ova\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\"firstboot: невідома версія старого файла firstboot.service %s (md5=%s), його \"\n\"не буде вилучено\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"створено за допомогою %s %s\"\n\n#: output/create_libvirt_xml.ml:39\n#, fuzzy\n#| msgid \"get_osinfo_id: unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\"get_osinfo_id: невідома гостьова операційна система: %s %s %d.%d %s (%s)\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\"glance: клієнт glance не встановлено або не налаштовано належним чином. \"\n\"Ймовірно, вам слід встановити належні значення змінних середовища або \"\n\"створити скрипт для уможливлення розпізнавання. Див. попередні повідомлення, \"\n\"щоб дізнатися більше.\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\"glance: помилка вивантаження образу до glance, див. попередні повідомлення \"\n\"щодо помилок\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"підтримки типу гостьової системи %s не передбачено\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"підтримки типу гостьової системи %s/%s не передбачено\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\"основна система (%s/%s) і гостьова система (%s/%s) є несумісними, отже ви не \"\n\"можете скористатися параметрами командного рядка, зокрема запускати програми \"\n\"у гостьовій системі. Замість цього слід користуватися скриптами --firstboot.\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"для цього типу гостьових систем не можна встановлювати назви вузла\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"ігноруємо ядро %s у завантажувачі, оскільки його не існує.\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"каталогу образу (%s) не існує, або ж це не каталог\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\"у метаданих XML libvirt пропущено <domain type='...'> або вказано порожнє \"\n\"значення\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"у метаданих XML libvirt пропущено <name> або вказано порожнє значення\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"режим «на місці» не працює із джерелами HTTP\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"режим «на місці» не працює із джерелами VDDK\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"режим «на місці» не працює із джерелами VMX\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"режим «на місці» не працює із джерелами Xen з використанням SSH\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\"якщо використано вхідні дані з xen з ssh, не можна скористатися підтримкою \"\n\"дисків, які зберігаються на віддалених блокових пристроях. Див. підручник з \"\n\"virt-v2v-input-xen(1), розділ «Xen or ssh conversions from block devices».\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\"недостатньо вільного місця у тимчасовому каталозі сервера перетворення %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Або вивільніть місце у цьому каталозі, або встановіть значення для змінної \"\n\"середовища LIBGUESTFS_CACHEDIR так, щоб вона вказувала на інший каталог, де \"\n\"є понад 1 ГБ вільного місця.\\n\"\n\"\\n\"\n\"Також ознайомтеся із підручником з virt-v2v(1), розділ «Minimum free space \"\n\"check in the host» («Мінімальний розмір вільного місця у основній системі»).\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"внутрішня помилка: надіслано виключення Not_found\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"внутрішня помилка: помилка оцінки у %s, рядок %d, символ %d\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"внутрішня помилка: некоректний аргумент: %s\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\"внутрішня помилка: is_file_owned: програма dpkg не повернула ніяких даних\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\"внутрішня помилка: is_file_owned: неочікуване виведення від програми dpkg: %s\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"внутрішня помилка: формальний вираз не відповідає «%s»\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\"внутрішня помилка: wait повернуто неочікуваний для ідентифікатора процесу %d \"\n\"стан «%s»\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"некоректний параметр --mac ip\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"некоректний параметр -b/--bridge\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"некоректний параметр -n/--network\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\"некоректне значення cpuid.coresPerSocket < кількості віртуальних процесорів\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"некоректний формат параметра «--%s», див. сторінку підручника\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"некоректний рядок форматування для --machine-readable: %s\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"некоректна назва файла вхідних даних (%s)\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"tar повернуто некоректний відступ: %S\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"некоректне виведення fd для --machine-readable: %s\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"некоректне виведення для --machine-readable: %s\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"некоректне потік виведення для --machine-readable: %s\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"некоректний варіант пароля «%s»; див. сторінку man\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"tar повернуто некоректний розмір: %S\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"некоректний варіант ssh-inject «%s»; див. сторінку man\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"некоректне значення vmw:CoresPerSocket (%d) проігноровано\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"некоректне значення vmw:CoresPerSocket < кількості ядер\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"ядро %s перебуває поза ієрархією grub %s\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"припинено за допомогою сигналу %d\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"помилка libguestfs: %s\"\n\n#: lib/libvirt_utils.ml:72\n#, fuzzy\n#| msgid \"\"\n#| \"libvirt domain ‘%s’ is running or paused.  It must be shut down in order \"\n#| \"to perform virt-v2v conversion\"\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\"Домен libvirt «%s» працює або його призупинено. Роботу домену слід завершити \"\n\"для виконання перетворення virt-v2v\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"файл журналу %s: %s (проігноровано)\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\"робимо каталог OVA загальнодоступним для читання, щоб обійти ваду у libvirt: \"\n\"https://bugzilla.redhat.com/1045069\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"у маніфесті є контрольна сума файла, якого не існує %s (проігноровано)\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"md5|sha256|sha512\"\n\n#: common/mlcustomize/customize_run.ml:119\n#, fuzzy\n#| msgid \"guest type %s is not supported\"\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"підтримки типу гостьової системи %s не передбачено\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"немає значення для ключа «%s»\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"у %s виявлено декілька файлів .ovf\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"декілька значень для ключа «%s»\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\"помилка команди монтування, див. попередні повідомлення щодо помилки.\\n\"\n\"\\n\"\n\"Ймовірно, це означає, що вами не вказано належного шляху %s [-os %s]. Крім \"\n\"того, можливо, вам слід повторно запустити virt-v2v від імені користувача \"\n\"root.\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\"параметрами --root-password/--password двічі встановлено пароль для \"\n\"користувача «%s»\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\"Не встановлено додаток VDDK nbdkit або цей додаток є непрацездатним. Додаток \"\n\"потрібен для користування VDDK.\\n\"\n\"\\n\"\n\"Здається, ви вказали неправильний шлях за допомогою параметра «--io vddk-\"\n\"libdir» або ваша копію каталогу VDDK є неповною. У каталозі має бути \"\n\"бібліотека із назвою «<libdir>/%s/libvixDiskLib.so.?».\\n\"\n\"\\n\"\n\"Див. розділ «ВХІДНІ ДАНІ З VDDK» у підручнику з virt-v2v().\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\"Не встановлено додаток VDDK nbdkit або цей додаток є непрацездатним. Додаток \"\n\"потрібен для використання VDDK.\\n\"\n\"\\n\"\n\"Додаток VDDK типово вимкнено під час збирання nbdkit. Вам слід ознайомитися \"\n\"із настановами у початковому коді nbdkit, а саме, вмістом файла plugins/vddk/\"\n\"README.VDDK, щоб дізнатися про те, як увімкнути додаток VDDK.\\n\"\n\"\\n\"\n\"Див. також сторінку підручника virt-v2v-input-vmware(1).\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\"nbdkit не запустилася. Див. попередні діагностичні повідомлення, щоб виявити \"\n\"джерело проблеми.\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\"nbdkit не запустилася. Можливо, повідомлення про помилки nbdkit виведено \"\n\"вище.\\n\"\n\"\\n\"\n\"Якщо повідомлень, виведених вище, недостатньо для визначення причини \"\n\"проблеми, додайте параметри «virt-v2v -v -x» і уважно вивчіть виведені \"\n\"діагностичні дані.\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"nbdkit не встановлено або програма не працює\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\"Не встановлено nbdkit або програма не працює. Програма потрібна для \"\n\"використання «-i disk».\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\"Не встановлено nbdkit або програма не працює. Програма потрібна для \"\n\"використання «-i libvirt|libvirtxml».\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\"Не встановлено nbdkit або програма не працює. Програма потрібна для \"\n\"використання «-o disk».\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\"Не встановлено nbdkit або програма не працює. Програма потрібна для \"\n\"використання «-o null».\"\n\n#: output/output_ovirt_upload.ml:163\n#, fuzzy\n#| msgid \"\"\n#| \"nbdkit is not installed or not working.  It is required to use ‘-o rhv-\"\n#| \"upload’.  See the virt-v2v-output-rhv(1) manual.\"\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\"Не встановлено nbdkit або програма не працює. Програма потрібна для \"\n\"використання «-o rhv-upload». Див. підручник virt-v2v-output-rhv(1).\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\n#, fuzzy\n#| msgid \"\"\n#| \"nbdkit python plugin is not installed or not working.  It is required if \"\n#| \"you want to use ‘-o rhv-upload’.\\n\"\n#| \"\\n\"\n#| \"See also the virt-v2v-output-rhv(1) manual.\"\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\"Не встановлено додаток nbdkit для python або додаток не працює. Цей додаток \"\n\"потрібне, якщо ви хочете скористатися «-o rhv-upload».\\n\"\n\"\\n\"\n\"Див. також підручник virt-v2v-output-rhv(1).\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\"nbdkit було зібрано без підтримки SELinux. Вам слід повторно зібрати nbdkit \"\n\"після встановлення пакунка libselinux-devel або встановити у SELinux режим \"\n\"допуску (Permissive) на час перетворення.\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"nbdkit-cow-filter не встановлено або програма не працює\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"Додаток nbdkit-curl не встановлено\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"nbdkit-file-plugin не встановлено або програма не працює\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"nbdkit-nbd-plugin не встановлено або програма не працює\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"nbdkit-null-plugin не встановлено або програма не працює\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"Додаток nbdkit-ssh не встановлено\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"Додаток nbdkit-vddk не встановлено\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"nbdkit: неочікувана версія у --dump-config: %s\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"тут не можна використовувати -io (вхідні параметри)\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"тут не можна використовувати -oo (параметри виведення)\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"у %s не знайдено файла .ovf\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"не виявлено завантажувача\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"у файлі VMX не виявлено ключа displayName\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"немає href у ovf:File (id=%s)\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"у /boot не знайдено initrd, що відповідає %s %s.\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\"не знайдено встановлених пакунків ядра.\\n\"\n\"\\n\"\n\"Це, ймовірно, означає, що %s не вдасться вивчити належним чином гостьову \"\n\"систему.\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\"У налаштуваннях завантажувача не знайдено записів ядер.\\n\"\n\"\\n\"\n\"Це, ймовірно, означає, що %s не вдалося обробити налаштування завантажувача \"\n\"цієї гостьової системи.\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"не знайдено виконуваного файла python із назвою «%s» у $PATH\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\"немає підтримки віддалених з’єднань libvirt з «-ic %s». Перетворення може \"\n\"призвести до помилок під час спроб прочитати диски джерел даних.\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\"Система oVirt не здатна емулювати звукові картки «%s». Цю звукову картку \"\n\"буде викинуто з виведених даних.\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\n#, fuzzy\n#| msgid \"RHV does not support the output format ‘%s’, only raw or qcow2\"\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\"У RHV не передбачено формату виведення даних «‘%s», лише формати raw та qcow2\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"openstack: немає -oo server-id=<НАЗВА|UUID>\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\"openstack: не вдалося долучити том cinder до ВМ; див попередні повідомлення \"\n\"про помилки\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\"openstack: не вдалося створити том cinder; див. попередні повідомлення про \"\n\"помилки\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\"openstack: не вдалося опитати стан тому cinder; див. попередні повідомлення \"\n\"про помилки\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\"openstack: не вдалося встановити властивості образу на томі cinder; див. \"\n\"попередні повідомлення про помилки\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\"openstack: не вдалося пройти попередню перевірку; можливі проблеми із \"\n\"розпізнаванням; див. попередні повідомлення про помилки\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\"openstack: невідомий стан тому «%s»: стан мав бути «creating» або «available»\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\"для режиму введення передбачено підтримку лише форматів raw і qcow2 (формат: \"\n\"%s)\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\"Диск ova має невідомий тип контролера VMware (%d). Будь ласка, повідомте про \"\n\"цю ваду, додавши файл *.ovf, видобутий з ova\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\"Диск ova не має батьківського контролера. Будь ласка, повідомте про цю ваду, \"\n\"додавши файл *.ovf, видобутий з ova\"\n\n#: output/output_ovirt_upload.ml:367\n#, fuzzy\n#| msgid \"\"\n#| \"rhv-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n#| \"the input is in a different format then force one of these output formats \"\n#| \"by adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\"rhv-upload: -of %s: передбачено підтримку лише форматів виведення «raw» і \"\n\"«qcow2». Якщо вхідні дані записано у іншому форматі, примусово вкажіть один \"\n\"з цих форматів виведення за допомогою додавання до командного рядка \"\n\"параметра «-of raw» або «-of qcow2».\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\"password-crypto: невідомий алгоритм %s, скористайтеся \\\"md5\\\", \\\"sha256\\\", \"\n\"\\\"sha512\\\" або \\\"yescrypt\\\"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\"пароль: використано незахищене шифрування пароля md5 для гостьової системи \"\n\"типу %s, версія %d.%d.\\n\"\n\"Якщо це не так, скористайтеся параметром --password-crypto і створіть \"\n\"повідомлення щодо вади.\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"для цього типу гостьових систем не можна встановлювати паролі\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\"qemu-nbd не запустилася. Див. попередні діагностичні повідомлення, щоб \"\n\"виявити джерело проблеми.\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\"qemu-nbd не запустилася. Можливо, повідомлення про помилки qemu-nbd виведено \"\n\"вище.\\n\"\n\"\\n\"\n\"Якщо повідомлень, виведених вище, недостатньо для визначення причини \"\n\"проблеми, додайте параметри «virt-v2v -v -x» і уважно вивчіть виведені \"\n\"діагностичні дані.\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"qemu-nbd: неочікувана версія у --version: %s\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\"для цього типу гостьових систем не можна встановлювати базу випадковості\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"«%s» для віддаленого vmx не вдалося обробити як адресу\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\"у каталозі virtio-win або образі ISO немає кореневого каталогу «/».\\n\"\n\"\\n\"\n\"Цього не повинно було трапитися. Це може вказувати на те, що virtio-win або \"\n\"virt-v2v певним чином працюють не так, як належить. Будь ласка, повідомте \"\n\"про цю ваду, надавши повний діагностичний журнал.\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"вибір «%s»: некоректне значення TYPE\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"вибір «%s»: пропущено FILENAME або забагато полів\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"вибір «%s»: пропущено ідентифікатор\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"вибір «%s»: пропущено KEY_STRING або забагато полів\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"вибір «%s»: пропущено TYPE\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"вибір «%s»: забагато полів\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"повідомлень за допомогою сигналу %d\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\"вибачте, «%s» із засобом керування пакунками «%s» ще не реалізовано.\\n\"\n\"\\n\"\n\"Ви можете обійти цю проблему, скориставшись параметром «--run*» або «--\"\n\"firstboot*» (описано у підручнику щодо virt-customize(1)).\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"ssh-inject: значення змінної середовища $HOME не встановлено\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"ssh-inject: ключ є порожнім рядком\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"ssh-inject: у %s не знайдено відкритого ключа\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"ssh-inject: файл відкритого ключа (%s) є порожнім\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"ssh-inject: запису користувача %s у гостьовій системі не існує\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"завершено за допомогою сигналу %d\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"підпроцес завершив роботу з ненульовим кодом виходу %d\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"підпроцес надіслав сигнал або зупинив роботу внаслідок сигналу %d\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"успіх\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\"не вдалося завантажити модуль Python «ovirtsdk4». Чи встановлено цей модуль? \"\n\"Див. попередні повідомлення про помилки.\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"на кластері «%s» не передбачено підтримки архітектури %s, але %s\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\"спроба виконати команду могла зазнати невдачі через те, що мережу було \"\n\"вимкнено. Спробуйте або вилучити «--no-network» з рядка команди, або додати \"\n\"«--network» до нього.\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"ключа «%s» у списку об’єктів не знайдено\"\n\n#: output/output_ovirt_upload.ml:288\n#, fuzzy\n#| msgid \"\"\n#| \"the number of ‘-oo rhv-disk-uuid’ parameters passed on the command line \"\n#| \"has to match the number of guest disk images (for this guest: %d)\"\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\"кількість параметрів «-oo rhv-disk-uuid», переданих за допомогою командного \"\n\"рядка, має дорівнювати кількості образів дисків гостьових систем (для цієї \"\n\"гостьової системи: %d)\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\"кількість параметрів «--oo vdsm-image-uuid» і «--oo vdsm-vol-uuid», \"\n\"переданих за допомогою командного рядка, має дорівнювати кількості образів \"\n\"дисків гостьових систем (для цієї гостьової системи: %d)\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\"у гіпервізорі призначення не передбачено підтримки гостьових систем KVM %s\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"значенням ключа «%s» не є, як очікувалося, рядок\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"значенням ключа «%s» не є булеве значення\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"значенням ключа «%s» не є рядок\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"значенням ключа «%s» не є ціле число\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"значенням ключа «%s» не є об’єкт\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"значення не є об’єктом\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"значенням ключа «%s» не є об’єкт\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\"віртуальний розмір диска вхідних даних %d не є точно кратним до 512 байтів. \"\n\"Віртуальний розмір: %Ld.\\n\"\n\"\\n\"\n\"Ймовірно, це означає, що відбувається щось неочікуване. Будь ласка, створіть \"\n\"повідомлення щодо цієї вади.\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\"програма «%s» недоступна. Ця програма потрібна для обміну даними з OpenStack.\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\"у %s (%s) є декілька UUID. Цього не повинно було статися. Можливо, це \"\n\"пов’язано із вадою у virt-v2v або OVirt.\"\n\n#: output/output_ovirt.ml:262\n#, fuzzy\n#| msgid \"\"\n#| \"there are no UUIDs in the %s (%s).  Is it really an OVirt or RHV-M %s?\"\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"у %s (%s) немає UUID. Це справді OVirt чи RHV-M %s?\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\"немає драйверів virtio для цієї версії Windows (%d.%d %s %s %s). virt-v2v \"\n\"шукає драйвери у %s\\n\"\n\"\\n\"\n\"Гостьову систему буде налаштовано на використання повільніших емульованих \"\n\"пристроїв.\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\"немає драйвера блокового пристрою virtio для цієї версії Windows (d.%d %s). \"\n\"virt-v2v шукає цей драйвер у %s\\n\"\n\"\\n\"\n\"Гостьову систему буде налаштовано на використання повільнішого емульованого \"\n\"пристрою.\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\"немає драйвера мережі virtio для цієї версії Windows (d.%d %s). virt-v2v \"\n\"шукає цей драйвер у %s\\n\"\n\"\\n\"\n\"Гостьову систему буде налаштовано на використання повільнішого емульованого \"\n\"пристрою.\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\n\"ця гостьова система має безпосередні інтерфейс мережі, який буде \"\n\"проігноровано\"\nmsgstr[1] \"\"\n\"ця гостьова система має безпосередні інтерфейси мережі, які буде \"\n\"проігноровано\"\nmsgstr[2] \"\"\n\"ця гостьова система має безпосередні інтерфейси мережі, які буде \"\n\"проігноровано\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\n\"у цій гостьовій системі міститься основний пристрій передавання даних, який \"\n\"буде проігноровано\"\nmsgstr[1] \"\"\n\"у цій гостьовій системі містяться основні пристрої передавання даних, який \"\n\"буде проігноровано\"\nmsgstr[2] \"\"\n\"у цій гостьовій системі містяться основні пристрої передавання даних, який \"\n\"буде проігноровано\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"у цій гостьовій системі немає непортативних дисків\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\"у цьому модулі виведення не передбачено підтримки копіювання понад %d дисків\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\"часового поясу «%s» не існує, скористайтеся зазначенням міста, наприклад \"\n\"'Europe/London'\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"для цього типу гостьових систем не можна встановлювати часовий пояс\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"не вдалося обробити рядок з файла маніфесту: %S\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"неочікуване завершення файла під час читання /dev/urandom\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"неочікуване виведення від команди %s\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"непридатний до обробки тип контрольних сум «%s»\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"невідомий параметр --root: %s\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"невідомий параметр -i: %s\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"невідомий параметр -o: %s\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"невідомий параметр -oa: %s\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"невідомий метод <checksum> '%s'\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"невідоме значення Config:firmware %s (мало бути «bios» або «efi»)\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"невідомий варіант Windows 10: %s (%s)\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"невідомий блоковий драйвер «--block-driver %s»\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"невідоме значення мікропрограми, «%s», припускаємо BIOS\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"невідома гостьова операційна система: %s %s %d.%d %s (%s)\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"невідомий вхідний канал передавання «-it %s»\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"невідомий звуковий пристрій «%s» проігноровано\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"невідому звукову модель %s проігноровано\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"непідтримуване стискання у OVF: %s\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\"vcenter: у XML не виявлено запису <vmware:datacenterpath>. Вам слід оновити \"\n\"бібліотеку libvirt принаймні до версії 1.2.20.\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"vcenter: адресу не знайдено: %s\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"vcenter: помилкове ім’я користувача або пароль\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\"vcenter: некоректне ім'я користувача або пароль. Ймовірно, вам слід вказати \"\n\"ім'я користувача у адресі, ось так: [vpx|esx|..]://ІМ'Я_КОРИСТУВАЧА@[решта \"\n\"адреси]\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"vcenter: некоректна відповідь від сервера: %s\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"vcenter: у виведених програмою «curl» даних немає коду стану.\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"vdsm: некоректний параметр -os не містить коректного UUID: %s\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\"virt-v2v -oo server-id=<НАЗВА|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Вкажіть назву або UUID базової системи перетворення за допомогою\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<НАЗВА|UUID>\\n\"\n\"\\n\"\n\"Коли працює virt-v2v, програма долучить томи Cinder до базової\\n\"\n\"системи перетворення, отже ця назва або UUID мають бути назвою\\n\"\n\"тієї віртуальної машини на OpenStack, де запущено virt-v2v.\\n\"\n\"\\n\"\n\"Окрім того, може бути використано усі звичайні параметри\\n\"\n\"OpenStack «os-*» або змінні середовища «OS_*».\\n\"\n\"\\n\"\n\"Параметри «--os-*» Openstack має бути записано як «virt-v2v -oo os-*».\\n\"\n\"\\n\"\n\"Приклад:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<НАЗВА>\\n\"\n\"\\n\"\n\"                еквівалент openstack: --os-username=<НАЗВА>\\n\"\n\"            або змінна середовища: OS_USERNAME=<НАЗВА>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<НАЗВА>\\n\"\n\"\\n\"\n\"                еквівалент openstack: --os-project-name=<НАЗВА>\\n\"\n\"            або змінна середовища: OS_PROJECT_NAME=<НАЗВА>\\n\"\n\"\\n\"\n\"Параметри os-* і змінні середовища є необов'язковими.\\n\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\"У virt-v2v не передбачено підтримки локальних дисплеїв, отже so <graphics \"\n\"type='%s'> у вхідних даних XML libvirt проігноровано\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"У virt-v2v-in-place не передбачено підтримки віддалених адрес libvirt\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"компонент шляху адреси vmx є помилковим\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"пропущено назву віддаленого сервера у адресі vmx\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"адреса vmx починається з «ssh://...»\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"обробник vmx: не вдалося обробити цей рядок, проігноровано: %s\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"обробник vmx: дублікат ключа «%s» проігноровано\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"зачекати на зміну стану тому cinder на «доступний»\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"очікуємо на долучення тому cinder %s до базової системи перетворення\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"У адресі «-ic %s» не міститься поля назви вузла\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\"«-io vddk-libdir=%s» не вказує на каталог. Див. підручник з virt-v2v-input-\"\n\"vmware(1).\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\"«-oo compressed» можна використовувати, лише якщо форматом виведення є \"\n\"локальний файл у форматі qcow2, тобто лише з «-of qcow2»\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\"Щоб дізнатися більше, скористайтеся командою «%s --help» або зверніться до \"\n\"підручника з %s(1).\\n\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"%s: «%s» не є числовим значенням.\\n\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"%s: %s: ціле значення поза межами діапазону\\n\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"%s: «%s» не можна використовувати з -%c; дозволені значення:\\n\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"%s: «%s» не можна використовувати з %s%s; дозволені значення:\\n\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"Зайвий параметр у рядку команди: «%s».\\n\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"%s: рядок %d: помилка під час спроби обробки файла налаштувань: %s\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"переповнення розміру рядка\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\"у цій версії libguestfs «clevis_luks_unlock», потрібна для розшифрування %s, \"\n\"є недоступною\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\"не вдалося знайти ключ для відкриття LUKS, зашифрованої %s.\\n\"\n\"\\n\"\n\"Спробуйте скористатися параметром --key у командному рядку.\\n\"\n\"\\n\"\n\"Початкове повідомлення про помилку: %s (%d)\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\"%s: на диску не знайдено жодної операційної системи\\n\"\n\"\\n\"\n\"Якщо було використано параметр «-i» guestfish, вилучіть цей\\n\"\n\"параметр і замість нього використовуйте команди «run» з\\n\"\n\"наступним «list-filesystems». Після виконання цих команд\\n\"\n\"ви зможете змонтувати бажані файлові системи за допомогою\\n\"\n\"команди «mount» або «mount-ro».\\n\"\n\"\\n\"\n\"Якщо було використано параметр «-i» guestmount, вилучіть цей\\n\"\n\"параметр і виберіть файлові системи, які ви бажаєте бачити,\\n\"\n\"вручну за допомогою додавання параметрів «-m».\\n\"\n\"Для перегляду списку доступних файлових систем скористайтеся\\n\"\n\"командою «virt-filesystems».\\n\"\n\"\\n\"\n\"Якщо ви користуєтеся іншими інструментами віртуалізації, ви\\n\"\n\"не зможете скористатися цим образом диска. Скористайтеся\\n\"\n\"відповідними командами guestfish (докладний опис можна знайти\\n\"\n\"на сторінках довідника (man) щодо інструмента віртуалізації).\\n\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\"%s: підтримки операційних систем з варіантами завантаження не\\n\"\n\"передбачено\\n\"\n\"\\n\"\n\"Якщо було використано параметр «-i» guestfish, вилучіть цей\\n\"\n\"параметр і замість нього використовуйте команди «run» з\\n\"\n\"наступним «list-filesystems». Після виконання цих команд\\n\"\n\"ви зможете змонтувати бажані файлові системи за допомогою\\n\"\n\"команди «mount» або «mount-ro».\\n\"\n\"\\n\"\n\"Якщо було використано параметр «-i» guestmount, вилучіть цей\\n\"\n\"параметр і виберіть файлові системи, які ви бажаєте бачити,\\n\"\n\"вручну за допомогою додавання параметрів «-m».\\n\"\n\"Для перегляду списку доступних файлових систем скористайтеся\\n\"\n\"командою «virt-filesystems».\\n\"\n\"\\n\"\n\"Якщо ви користуєтеся іншими інструментами віртуалізації, ви\\n\"\n\"не зможете скористатися операційними системами з варіантами\\n\"\n\"завантаження. Скористайтеся відповідними командами guestfish\\n\"\n\"(докладний опис можна знайти на сторінках довідника (man)\\n\"\n\"щодо інструмента віртуалізації).\\n\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"%s: деякі з файлових систем не вдалося змонтувати (проігноровано)\\n\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"Операційна система: %s\\n\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"%s змонтовано до %s\\n\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"Введіть ключ або пароль («%s»): \"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"переповнення size_t\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"не вдалося прочитати ключ з запису користувача\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"%s: не вдалося змонтувати «%s».\\n\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\"%s: зверніться до сторінки довідника mount(8), щоб ознайомитися з \"\n\"параметрами «%s»\\n\"\n\"%s: підтримуються файловою системою, яка монтується.\\n\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"%s: ви хотіли змонтувати одну з цих файлових систем?\\n\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"не вдалося визначити підтом для %s: %s (%d)\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"%s: --add: не вдалося обробити адресу «%s»\\n\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"%s: %s: схема адреси є нульовою або порожньою\\n\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\"%s: %s: не можна вказувати одразу назву сервера та параметр запиту до \"\n\"сокета\\n\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"Успішно завершено роботу %s\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"Роботу %s завершено зі станом виходу %d\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"Роботу %s припинено за допомогою сигналу %d (%s)\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"Роботу %s завершено за допомогою сигналу %d (%s)\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"Роботу %s завершено з невідомої причини (стан %d)\"\n\n#~ msgid \"\"\n#~ \"ssh-agent authentication has not been set up ($SSH_AUTH_SOCK is not \"\n#~ \"set).  This is required by qemu to do passwordless ssh access.  See the \"\n#~ \"virt-v2v(1) man page for more information.\"\n#~ msgstr \"\"\n#~ \"Розпізнавання ssh-agent не налаштовано (не встановлено змінної середовища \"\n#~ \"$SSH_AUTH_SOCK). Таке розпізнавання є обов'язковим для встановлення у \"\n#~ \"qemu доступу до ssh без пароля. Докладніший опис можна знайти на сторінці \"\n#~ \"підручника virt-v2v(1).\"\n\n#~ msgid \"-it vddk: duplicate -io options on the command line\"\n#~ msgstr \"-it vddk: дублювання параметрів -io у командному рядку\"\n\n#~ msgid \"Attach to a subscription-manager pool\"\n#~ msgstr \"Долучити до буфера subscription-manager\"\n\n#~ msgid \"Attaching to compatible subscriptions\"\n#~ msgstr \"Долучаємо до сумісних підписок\"\n\n#~ msgid \"Attaching to the pool %s\"\n#~ msgstr \"Долучаємо до буфера %s\"\n\n#~ msgid \"Boot in qemu (-o qemu only)\"\n#~ msgstr \"Завантажитися у qemu (лише для -o qemu)\"\n\n#~ msgid \"Compress output file (-of qcow2 only)\"\n#~ msgstr \"Стиснути файл виведення (лише для -of qcow2)\"\n\n#~ msgid \"Credentials for subscription-manager\"\n#~ msgstr \"Реєстраційні дані для subscription-manager\"\n\n#~ msgid \"Ignored for backwards compatibility\"\n#~ msgstr \"Ігноровано, для зворотної сумісності\"\n\n#~ msgid \"\"\n#~ \"Output options that can be used with -o kubevirt:\\n\"\n#~ \"\\n\"\n#~ \"  -oo compressed      Compress the output file (used only with -of \"\n#~ \"qcow2)\\n\"\n#~ msgstr \"\"\n#~ \"Параметри виведення, якими можна скористатися з -o kubevirt:\\n\"\n#~ \"\\n\"\n#~ \"  -oo compressed      стиснути файл виведення (можна використовувати лише \"\n#~ \"з -of qcow2)\\n\"\n\n#~ msgid \"Register using subscription-manager\"\n#~ msgstr \"Зареєструвати за допомогою subscription-manager\"\n\n#~ msgid \"Registering with subscription-manager\"\n#~ msgstr \"Реєструємо за допомогою subscription-manager\"\n\n#~ msgid \"Remove all the subscriptions\"\n#~ msgstr \"Вилучити усі підписки\"\n\n#~ msgid \"Removing all the subscriptions\"\n#~ msgstr \"Вилучаємо усі підписки\"\n\n#~ msgid \"Same as ‘-io vddk-config=filename’\"\n#~ msgstr \"Те саме, що і «-io vddk-config=назва_файла»\"\n\n#~ msgid \"Same as ‘-io vddk-cookie=filename’\"\n#~ msgstr \"Те саме, що і «-io vddk-cookie=назва_файла»\"\n\n#~ msgid \"Same as ‘-io vddk-libdir=libdir’\"\n#~ msgstr \"Те саме, що і «-io vddk-libdir=каталог_бібліотек»\"\n\n#~ msgid \"Same as ‘-io vddk-nfchostport=nfchostport’\"\n#~ msgstr \"Те саме, що і «-io vddk-nfchostport=nfchostport»\"\n\n#~ msgid \"Same as ‘-io vddk-port=port’\"\n#~ msgstr \"Те саме, що і «-io vddk-port=порт»\"\n\n#~ msgid \"Same as ‘-io vddk-snapshot=snapshot-moref’\"\n#~ msgstr \"Те саме, що і «-io vddk-snapshot=snapshot-moref»\"\n\n#~ msgid \"Same as ‘-io vddk-thumbprint=thumbprint’\"\n#~ msgstr \"Те саме, що і «-io vddk-thumbprint=відбиток»\"\n\n#~ msgid \"Same as ‘-io vddk-transports=transports’\"\n#~ msgstr \"Те саме, що і «-io vddk-transports=способи_передавання»\"\n\n#~ msgid \"Same as ‘-ip filename’\"\n#~ msgstr \"Те саме, що і «-ip назва_файла»\"\n\n#~ msgid \"Same as ‘-oo vdsm-compat=0.10|1.1’\"\n#~ msgstr \"Те саме, що і «-oo vdsm-compat=0.10|1.1»\"\n\n#~ msgid \"Same as ‘-oo vdsm-image-uuid=uuid’\"\n#~ msgstr \"Те саме, що і «-oo vdsm-image-uuid=uuid»\"\n\n#~ msgid \"Same as ‘-oo vdsm-ovf-flavour=flavour’\"\n#~ msgstr \"Те саме, що і «-oo vdsm-ovf-flavour=варіант»\"\n\n#~ msgid \"Same as ‘-oo vdsm-ovf-output=dir’\"\n#~ msgstr \"Те саме, що і «-oo vdsm-ovf-output=каталог»\"\n\n#~ msgid \"Same as ‘-oo vdsm-vm-uuid=uuid’\"\n#~ msgstr \"Те саме, що і «-oo vdsm-vm-uuid=uuid»\"\n\n#~ msgid \"Same as ‘-oo vdsm-vol-uuid=uuid’\"\n#~ msgstr \"Те саме, що і «-oo vdsm-vol-uuid=uuid»\"\n\n#~ msgid \"Unregister using subscription-manager\"\n#~ msgstr \"Скасувати реєстрацію за допомогою subscription-manager\"\n\n#~ msgid \"Unregistering with subscription-manager\"\n#~ msgstr \"Скасовуємо реєстрацію за допомогою subscription-manager\"\n\n#~ msgid \"\"\n#~ \"You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of \"\n#~ \"the VMware server.  To find the thumbprint, see the nbdkit-vddk-plugin(1) \"\n#~ \"manual.  See also the virt-v2v-input-vmware(1) manual.\"\n#~ msgstr \"\"\n#~ \"Вам слід передати параметр «-io vddk-thumbprint» із відбитком SSL сервера \"\n#~ \"VMware. Для визначення відбитка скористайтеся порадами з підручника з \"\n#~ \"nbdkit-vddk-plugin(). Див. також підручник з virt-v2v-input-vmware(1).\"\n\n#~ msgid \"don’t know how to remove packages using %s: packages: %s\"\n#~ msgstr \"\"\n#~ \"спосіб вилучення пакунків за допомогою %s невідомий програмі: пакунки: %s\"\n\n#~ msgid \"invalid sm-attach selector ‘%s’; see the man page\"\n#~ msgstr \"некоректний варіант sm-attach «%s»; див. сторінку man\"\n\n#~ msgid \"invalid sm-credentials selector ‘%s’; see the man page\"\n#~ msgstr \"некоректний варіант sm-credentials «%s»; див. сторінку man\"\n\n#~ msgid \"nbdkit is not new enough, you need to upgrade to nbdkit ≥ %s\"\n#~ msgstr \"\"\n#~ \"nbdkit є недостатньо новим, вам слід оновити nbdkit принаймні до версії \"\n#~ \"більшої або рівної %s\"\n\n#~ msgid \"nbdkit is too old.  nbdkit >= %d.%d.%d is required.\"\n#~ msgstr \"nbdkit є надто старим. Потрібен nbdkit >= %d.%d.%d.\"\n\n#~ msgid \"subscription-manager credentials required for --sm-register\"\n#~ msgstr \"для --sm-register потрібні реєстраційні дані subscription-manager\"\n\n#~ msgid \"the --no-trim option has been removed and now does nothing\"\n#~ msgstr \"\"\n#~ \"параметр --no-trim вилучено зі списку параметрів, тепер він не потрібен\"\n\n#~ msgid \"the --vmtype option has been removed and now does nothing\"\n#~ msgstr \"\"\n#~ \"параметр --vmtype вилучено зі списку параметрів, тепер він не потрібен\"\n\n#~ msgid \"-oo compressed option requires nbdcopy >= 1.13.5\"\n#~ msgstr \"використання параметра -oo compressed потребує nbdcopy >= 1.13.5\"\n\n#~ msgid \"\"\n#~ \"cannot find firmware for UEFI guests.\\n\"\n#~ \"\\n\"\n#~ \"You probably need to install OVMF (x86-64), or AAVMF (aarch64)\"\n#~ msgstr \"\"\n#~ \"не вдалося знайти мікропрограму для гостьових систем UEFI\\n\"\n#~ \"\\n\"\n#~ \"Ймовірно, вам слід встановити OVMF (x86-64) або AAVMF (aarch64)\"\n\n#~ msgid \"nbdcopy command failed, see earlier error messages\"\n#~ msgstr \"\"\n#~ \"помилка під час спроби виконати nbdcopy, див. попередні повідомлення щодо \"\n#~ \"помилок\"\n\n#~ msgid \"external command ‘%s’ killed by signal %d\"\n#~ msgstr \"виконання зовнішньої програми «%s» завершено сигналом %d\"\n\n#~ msgid \"external command ‘%s’ stopped by signal %d\"\n#~ msgstr \"виконання зовнішньої програми «%s» зупинено сигналом %d\"\n\n#~ msgid \"-o qemu: use -oo qemu-boot[=true|false]\"\n#~ msgstr \"-o qemu: використати -oo qemu-boot[=true|false]\"\n\n#~ msgid \"invalid selector string for --key: %s\"\n#~ msgstr \"некоректний рядок вибору для --key: %s\"\n\n#~ msgid \"-o json: -oo json-disks-pattern set more than once\"\n#~ msgstr \"-o json: -oo json-disks-pattern встановлено декілька разів\"\n\n#~ msgid \"-o json: -oo json-disks-pattern: invalid variable %%{%s}\"\n#~ msgstr \"-o json: -oo json-disks-pattern: некоректна змінна %%{%s}\"\n\n#~ msgid \"-o json: -oo json-disks-pattern: unhandled variable %%{%s}\"\n#~ msgstr \"\"\n#~ \"-o json: -oo json-disks-pattern: непридатна до обробки змінна %%{%s}\"\n\n#~ msgid \"-o json: output directory was not specified, use '-os /dir'\"\n#~ msgstr \"\"\n#~ \"-o json: не вказано каталогу для виведення даних, скористайтеся «-os /\"\n#~ \"каталог»\"\n\n#~ msgid \"-o json: unknown output option ‘-oo %s’\"\n#~ msgstr \"-o json: невідомий параметр виведення — «-oo %s»\"\n\n#~ msgid \"\"\n#~ \"Output options (-oo) which can be used with -o json:\\n\"\n#~ \"\\n\"\n#~ \"  -oo json-disks-pattern=PATTERN   Pattern for the disks.\\n\"\n#~ msgstr \"\"\n#~ \"Параметри виведення (-oo), які може бути використано із -o json:\\n\"\n#~ \"\\n\"\n#~ \"  -oo json-disks-pattern=ВЗІРЕЦЬ   Взірець для дисків.\\n\"\n\n#~ msgid \"\"\n#~ \"%s is missing, but the output hypervisor is oVirt or RHV.  Installing \"\n#~ \"RHEV-APT in the guest would mean the guest is automatically updated with \"\n#~ \"new drivers etc.  You may wish to install RHEV-APT manually after \"\n#~ \"conversion.\"\n#~ msgstr \"\"\n#~ \"Не вистачає %s, але вказано гіпервізор виведення даних oVirt або RHV. \"\n#~ \"Встановлення RHEV-APT у гостьовій системі забезпечить оновлення драйверів \"\n#~ \"тощо. Вам варто встановити RHEV-APT вручну після перетворення.\"\n\n#~ msgid \"%s is missing.  Firstboot scripts may conflict with PnP.\"\n#~ msgstr \"Не вистачає %s. Скрипти Firstboot можуть конфліктувати з PnP.\"\n\n#~ msgid \"\"\n#~ \"%s references unknown device \\\"%s\\\".  You may have to fix this entry \"\n#~ \"manually after conversion.\"\n#~ msgstr \"\"\n#~ \"%s посилається на невідомий пристрій «%s». Ймовірно, вам доведеться \"\n#~ \"виправити цей запис після перетворення.\"\n\n#~ msgid \"\"\n#~ \"%s: convert a guest to use KVM\\n\"\n#~ \"\\n\"\n#~ \" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n#~ \"esx_guest\\n\"\n#~ \"\\n\"\n#~ \" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi esx_guest -o rhv \"\n#~ \"-os rhv.nfs:/export_domain --network ovirtmgmt\\n\"\n#~ \"\\n\"\n#~ \" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n#~ \"\\n\"\n#~ \" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n#~ \"\\n\"\n#~ \" virt-v2v -i disk disk.img -o glance\\n\"\n#~ \"\\n\"\n#~ \"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n#~ \"ISO or CD image that can be booted on physical machines.\\n\"\n#~ \"\\n\"\n#~ \"A short summary of the options is given below.  For detailed help please\\n\"\n#~ \"read the man page virt-v2v(1).\\n\"\n#~ msgstr \"\"\n#~ \"%s: перетворити гостьову систему для використання з KVM\\n\"\n#~ \"\\n\"\n#~ \" virt-v2v -ic vpx://vcenterexample.com/Datacenter/esxi -os imported \"\n#~ \"esx_guest\\n\"\n#~ \"\\n\"\n#~ \" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi esx_guest -o rhv \"\n#~ \"-os rhv.nfs:/export_domain --network ovirtmgmt\\n\"\n#~ \"\\n\"\n#~ \" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n#~ \"\\n\"\n#~ \" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n#~ \"\\n\"\n#~ \" virt-v2v -i disk disk.img -o glance\\n\"\n#~ \"\\n\"\n#~ \"Передбачено супутню програму з назвою «virt-p2v, яка постачається у \"\n#~ \"форматі\\n\"\n#~ \"образу ISO або компакт-диска, який можна завантажити на фізичній машині.\\n\"\n#~ \"\\n\"\n#~ \"Коротке резюме щодо параметрів наведено нижче. Докладний опис можна \"\n#~ \"знайти на\\n\"\n#~ \"сторінці підручника virt-v2v(1).\\n\"\n\n#~ msgid \"--in-place and --print-estimate cannot be used together\"\n#~ msgstr \"\"\n#~ \"Параметри --in-place і --print-estimate не можна використовувати одночасно\"\n\n#~ msgid \"-o and --in-place cannot be used at the same time\"\n#~ msgstr \"-o і --in-place не можна використовувати одночасно\"\n\n#~ msgid \"-o local: output directory was not specified, use '-os /dir'\"\n#~ msgstr \"\"\n#~ \"-o local: каталог виведення даних не вказано, скористайтеся параметром «-\"\n#~ \"os /каталог»\"\n\n#~ msgid \"-o rhv: output storage was not specified, use ‘-os’\"\n#~ msgstr \"-o rhv: не вказано сховище виведення даних, скористайтеся «-os»\"\n\n#~ msgid \"-o vdsm: output storage was not specified, use ‘-os’\"\n#~ msgstr \"-o vdsm: не вказано сховище виведення даних, скористайтеся «-os»\"\n\n#~ msgid \"Assigning disks to buses\"\n#~ msgstr \"Пов’язування дисків із каналами\"\n\n#~ msgid \"CD-ROM\"\n#~ msgstr \"CD-ROM\"\n\n#~ msgid \"Can't find file: '%s' needed for UEFI fixing\"\n#~ msgstr \"Не вдалося знайти файл: потрібен «%s» для виправлення UEFI\"\n\n#~ msgid \"Can't fix UEFI bootloader. VM may not boot.\"\n#~ msgstr \"\"\n#~ \"Не вдалося виправити завантажувач UEFI. Віртуальна машина може бути \"\n#~ \"непридатною до завантаження.\"\n\n#~ msgid \"Checking for sufficient free disk space in the guest\"\n#~ msgstr \"Перевіряємо, чи достатньо вільного місця на диску гостьової системи\"\n\n#~ msgid \"Checking if the guest needs BIOS or UEFI to boot\"\n#~ msgstr \"\"\n#~ \"Перевіряємо, чи потрібні гостьовій системі BIOS або UEFI для завантаження\"\n\n#~ msgid \"Closing the overlay\"\n#~ msgstr \"Закриваємо оверлей\"\n\n#~ msgid \"Closing the source VM\"\n#~ msgstr \"Закриваємо ВМ джерела\"\n\n#~ msgid \"Converting %s to run on KVM\"\n#~ msgstr \"Перетворюємо %s для уможливлення запуску у KVM\"\n\n#~ msgid \"Converting the guest to run on KVM\"\n#~ msgstr \"Перетворюємо гостьову систему для запуску у KVM\"\n\n#~ msgid \"Copying disk %d/%d to qemu URI %s (%s)\"\n#~ msgstr \"Копіюємо диск %d з %d до адреси qemu %s (%s)\"\n\n#~ msgid \"Creating an overlay to protect the source from being modified\"\n#~ msgstr \"Створюємо оверлей для захисту джерела від внесення змін\"\n\n#~ msgid \"\"\n#~ \"Dual- or multi-boot operating system detected.  Choose the root \"\n#~ \"filesystem\\n\"\n#~ \"that contains the main operating system from the list below:\\n\"\n#~ msgstr \"\"\n#~ \"Виявлено операційну систему із варіантами завантаження. Виберіть кореневу \"\n#~ \"файлову\\n\"\n#~ \"систему, що містить основну операційну систему зі списку, наведеного \"\n#~ \"нижче:\\n\"\n\n#~ msgid \"Enter a number between 1 and %d, or ‘exit’: \"\n#~ msgstr \"Вкажіть число від 1 до %d або введіть «exit»: \"\n\n#~ msgid \"Estimate size of source and stop\"\n#~ msgstr \"Оцінити розмір джерела і припинити обробку\"\n\n#~ msgid \"Estimating space required on target for each disk\"\n#~ msgstr \"\"\n#~ \"Оцінюємо простір, потрібний у системі призначення для кожного з дисків\"\n\n#~ msgid \"Fixing UEFI bootloader.\"\n#~ msgstr \"Виправляємо завантажувач UEFI.\"\n\n#~ msgid \"Initializing the target %s\"\n#~ msgstr \"Ініціалізуємо призначення %s\"\n\n#~ msgid \"Input format (for -i disk)\"\n#~ msgstr \"Формат вхідних даних (для -i диск)\"\n\n#~ msgid \"Inspecting the source VM\"\n#~ msgstr \"Вивчаємо ВМ джерела\"\n\n#~ msgid \"Just write the metadata\"\n#~ msgstr \"Просто записати метадані\"\n\n#~ msgid \"Mapping filesystem data to avoid copying unused and blank areas\"\n#~ msgstr \"\"\n#~ \"Виконуємо прив’язку даних файлової системи для уникнення копіювання \"\n#~ \"невикористаних та порожніх областей\"\n\n#~ msgid \"No -io (input options) are supported with this input transport.\\n\"\n#~ msgstr \"\"\n#~ \"Для цього вхідного способу передавання даних не передбачено жодних -io \"\n#~ \"(параметрів вхідних даних).\\n\"\n\n#~ msgid \"No UEFI fix rule for %s %d\"\n#~ msgstr \"Немає правила виправлення UEFI для %s %d\"\n\n#~ msgid \"Only tune the guest in the input VM\"\n#~ msgstr \"Лише скоригувати гостьову систему у вхідній ВМ\"\n\n#~ msgid \"Opening the overlay\"\n#~ msgstr \"Відкриваємо оверлей\"\n\n#~ msgid \"Opening the source VM\"\n#~ msgstr \"Відкриваємо ВМ джерела\"\n\n#~ msgid \"Overlay saved as %s [--debug-overlays]\"\n#~ msgstr \"Накладку збережено як %s [--debug-overlays]\"\n\n#~ msgid \"\"\n#~ \"Parallels tools was detected, but uninstallation failed. The error \"\n#~ \"message was: %s (ignored)\"\n#~ msgstr \"\"\n#~ \"Виявлено інструменти Parallels, але спроба вилучення зазнала невдачі. \"\n#~ \"Повідомлення про помилку: %s (ignored)\"\n\n#~ msgid \"Picked %s because '--root %s' was used.\"\n#~ msgstr \"Вибрано %s, оскільки використано «--root %s».\"\n\n#~ msgid \"Picked %s because '--root first' was used.\"\n#~ msgstr \"Вибрано %s, оскільки використано «--root first».\"\n\n#~ msgid \"\"\n#~ \"QEMU Guest Agent MSI not found on tools ISO/directory. You may want to \"\n#~ \"install the guest agent manually after conversion.\"\n#~ msgstr \"\"\n#~ \"У інструментах ISO або каталогу не знайдено пакунка MSI агента гостьової \"\n#~ \"системи QEMU. Ймовірно, вам варто встановити агент гостьової системи \"\n#~ \"вручну після перетворення.\"\n\n#~ msgid \"Save overlay files\"\n#~ msgstr \"Зберегти файли оверлеїв\"\n\n#~ msgid \"\"\n#~ \"The display driver was updated to ‘%s’, but X11 does not seem to be \"\n#~ \"installed in the guest.  X may not function correctly.\"\n#~ msgstr \"\"\n#~ \"Графічний драйвер було оновлено до «%s». Втім, здається, у гостьовій \"\n#~ \"системі не встановлено X11. Графічний сервер не зможе працювати належним \"\n#~ \"чином.\"\n\n#~ msgid \"This guest does not have virtio drivers installed.\"\n#~ msgstr \"У цій гостьовій системі не встановлено драйверів virtio.\"\n\n#~ msgid \"This guest has virtio drivers installed.\"\n#~ msgstr \"У цій гостьовій системі встановлено драйвери virtio.\"\n\n#~ msgid \"This guest requires UEFI on the target to boot.\"\n#~ msgstr \"Ця гостьова система потребує UEFI на призначенні для завантаження.\"\n\n#~ msgid \"\"\n#~ \"VDDK library path %s not found or not a directory.  See the virt-v2v-\"\n#~ \"input-vmware(1) manual.\"\n#~ msgstr \"\"\n#~ \"Не знайдено шлях до бібліотек VDDK %s або шлях не є каталогом. Див. \"\n#~ \"підручник з virt-v2v-input-vmware(1).\"\n\n#~ msgid \"\"\n#~ \"VMware tools was detected, but uninstallation failed.  The error message \"\n#~ \"was: %s (ignored)\"\n#~ msgstr \"\"\n#~ \"Виявлено засоби VMware, але спроба вилучення зазнала невдачі. \"\n#~ \"Повідомлення щодо помилки: %s (проігноровано)\"\n\n#~ msgid \"\"\n#~ \"VirtualBox Guest Additions were detected, but uninstallation failed.  The \"\n#~ \"error message was: %s (ignored)\"\n#~ msgstr \"\"\n#~ \"Виявлено VirtualBox Guest Additions, але спроба вилучення зазнала \"\n#~ \"невдачі. Повідомлення щодо помилки: %s (проігноровано)\"\n\n#~ msgid \"\"\n#~ \"because of libvirt bug https://bugzilla.redhat.com/1134878 you must \"\n#~ \"EITHER upgrade to libvirt >= 2.1.0 OR set this environment variable:\\n\"\n#~ \"\\n\"\n#~ \"export LIBGUESTFS_BACKEND=direct\\n\"\n#~ \"\\n\"\n#~ \"and then rerun the virt-v2v command.\"\n#~ msgstr \"\"\n#~ \"через ваду у libvirt, https://bugzilla.redhat.com/1134878 , вам слід або \"\n#~ \"оновити libvirt до версії 2.1.0 або новішої, або встановити таке значення \"\n#~ \"змінної середовища:\\n\"\n#~ \"\\n\"\n#~ \"export LIBGUESTFS_BACKEND=direct\\n\"\n#~ \"\\n\"\n#~ \"а потім перезапустити програму virt-v2v.\"\n\n#~ msgid \"cannot detect the input disk format; use the -if parameter\"\n#~ msgstr \"\"\n#~ \"не вдалося визначити формат диска вхідних даних; скористайтеся параметром \"\n#~ \"-if\"\n\n#~ msgid \"\"\n#~ \"cannot uninstall %s: registry key ‘HKLM\\\\SOFTWARE\\\\%s\\\\%s’ with \"\n#~ \"DisplayName ‘%s’ doesn't contain value ‘%s’\"\n#~ msgstr \"\"\n#~ \"не вдалося вилучити %s: у ключі реєстру «HKLM\\\\SOFTWARE\\\\%s\\\\%s» із \"\n#~ \"DisplayName «%s» не міститься значення «%s»\"\n\n#~ msgid \"\"\n#~ \"cannot uninstall Xen PV drivers: registry key \"\n#~ \"‘HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Uninstall\\\\%s’ does \"\n#~ \"not contain an ‘%s’ key\"\n#~ msgstr \"\"\n#~ \"неможливо вилучити драйвери Xen PV: ключ реєстру \"\n#~ \"«HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Uninstall\\\\%s» не \"\n#~ \"містить ключа «%s»\"\n\n#~ msgid \"connection closed\"\n#~ msgstr \"з'єднання закрито\"\n\n#~ msgid \"\"\n#~ \"could not find registry key \"\n#~ \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\"\n#~ msgstr \"\"\n#~ \"не вдалося знайти ключ реєстру \"\n#~ \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\"\n\n#~ msgid \"could not write to the guest filesystem: %s\"\n#~ msgstr \"не вдалося виконати запис до файлової системи гостьової системи: %s\"\n\n#~ msgid \"\"\n#~ \"disk %s (%s) has no defined format.\\n\"\n#~ \"\\n\"\n#~ \"The input metadata did not define the disk format (eg. raw/qcow2/etc) of \"\n#~ \"this disk, and so virt-v2v will try to autodetect the format when reading \"\n#~ \"it.\\n\"\n#~ \"\\n\"\n#~ \"However because the input format was not defined, we do not know what \"\n#~ \"output format you want to use.  You have two choices: either define the \"\n#~ \"original format in the source metadata, or use the ‘-of’ option to force \"\n#~ \"the output format.\"\n#~ msgstr \"\"\n#~ \"диск %s (%s) не має визначеного формату.\\n\"\n#~ \"\\n\"\n#~ \"Вхідні метадані не визначають формату цього диска (наприклад raw/qcow2/\"\n#~ \"тощо), отже virt-v2v спробує автоматично визначити формат під час читання \"\n#~ \"диска.\\n\"\n#~ \"\\n\"\n#~ \"Втім, оскільки вхідний формат не визначено, програмі невідомий формат \"\n#~ \"виведення, яким ви хочете скористатися. Ви можете скористатися одним із \"\n#~ \"таких варіантів: визначити початковий формат у метаданих джерела, \"\n#~ \"використати параметр «-of» для примусового визначення формату виведення \"\n#~ \"даних.\"\n\n#~ msgid \"don’t know how to install packages using %s: packages: %s\"\n#~ msgstr \"\"\n#~ \"спосіб встановлення пакунків за допомогою %s невідомий програмі: пакунки: \"\n#~ \"%s\"\n\n#~ msgid \"don’t know how to update %s which loads the %s module\"\n#~ msgstr \"спосіб оновлення %s, який завантажує модуль %s, невідомий програмі\"\n\n#~ msgid \"don’t know what is the architecture string of %s using %s on %s\"\n#~ msgstr \"невідомий рядок архітектури %s з використанням %s на %s\"\n\n#~ msgid \"don’t know what is the extension of binary packages using %s\"\n#~ msgstr \"невідомий суфікс назви бінарних пакунків з використанням %s\"\n\n#~ msgid \"\"\n#~ \"expecting a single VMX file name or SSH remote path on the command line\"\n#~ msgstr \"\"\n#~ \"мало бути вказано одну назву файла VMX або віддалений шлях SSH у \"\n#~ \"командному рядку\"\n\n#~ msgid \"failed to install QEMU Guest Agent: %s\"\n#~ msgstr \"не вдалося встановити агент гостьової системи QEMU: %s\"\n\n#~ msgid \"\"\n#~ \"filesystem was mounted read-only, even though we asked for it to be \"\n#~ \"mounted read-write.  This usually means that the filesystem was not \"\n#~ \"cleanly unmounted.  Possible causes include trying to convert a guest \"\n#~ \"which is running, or using Windows Hibernation or Fast Restart.\\n\"\n#~ \"\\n\"\n#~ \"Original error message: %s\"\n#~ msgstr \"\"\n#~ \"файлову систему було змонтовано у режимі лише для читання, хоча ми \"\n#~ \"просили змонтувати її у режимі читання-запису. Це, зазвичай, означає, що \"\n#~ \"файлову систему не було демонтовано у штатному режимі. Можливими \"\n#~ \"причинами можуть бути спроба перетворити гостьову систему, яка працювала, \"\n#~ \"або використання режимів присипляння або швидкого перезапуску Windows.\\n\"\n#~ \"\\n\"\n#~ \"Початкове повідомлення про помилку: %s\"\n\n#~ msgid \"floppy disk\"\n#~ msgstr \"дискета\"\n\n#~ msgid \"\"\n#~ \"fstrim on guest filesystem %s failed.  Usually you can ignore this \"\n#~ \"message.  To find out more read \\\"Trimming\\\" in virt-v2v(1).\\n\"\n#~ \"\\n\"\n#~ \"Original message: %s\"\n#~ msgstr \"\"\n#~ \"Помилка fstrim на гостьовій файловій системі %s. Зазвичай, ви можете \"\n#~ \"ігнорувати це повідомлення. Щоб дізнатися більше про причини, ознайомтеся \"\n#~ \"із розділом «Обрізання» у довіднику щодо virt-v2v(1).\\n\"\n#~ \"\\n\"\n#~ \"Початкове повідомлення: %s\"\n\n#~ msgid \"\"\n#~ \"guest disk %s appears to be zero bytes in size.\\n\"\n#~ \"\\n\"\n#~ \"There could be several reasons for this:\\n\"\n#~ \"\\n\"\n#~ \"Check that the guest doesn't really have a zero-sized disk.  virt-v2v \"\n#~ \"cannot convert such a guest.\\n\"\n#~ \"\\n\"\n#~ \"If you are converting a guest from an ssh source and the guest has a disk \"\n#~ \"on a block device (eg. on a host partition or host LVM LV), then \"\n#~ \"conversions of this type are not supported.  See the virt-v2v-input-\"\n#~ \"xen(1) manual for a workaround.\"\n#~ msgstr \"\"\n#~ \"Розмір диска %s у гостьовій системі дорівнює нулеві.\\n\"\n#~ \"\\n\"\n#~ \"Може бути декілька причин:\\n\"\n#~ \"\\n\"\n#~ \"Перевірте, чи й справді у гостьовій системі немає дисків із нульовим \"\n#~ \"розміром. virt-v2v не здатна перетворювати гостьові системи із такими \"\n#~ \"дисками.\\n\"\n#~ \"\\n\"\n#~ \"Якщо виконується перетворення гостьової системи із джерела з ssh і у \"\n#~ \"гостьовій системі є диск із блоковим пристроєм (наприклад розділ основної \"\n#~ \"системи або логічний том LVM основної системи), перетворення такого типу \"\n#~ \"не може бути виконано. Способи обійти проблему описано на сторінці \"\n#~ \"підручника virt-v2v-input-xen(1).\"\n\n#~ msgid \"\"\n#~ \"inspection could not detect the source guest (or physical machine).\\n\"\n#~ \"\\n\"\n#~ \"Assuming that you are running virt-v2v/virt-p2v on a source which is \"\n#~ \"supported (and not, for example, a blank disk), then this should not \"\n#~ \"happen.\\n\"\n#~ \"\\n\"\n#~ \"Inspection field ‘%s’ was ‘unknown’.\"\n#~ msgstr \"\"\n#~ \"під час вивчення не вдалося виявити гостьової системи (або фізичної \"\n#~ \"машини) джерела.\\n\"\n#~ \"\\n\"\n#~ \"Якщо припустити, що virt-vv/virt-p2v запущено для джерела, підтримку \"\n#~ \"якого передбачено (а не, наприклад, порожнього диска), такого не мало \"\n#~ \"трапитися.\\n\"\n#~ \"\\n\"\n#~ \"Значенням визначеного поля «%s» було «unknown».\"\n\n#~ msgid \"\"\n#~ \"inspection could not detect the source guest (or physical machine).\\n\"\n#~ \"\\n\"\n#~ \"Assuming that you are running virt-v2v/virt-p2v on a source which is \"\n#~ \"supported (and not, for example, a blank disk), then this should not \"\n#~ \"happen.\\n\"\n#~ \"\\n\"\n#~ \"No root device found in this operating system image.\"\n#~ msgstr \"\"\n#~ \"під час вивчення не вдалося виявити гостьової системи (або фізичної \"\n#~ \"машини) джерела.\\n\"\n#~ \"\\n\"\n#~ \"Якщо припустити, що virt-vv/virt-p2v запущено для джерела, підтримку \"\n#~ \"якого передбачено (а не, наприклад, порожнього диска), такого не мало \"\n#~ \"трапитися.\\n\"\n#~ \"\\n\"\n#~ \"У образі операційної системи не виявлено кореневого пристрою.\"\n\n#~ msgid \"\"\n#~ \"inspection of the package database failed for this Linux guest.  Rerun \"\n#~ \"virt-v2v with -v -x and see earlier errors.  This is an internal error \"\n#~ \"which probably means that this guest is not supported by libguestfs \"\n#~ \"inspection.  If the guest should work with virt-v2v (see virt-v2v docs) \"\n#~ \"then a fix will be required in libguestfs.\"\n#~ msgstr \"\"\n#~ \"для цієї гостьової системи Linux не вдалося успішно виконати інспекцію \"\n#~ \"бази даних пакунків. Повторно запустіть virt-v2v із параметрами -v -x і \"\n#~ \"перегляньте список помилок. Ця помилка є внутрішньою помилкою програми, \"\n#~ \"яка, ймовірно, свідчить про те, що у засобах інспектування libguestfs не \"\n#~ \"передбачено підтримки цієї гостьової системи. Якщо ця гостьова система \"\n#~ \"має працювати з virt-v2v (див. документацію до virt-v2v), до libguestfs \"\n#~ \"має бути внесено виправлення.\"\n\n#~ msgid \"internal error: qemu corrupted the overlay file\"\n#~ msgstr \"внутрішня помилка: файл оверлею пошкоджено qemu\"\n\n#~ msgid \"internal error: qemu-img did not create overlay with backing file\"\n#~ msgstr \"внутрішня помилка: qemu-img не створено оверлею із резервним файлом\"\n\n#~ msgid \"\"\n#~ \"libguestfs thinks this is not an installed operating system (it might be, \"\n#~ \"for example, an installer disk or live CD).  If this is wrong, it is \"\n#~ \"probably a bug in libguestfs.  root=%s fmt=%s\"\n#~ msgstr \"\"\n#~ \"libguestfs вважає, що це не встановлена операційна система (можливо, \"\n#~ \"наприклад, маємо справу із диском для встановлення або образом із \"\n#~ \"портативною системою). Якщо це не так, ймовірно, маємо справу із вадою у \"\n#~ \"libguestfs. root=%s fmt=%s\"\n\n#~ msgid \"\"\n#~ \"multi-boot operating systems are not supported by virt-v2v. Use the --\"\n#~ \"root option to change how virt-v2v handles this.\"\n#~ msgstr \"\"\n#~ \"у virt-v2v не передбачено підтримки операційних систем з варіантами \"\n#~ \"завантаження. Скористайтеся параметром --root для зміни способу обробки \"\n#~ \"таких систем за допомогою virt-v2v.\"\n\n#~ msgid \"\"\n#~ \"not enough available inodes for conversion on filesystem ‘%s’.  %Ld \"\n#~ \"inodes available < %Ld inodes needed\"\n#~ msgstr \"\"\n#~ \"недостатньо доступних inode для перетворення у файловій системі «%s». \"\n#~ \"Доступно %Ld inode < потрібно %Ld inode\"\n\n#~ msgid \"\"\n#~ \"not enough free space for conversion on filesystem ‘%s’.  %.1f MB free < \"\n#~ \"%d MB needed\"\n#~ msgstr \"\"\n#~ \"у файловій системі «%s» недостатньо вільного місця для перетворення. \"\n#~ \"Вільними є %.1f МБ < потрібно %d МБ\"\n\n#~ msgid \"\"\n#~ \"only Xen kernels are installed in this guest.\\n\"\n#~ \"\\n\"\n#~ \"Read the %s(1) manual, section \\\"Xen paravirtualized guests\\\", to see \"\n#~ \"what to do.\"\n#~ msgstr \"\"\n#~ \"у цій гостьовій системі встановлено лише ядра Xen.\\n\"\n#~ \"\\n\"\n#~ \"Ознайомтеся із підручником з %s(1), розділ «ПАРАВІРТУАЛІЗОВАНІ ГОСТЬОВІ \"\n#~ \"СИСТЕМИ XEN», щоб дізнатися про подальші дії.\"\n\n#~ msgid \"only ‘-it ssh’ can be used here\"\n#~ msgstr \"тут можна використовувати лише «-it ssh»\"\n\n#~ msgid \"only ‘-it vddk’ can be used here\"\n#~ msgstr \"тут можна використовувати лише «-it vddk»\"\n\n#~ msgid \"\"\n#~ \"output format should be ‘raw’ or ‘qcow2’.\\n\"\n#~ \"\\n\"\n#~ \"Use the ‘-of <format>’ option to select a different output format for the \"\n#~ \"converted guest.\\n\"\n#~ \"\\n\"\n#~ \"Other output formats are not supported at the moment, although might be \"\n#~ \"considered in future.\"\n#~ msgstr \"\"\n#~ \"форматом виведення має бути «raw» або «qcow2».\\n\"\n#~ \"\\n\"\n#~ \"Скористайтеся параметром «-of <формат>» для вибору іншого формату \"\n#~ \"виведення для перетвореної гостьової системи.\\n\"\n#~ \"\\n\"\n#~ \"Підтримки інших форматів виведення у поточній версії ще не передбачено, \"\n#~ \"хоча їхню підтримку може бути реалізовано у майбутньому.\"\n\n#~ msgid \"qemu-img command failed, see earlier errors\"\n#~ msgstr \"\"\n#~ \"помилка під час спроби виконати qemu-img, див. попередні повідомлення \"\n#~ \"щодо помилок\"\n\n#~ msgid \"qemu-img measure failed, see earlier errors\"\n#~ msgstr \"\"\n#~ \"помилка вимірювання qemu-img, див. попередні повідомлення щодо помилок\"\n\n#~ msgid \"\"\n#~ \"removable %s device in slot %d clashes with another disk, so it has been \"\n#~ \"moved to a higher numbered slot on the same bus.  This may mean that this \"\n#~ \"removable device has a different name inside the guest (for example a CD-\"\n#~ \"ROM originally called /dev/hdc might move to /dev/hdd, or from D: to E: \"\n#~ \"on a Windows guest).\"\n#~ msgstr \"\"\n#~ \"портативний пристрій %s у слоті %d конфліктує з іншим диском, отже його \"\n#~ \"пересунуто до вищого нумерованого слоту на тому самому каналі. Це може \"\n#~ \"означати, що цей портативний пристрій має нішу назву у гостьовій системі \"\n#~ \"(наприклад CD-ROM із початковою назвою /dev/hdc може бути пересунуто до /\"\n#~ \"dev/hdd, або з D: до E: у гостьовій системі Windows).\"\n\n#~ msgid \"\"\n#~ \"rhv-upload: currently you must use ‘%s’.  This restriction will be \"\n#~ \"loosened in a future version.\"\n#~ msgstr \"\"\n#~ \"rhv-upload: у поточній версії слід використовувати «%s». Це обмеження \"\n#~ \"буде знято у наступних версіях.\"\n\n#~ msgid \"root device %s not found.  Roots found were: %s\"\n#~ msgstr \"\"\n#~ \"не знайдено кореневого пристрою %s. Знайдено такі кореневі пристрої: %s\"\n\n#~ msgid \"source disk has <source dev=...> attribute in XML\"\n#~ msgstr \"диск джерела має атрибут <source dev=...> у XML\"\n\n#~ msgid \"source has multiple hard disk types!\"\n#~ msgstr \"у джерела декілька типів жорстких дисків!\"\n\n#~ msgid \"source has multiple network adapter model!\"\n#~ msgstr \"у джерела декілька моделей адаптера мережі!\"\n\n#~ msgid \"source has no hard disks!\"\n#~ msgstr \"у джерелі немає жорстких дисків!\"\n\n#~ msgid \"source has unrecognized hard disk type\"\n#~ msgstr \"у джерела нерозпізнаний тип жорсткого диска\"\n\n#~ msgid \"source has unsupported hard disk type ‘%s’\"\n#~ msgstr \"у джерела непідтримуваний тип жорсткого диска, «%s»\"\n\n#~ msgid \"source has unsupported network adapter model ‘%s’\"\n#~ msgstr \"у джерела непідтримувана модель адаптера мережі, «%s»\"\n\n#~ msgid \"source has unsupported video adapter model ‘%s’\"\n#~ msgstr \"у джерела непідтримувана модель відеоадаптера, «%s»\"\n\n#~ msgid \"\"\n#~ \"source sockets * cores * threads <> number of vCPUs.\\n\"\n#~ \"Sockets %d * cores per socket %d * threads %d = %d, but number of vCPUs = \"\n#~ \"%d.\\n\"\n#~ \"\\n\"\n#~ \"This is a problem with either the source metadata or the virt-v2v input \"\n#~ \"module.  In some circumstances this could stop the guest from booting on \"\n#~ \"the target.\"\n#~ msgstr \"\"\n#~ \"значення добутку кількості сокетів * ядер * потоків <> кількості \"\n#~ \"віртуальних процесорів.\\n\"\n#~ \"Кількість сокетів %d * ядер на сокет %d * потоків %d = %d, а кількість \"\n#~ \"процесорів = %d.\\n\"\n#~ \"\\n\"\n#~ \"Це проблема або з метаданими джерела, або із модулем вхідних даних virt-\"\n#~ \"v2v. За певних умов це може призвести до неможливості завантаження \"\n#~ \"гостьової системи на цільовій системі.\"\n\n#~ msgid \"\"\n#~ \"the ‘%s’ program is not available.  It is needed to communicate with \"\n#~ \"vCenter.\"\n#~ msgstr \"\"\n#~ \"програма «%s» недоступна. Ця програма потрібна для обміну даними з \"\n#~ \"vCenter.\"\n\n#~ msgid \"\"\n#~ \"there are no virtio drivers available for this version of Windows (%d.%d \"\n#~ \"%s %s).  virt-v2v looks for drivers in %s\"\n#~ msgstr \"\"\n#~ \"немає драйверів virtio для цієї версії Windows (%d.%d %s %s). virt-v2v \"\n#~ \"шукає драйвери у %s\"\n\n#~ msgid \"\"\n#~ \"there is no QXL driver for this version of Windows (%d.%d %s).  virt-v2v \"\n#~ \"looks for this driver in %s\"\n#~ msgstr \"\"\n#~ \"немає драйвера QXL для цієї версії Windows (d.%d %s). virt-v2v шукає цей \"\n#~ \"драйвер у %s\"\n\n#~ msgid \"\"\n#~ \"there is no QXL driver for this version of Windows (%d.%d %s).  virt-v2v \"\n#~ \"looks for this driver in %s\\n\"\n#~ \"\\n\"\n#~ \"The guest will be configured to use a basic VGA display driver.\"\n#~ msgstr \"\"\n#~ \"немає драйвера QXL для цієї версії Windows (d.%d %s). virt-v2v шукає цей \"\n#~ \"драйвер у %s\\n\"\n#~ \"\\n\"\n#~ \"Гостьову систему буде налаштовано на використання базового драйвера \"\n#~ \"дисплеїв VGA.\"\n\n#~ msgid \"\"\n#~ \"there is no vioscsi (virtio SCSI) driver for this version of Windows (%d.\"\n#~ \"%d %s).  virt-v2v looks for this driver in %s\\n\"\n#~ \"\\n\"\n#~ \"The guest will be configured to use a slower emulated device.\"\n#~ msgstr \"\"\n#~ \"немає драйвера vioscsi (virtio SCSI) для цієї версії Windows (d.%d %s). \"\n#~ \"virt-v2v шукає цей драйвер у %s\\n\"\n#~ \"\\n\"\n#~ \"Гостьову систему буде налаштовано на використання повільнішого \"\n#~ \"емульованого пристрою.\"\n\n#~ msgid \"\"\n#~ \"there is no virtio network driver for this version of Windows (%d.%d \"\n#~ \"%s).  virt-v2v looks for this driver in %s\"\n#~ msgstr \"\"\n#~ \"немає драйвера мережі virtio для цієї версії Windows (d.%d %s). virt-v2v \"\n#~ \"шукає цей драйвер у %s\"\n\n#~ msgid \"\"\n#~ \"there must be ‘-oo rhv-disk-uuid’ parameters passed on the command line \"\n#~ \"to specify the UUIDs of guest disk images (for this guest: %d)\"\n#~ msgstr \"\"\n#~ \"у командному рядку має бути передано параметри «-oo rhv-disk-uuid» для \"\n#~ \"визначення UUID образів дисків гостьової системи (для цієї гостьової \"\n#~ \"системи: %d)\"\n\n#~ msgid \"\"\n#~ \"this guest cannot run on the target, because the target does not support \"\n#~ \"%s firmware (supported firmware on target: %s)\"\n#~ msgstr \"\"\n#~ \"ця гостьова система не може працювати у призначенні, оскільки у \"\n#~ \"призначенні не передбачено підтримки мікропрограм %s (підтримувана \"\n#~ \"мікропрограма на призначенні: %s)\"\n\n#~ msgid \"\"\n#~ \"this guest has Anti-Virus (AV) software and a new virtio block device \"\n#~ \"driver was installed.  In some circumstances, AV may prevent new drivers \"\n#~ \"from working (resulting in a 7B boot error).  If this happens, try \"\n#~ \"disabling AV before doing the conversion.\"\n#~ msgstr \"\"\n#~ \"у цій гостьовій системі встановлено антивірусне програмне забезпечення і \"\n#~ \"встановлено новий драйвер блокових пристроїв virtio. У певних випадках \"\n#~ \"антивірусне програмне забезпечення може перешкоджати роботі нових \"\n#~ \"драйверів (результатом є помилка завантаження 7B). Якщо таке трапляється, \"\n#~ \"спробуйте вимкнути антивірус до перетворення.\"\n\n#~ msgid \"\"\n#~ \"this guest has Windows Group Policy Objects (GPO) and a new virtio block \"\n#~ \"device driver was installed.  In some circumstances, Group Policy may \"\n#~ \"prevent new drivers from working (resulting in a 7B boot error).  If this \"\n#~ \"happens, try disabling Group Policy before doing the conversion.\"\n#~ msgstr \"\"\n#~ \"у цій гостьовій системі працює Windows Group Policy Objects (GPO) і \"\n#~ \"встановлено новий драйвер блокових пристроїв virtio. У певних випадках \"\n#~ \"групові правила можуть перешкоджати роботі нових драйверів (результатом є \"\n#~ \"помилка завантаження 7B). Якщо таке трапляється, спробуйте вимкнути \"\n#~ \"групові правила до перетворення.\"\n\n#~ msgid \"transfer of disk %d/%d failed, see earlier error messages\"\n#~ msgstr \"\"\n#~ \"не вдалося перенести диск %d з %d; див. попередні повідомлення про помилку\"\n\n#~ msgid \"\"\n#~ \"unable to find any valid modprobe configuration file such as /etc/\"\n#~ \"modprobe.conf\"\n#~ msgstr \"\"\n#~ \"не вдалося знайти жодного коректного файла налаштувань modprobe, зокрема /\"\n#~ \"etc/modprobe.conf\"\n\n#~ msgid \"\"\n#~ \"unable to mount the disk image for writing. This has probably happened \"\n#~ \"because Windows Hibernation or Fast Restart is being used in this guest. \"\n#~ \"You have to disable this (in the guest) in order to use virt-v2v.\\n\"\n#~ \"\\n\"\n#~ \"Original error message: %s\"\n#~ msgstr \"\"\n#~ \"не вдалося змонтувати образ диска для запису. Ймовірно, це сталося через \"\n#~ \"те, що у гостьовій системі використано Windows Hibernation або Fast \"\n#~ \"Restart. Вам слід вимкнути ці можливості (у гостьовій системі), щоб \"\n#~ \"скористатися virt-v2v.\\n\"\n#~ \"\\n\"\n#~ \"Початкове повідомлення щодо помилки: %s\"\n\n#~ msgid \"\"\n#~ \"unable to rebuild initrd (%s) because mkinitrd or dracut was not found in \"\n#~ \"the guest\"\n#~ msgstr \"\"\n#~ \"не вдалося перебудувати initrd (%s), оскільки у гостьовій системі не \"\n#~ \"знайдено mkinitrd або dracut\"\n\n#~ msgid \"\"\n#~ \"unable to rebuild initrd (%s) because update-initramfs was not found in \"\n#~ \"the guest\"\n#~ msgstr \"\"\n#~ \"не вдалося перебудувати initrd (%s), оскільки у гостьовій системі не \"\n#~ \"знайдено update-initramfs\"\n\n#~ msgid \"unknown source hypervisor (‘%s’) in metadata\"\n#~ msgstr \"невідомий гіпервізор джерела («%s») у метаданих\"\n\n#~ msgid \"virt-v2v is unable to convert this guest type (%s/%s)\"\n#~ msgstr \"\"\n#~ \"virt-v2v не може виконувати перетворення цього типу гостьових систем (%s/\"\n#~ \"%s)\"\n\n#~ msgid \"don’t use --live and -i options together\"\n#~ msgstr \"не використовуйте одразу параметри --live і -i\"\n\n#~ msgid \"input helper command (%s) does not exist or is not working\"\n#~ msgstr \"\"\n#~ \"допоміжної команди введення (%s) не існує або вона не є працездатною\"\n\n#~ msgid \"output helper command (%s) does not exist or is not working\"\n#~ msgstr \"\"\n#~ \"допоміжної команди виведення (%s) не існує або вона не є працездатною\"\n\n#~ msgid \"Fetching the remote libvirt XML metadata ...\"\n#~ msgstr \"Отримуємо метадані XML віддаленої libvirt…\"\n\n#~ msgid \"Parsing the remote libvirt XML metadata ...\"\n#~ msgstr \"Обробляємо метадані XML віддаленої libvirt…\"\n\n#~ msgid \"Use password from file\"\n#~ msgstr \"Скористатися паролем із файла\"\n\n#~ msgid \"Writing libvirt XML metadata to %s ...\"\n#~ msgstr \"Записуємо метадані XML libvirt до %s…\"\n\n#~ msgid \"copy command failed, see earlier errors\"\n#~ msgstr \"\"\n#~ \"помилка під час спроби виконати copy, див. попередні повідомлення щодо \"\n#~ \"помилок\"\n\n#~ msgid \"missing guest name.  See the virt-v2v-copy-to-local(1) manual page.\"\n#~ msgstr \"\"\n#~ \"не вказано назви гостьової системи. Див. сторінку підручника virt-v2v-\"\n#~ \"copy-to-local(1).\"\n\n#~ msgid \"\"\n#~ \"only copies from Xen over SSH are supported.  See the virt-v2v-copy-to-\"\n#~ \"local(1) manual page.\"\n#~ msgstr \"\"\n#~ \"підтримку копіювання за допомогою SSH передбачено лише з Xen. Див. \"\n#~ \"сторінку підручника virt-v2v-copy-to-local(1).\"\n\n#~ msgid \"ssh copy command failed, see earlier errors\"\n#~ msgstr \"\"\n#~ \"помилка під час спроби виконати copy для ssh, див. попередні повідомлення \"\n#~ \"щодо помилок\"\n\n#~ msgid \"the -ic parameter is required\"\n#~ msgstr \"слід вказати параметр -ic\"\n\n#~ msgid \"\"\n#~ \"too many command line parameters.  See the virt-v2v-copy-to-local(1) \"\n#~ \"manual page.\"\n#~ msgstr \"\"\n#~ \"забагато параметрів командного рядка. Див. сторінку підручника virt-v2v-\"\n#~ \"copy-to-local(1).\"\n\n#~ msgid \"\"\n#~ \"because of libvirt bug https://bugzilla.redhat.com/1140166 you must set \"\n#~ \"this environment variable:\\n\"\n#~ \"\\n\"\n#~ \"export LIBGUESTFS_BACKEND=direct\\n\"\n#~ \"\\n\"\n#~ \"and then rerun the virt-v2v command.\"\n#~ msgstr \"\"\n#~ \"через ваду у libvirt, https://bugzilla.redhat.com/1140166 вам слід \"\n#~ \"встановити таке значення змінної середовища:\\n\"\n#~ \"\\n\"\n#~ \"export LIBGUESTFS_BACKEND=direct\\n\"\n#~ \"\\n\"\n#~ \"а потім перезапустити програму virt-v2v.\"\n\n#~ msgid \"package ‘%s’ contains no files\"\n#~ msgstr \"у пакунку «%s» не міститься файлів\"\n\n#~ msgid \"\"\n#~ \"vcenter: could not read session cookie from the vCenter Server, \"\n#~ \"conversion may consume all sessions on the server and fail part way \"\n#~ \"through\"\n#~ msgstr \"\"\n#~ \"vcenter: не вдалося прочитати куку сеансу з сервера vCenter. Перетворення \"\n#~ \"може спожити усі сеанси на сервері і помилитися для одного з них.\"\n"
  },
  {
    "path": "po/virt-v2v.pot",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\n#, fuzzy\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.11.8\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2026-04-29 12:01+0100\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n\"\n\"Language-Team: LANGUAGE <LL@li.org>\\n\"\n\"Language: \\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:238\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:698 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:234 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:236\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:729\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:43\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:388\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:423\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:390\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:429\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:424\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:425\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:433\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:425\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:394\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:395\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:251\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:458\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:443\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:242\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:261\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:391 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:418\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:752\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:249\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:244\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:362\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:377\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:379\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:371\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:542 common/mltools/tools_utils.ml:461\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:240\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:48\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:53\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:51\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74 input/input_disk.ml:71\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420 common/options/keys.c:306\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:412 common/options/keys.c:296\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:402 common/options/keys.c:274\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:407 common/options/keys.c:287\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:281\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:416 common/options/keys.c:304\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:464\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:545\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:69\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:189\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:235\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/zh_CN.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?\"\n\"component=libguestfs&product=Virtualization+Tools\\n\"\n\"POT-Creation-Date: 2025-02-16 17:05+0000\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: zh_CN\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\n#: input/input_ova.ml:135 common/mltools/tools_utils.ml:235\nmsgid \"%s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:73\nmsgid \"\"\n\"%s\\n\"\n\"Options:\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390\nmsgid \"%s (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:71\nmsgid \"%s did not return any output\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:183\nmsgid \"%s does not exist in the guest\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:275\nmsgid \"\"\n\"%s does not exist or is not a directory.\\n\"\n\"\\n\"\n\"Most likely cause: Either the %s (%s) has not been attached to any Data \"\n\"Center, or the path %s is not an %s at all.\\n\"\n\"\\n\"\n\"You have to attach the %s to a Data Center using the oVirt user interface \"\n\"first.\\n\"\n\"\\n\"\n\"If you don’t know what the %s mount point should be then you can also find \"\n\"this out through the oVirt user interface.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:113\nmsgid \"%s ignored for non-Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:186\nmsgid \"%s is not a regular file in the guest\"\nmsgstr \"\"\n\n#. open/open.ml:39\n#. inspector/inspector.ml:153\n#. inspector/inspector.ml:40\n#. in-place/in_place.ml:164\n#. in-place/in_place.ml:45\n#: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68\nmsgid \"%s option used more than once on the command line\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202\nmsgid \"%s: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:233\nmsgid \"%s: %s: %s\"\nmsgstr \"\"\n\n#: common/mltools/on_exit.ml:77\nmsgid \"\"\n\"%s: Exiting on signal %s\\n\"\n\"%!\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:411\nmsgid \"%s: cannot open virtio-win ISO file: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:64\nmsgid \"%s: command exited with an error\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:277\nmsgid \"\"\n\"%s: convert a guest to use KVM\\n\"\n\"\\n\"\n\"virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported \"\n\"esx_guest\\n\"\n\"\\n\"\n\"virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\"virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\"There is a companion front-end called \\\"virt-p2v\\\" which comes as an\\n\"\n\"ISO or CD image that can be booted on physical machines.\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v(1).\\n\"\nmsgstr \"\"\n\n#: in-place/in_place.ml:217\nmsgid \"\"\n\"%s: convert a guest to use KVM in-place\\n\"\n\"\\n\"\n\"Note this program modifies the guest in-place with no backup.\\n\"\n\"Normally you should use virt-v2v.\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i libvirtxml guest-domain.xml\\n\"\n\"\\n\"\n\"virt-v2v-in-place -i disk disk.img\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-in-place(1).\\n\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:207\nmsgid \"%s: enter password for ‘%s’: \"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:172\nmsgid \"%s: error: %s\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:198\nmsgid \"\"\n\"%s: estimate disk space needed before virt-v2v conversion\\n\"\n\"\\n\"\n\"virt-v2v-inspector -i disk disk.img [-O output.xml]\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-inspector(1).\\n\"\nmsgstr \"\"\n\n#: open/open.ml:94\nmsgid \"\"\n\"%s: open the virt-v2v input and run a program on it\\n\"\n\"\\n\"\n\"virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\n\"A short summary of the options is given below.  For detailed help please\\n\"\n\"read the man page virt-v2v-open(1).\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:726\nmsgid \"%s: operation timed out\"\nmsgstr \"\"\n\n#: input/OVA.ml:127 input/OVA.ml:121\nmsgid \"\"\n\"%s: unsupported file format\\n\"\n\"\\n\"\n\"Formats which we currently understand for '-i ova' are: tar (uncompressed, \"\n\"compress with gzip or xz), zip\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:191\nmsgid \"%s: warning: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:258\n#: common/mlcustomize/customize_cmdline.ml:367\nmsgid \"'CMD+ARGS'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:133\nmsgid \"\"\n\"--append-line: line must not contain newline characters.  Use the --append-\"\n\"line option multiple times to add several lines.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:152\nmsgid \"--chown: could not parse numeric UID:GID from %s:%s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:216\nmsgid \"\"\n\"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:225\nmsgid \"\"\n\"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that \"\n\"you specified\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:241\nmsgid \"\"\n\"--inject-virtio-win: virtio drivers were not found for this Windows version \"\n\"in the virtio-win source that you specified\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143\nmsgid \"--mac ip prefix length field is out of range\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:340\nmsgid \"--parallel parameter must be >= 1\"\nmsgstr \"\"\n\n#: input/input_disk.ml:42\nmsgid \"-i disk: expecting a disk image (filename) on the command line\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:65\nmsgid \"-i libvirt: expecting -ic parameter for Xen over SSH connection\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:142 input/input_vcenter_https.ml:88\nmsgid \"-i libvirt: expecting -ic parameter for vcenter connection\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:101\nmsgid \"-i libvirt: expecting -ic parameter to contain vcenter server name\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:78\nmsgid \"-i libvirt: expecting -ip passwordfile parameter for vCenter connection\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:70\n#. input/input_libvirt.ml:41\n#: input/input_xen_ssh.ml:57 input/input_vddk.ml:132\nmsgid \"-i libvirt: expecting a libvirt guest name on the command line\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:59\nmsgid \"-i libvirtxml: expecting a libvirt XML filename on the command line\"\nmsgstr \"\"\n\n#: input/input_ova.ml:243\nmsgid \"-i ova: OVF references file ‘%s’ which was not found in the OVA archive\"\nmsgstr \"\"\n\n#: input/input_ova.ml:78\nmsgid \"\"\n\"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = \"\n\"%s, expected = %s)\"\nmsgstr \"\"\n\n#: input/input_ova.ml:52\nmsgid \"-i ova: expecting an OVA file name on the command line\"\nmsgstr \"\"\n\n#: input/OVA.ml:361\nmsgid \"\"\n\"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:57\nmsgid \"-i vmx: cannot use -it vddk in this input mode\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:60\nmsgid \"-i vmx: expecting a VMX file or ssh:// URI\"\nmsgstr \"\"\n\n#: input/vCenter.ml:159\nmsgid \"\"\n\"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:119\nmsgid \"-it vddk: ‘-io %s’ is not a valid input option\"\nmsgstr \"\"\n\n#: output/output.ml:54\nmsgid \"-o %s: %s option cannot be used in this output mode\"\nmsgstr \"\"\n\n#: output/output_disk.ml:66\nmsgid \"-o disk: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:59 output/output_disk.ml:56\nmsgid \"-o disk: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:81\nmsgid \"-o kubevirt: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:91\nmsgid \"\"\n\"-o kubevirt: the guest name must contain only lowercase alphanumeric \"\n\"characters, '-' or '.', and must start and end with an alphanumeric \"\n\"character.  Rerun virt-v2v with the '-on name' option to rename it.\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:71\nmsgid \"-o kubevirt: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:120\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ does not have /pool/target/path element.  See \"\n\"virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:124\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path \"\n\"element is not a local directory.  See virt-v2v-output-local(1)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:116\nmsgid \"\"\n\"-o libvirt: output pool ‘%s’ is not a directory (type='dir').  See virt-v2v-\"\n\"output-local(1)\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:88\nmsgid \"-o openstack mode only supports -oa sparse -of raw\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:115\nmsgid \"-o openstack: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:97\nmsgid \"-o ovirt-upload: -oo ovirt-cafile set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:101\nmsgid \"-o ovirt-upload: -oo ovirt-cluster set more than once\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:112\nmsgid \"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:76\nmsgid \"\"\n\"-o ovirt-upload: output password file was not specified, use ‘-op’ to point \"\n\"to a file which contains the password used to connect to the oVirt server\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:83\nmsgid \"-o ovirt-upload: output storage was not specified, use ‘-os’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:116\nmsgid \"-o ovirt-upload: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:68\nmsgid \"\"\n\"-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which \"\n\"is usually https://servername/ovirt-engine/api\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:51\nmsgid \"-o ovirt: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:72\nmsgid \"-o qemu: output directory was not specified, use '-os /dir'\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:63\nmsgid \"-o qemu: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:102\nmsgid \"-o vdsm: -oo vdsm-image-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:81\nmsgid \"-o vdsm: -oo vdsm-ovf-output set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:77\nmsgid \"-o vdsm: -oo vdsm-vm-uuid set more than once\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:110\nmsgid \"-o vdsm: -os option was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:97\nmsgid \"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:90\nmsgid \"-o vdsm: unknown output option ‘-oo %s’\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:74\nmsgid \"-o vdsm: unknown vdsm-compat level ‘%s’\"\nmsgstr \"\"\n\n#. output/output_kubevirt.ml:84\n#. output/output_disk.ml:68\n#: output/output_vdsm.ml:112 output/output_qemu.ml:74\nmsgid \"-os %s: output directory does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:279\nmsgid \"<checksum> missing 'method' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:291\nmsgid \"<checksum> unknown fail='%s' attribute, ignoring\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317\nmsgid \"<disk type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:338\nmsgid \"<disk type='network'> with <source protocol='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:365\nmsgid \"<disk type='volume'> with <volume type='%s'> was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:299\nmsgid \"<disk> element with no type attribute ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:167\nmsgid \"<listen type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:414\nmsgid \"\"\n\"<target dev='%s'> was ignored because the device name could not be recognized\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:176\nmsgid \"\"\n\"<vmware:moref> was not found in the output of ‘virsh dumpxml \\\"%s\\\"’.  The \"\n\"most likely reason is that libvirt is too old, try upgrading libvirt to ≥ \"\n\"3.7.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:305\nmsgid \"Add package(s) to install\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:270\nmsgid \"Add package(s) to install at first boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:175\nmsgid \"Append line(s) to the file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:137\nmsgid \"Appending line to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:197\nmsgid \"Change the owner user and group ID of a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:186\nmsgid \"Change the permissions of a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:155\nmsgid \"Changing owner of %s to %d:%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:141\nmsgid \"Changing permissions of %s to %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:174 input/input_libvirt.ml:157\nmsgid \"Checking %s checksum of disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:488\nmsgid \"Compatibility option doing nothing\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:219\nmsgid \"Copy files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:397\nmsgid \"Copy local files or directories from a tarball into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:230\nmsgid \"Copy local files or directories into image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:168\nmsgid \"Copying (in image): %s to %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:518\nmsgid \"Copying disk %d/%d\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:172\nmsgid \"Copying: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:322\nmsgid \"Create a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:316\nmsgid \"Create symbolic links\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:567\nmsgid \"Creating output metadata\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:321\nmsgid \"DIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:236\nmsgid \"Delete a file or directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:176\nmsgid \"Deleting: %s\"\nmsgstr \"\"\n\n#: common/mltools/getopt.ml:225\nmsgid \"Display brief help\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:385\nmsgid \"Display version and exit\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:482\nmsgid \"Do not relabel files with correct SELinux labels\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190\nmsgid \"Don't trim filesystems before conversion\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:389\nmsgid \"Don’t print progress messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:420\nmsgid \"Don’t turn off echo for passphrases\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:247\nmsgid \"Edit file using Perl expression\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:180\nmsgid \"Editing: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:386\nmsgid \"Enable libguestfs debugging messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:387\nmsgid \"Enable tracing of libguestfs calls\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:77\nmsgid \"Export Storage Domain\"\nmsgstr \"\"\n\n#: open/open.ml:88\nmsgid \"External command to run\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:408\n#. common/mlcustomize/customize_cmdline.ml:373\n#: common/mlcustomize/customize_cmdline.ml:414\nmsgid \"FILE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:455\nmsgid \"FILE:CONTENT\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:444\nmsgid \"FILE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:242\nmsgid \"FILE:EXPR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:170\nmsgid \"FILE:LINE\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:203\nmsgid \"FILENAME\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:378\n#: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334\nmsgid \"Finishing off\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:275\nmsgid \"HOSTNAME\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194\nmsgid \"How to choose root filesystem\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:177\nmsgid \"\"\n\"If reporting bugs, run %s with debugging enabled and include the complete \"\n\"output:\\n\"\n\"\\n\"\n\"  %s -v -x [...]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:386\nmsgid \"Inject a public key into the guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:282\nmsgid \"Inject the Balloon Server into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:288\nmsgid \"Inject the QEMU Guest Agent into a Windows guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:294\nmsgid \"Inject virtio-win drivers into a Windows guest\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:176\n#: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165\nmsgid \"Input format\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:77\nmsgid \"\"\n\"Input options (-io) which can be used with -it vddk\\n\"\n\"(all settings are optional):\\n\"\n\"\\n\"\n\"  -io vddk-compression=COMPR   Set VDDK compression mode (see\\n\"\n\"                                 nbdkit-vddk-plugin documentation)\\n\"\n\"  -io vddk-config=FILE         VDDK configuration file\\n\"\n\"  -io vddk-cookie=COOKIE       VDDK cookie\\n\"\n\"  -io vddk-file=FILE           Override nbdkit-vddk-plugin file= parameter\\n\"\n\"  -io vddk-libdir=LIBDIR       VDDK library parent directory\\n\"\n\"  -io vddk-nfchostport=PORT    VDDK nfchostport\\n\"\n\"  -io vddk-port=PORT           VDDK port\\n\"\n\"  -io vddk-snapshot=SNAPSHOT-MOREF\\n\"\n\"                               VDDK snapshot moref\\n\"\n\"  -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"                               VDDK server thumbprint\\n\"\n\"  -io vddk-transports=MODE:MODE:..\\n\"\n\"                               VDDK transports\\n\"\n\"\\n\"\n\"Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\\n\"\n\"information on these settings.\\n\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171\nmsgid \"Input transport\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:191\nmsgid \"Installing firstboot command: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:195\nmsgid \"Installing firstboot packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:202\nmsgid \"Installing firstboot script: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:248\nmsgid \"Installing packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:225\nmsgid \"LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:174\n#: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163\nmsgid \"Libvirt URI\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:255\nmsgid \"Linking: %s -> %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:287\n#. common/mlcustomize/customize_cmdline.ml:281\n#: common/mlcustomize/customize_cmdline.ml:293\nmsgid \"METHOD\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:426\nmsgid \"Make output machine readable\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:260\nmsgid \"Making directory: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182\nmsgid \"Map NIC to network or bridge or assign static IP\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170\nmsgid \"Map bridge ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186\nmsgid \"Map network ‘in’ to ‘out’\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:333\nmsgid \"Move files in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:264\nmsgid \"Moving: %s -> %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:45\n#. input/input_ova.ml:35\n#. input/input_libvirt.ml:233\n#. input/input_libvirt.ml:221\n#. input/input_disk.ml:35\n#: input/input_xen_ssh.ml:43 input/input_vmx.ml:36\nmsgid \"No input options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:40 output/output_null.ml:38\n#: output/output_glance.ml:40\nmsgid \"No output options can be used in this mode.\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:166\nmsgid \"OVF (metadata) directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:268\nmsgid \"\"\n\"One of rhsrvany.exe or pvvxsvc.exe is missing in %s.  One of them is \"\n\"required in order to install Windows firstboot scripts.  You can get one by \"\n\"building rhsrvany (https://github.com/rwmjones/rhsrvany)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:236\nmsgid \"Output hypervisor connection\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:51\nmsgid \"\"\n\"Output options (-oo) which can be used with -o ovirt-upload:\\n\"\n\"\\n\"\n\"  -oo ovirt-cafile=CA.PEM       Set ‘ca.pem’ certificate bundle filename.\\n\"\n\"  -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name.\\n\"\n\"  -oo ovirt-proxy               Connect via oVirt Engine proxy (default: \"\n\"false).\\n\"\n\"  -oo ovirt-verifypeer[=true|false] Verify server identity (default: \"\n\"false).\\n\"\n\"\\n\"\n\"You can override the UUIDs of the disks, instead of using autogenerated \"\n\"UUIDs\\n\"\n\"after their uploads (if you do, you must supply one for each disk):\\n\"\n\"\\n\"\n\"  -oo ovirt-disk-uuid=UUID      Disk UUID\\n\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:44\nmsgid \"\"\n\"Output options (-oo) which can be used with -o qemu:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo qemu-boot       Boot the guest in qemu after conversion\\n\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:43\nmsgid \"\"\n\"Output options (-oo) which can be used with -o vdsm:\\n\"\n\"\\n\"\n\"  -oo vdsm-compat=0.10|1.1     Write qcow2 with compat=0.10|1.1\\n\"\n\"                                   (default: 0.10)\\n\"\n\"  -oo vdsm-vm-uuid=UUID        VM UUID (required)\\n\"\n\"  -oo vdsm-ovf-output=DIR      OVF metadata directory (required)\\n\"\n\"  -oo vdsm-ovf-flavour=%s\\n\"\n\"                               Set the type of generated OVF (default: \"\n\"ovirtexp)\\n\"\n\"\\n\"\n\"For each disk you must supply one of each of these options:\\n\"\n\"\\n\"\n\"  -oo vdsm-image-uuid=UUID     Image directory UUID\\n\"\n\"  -oo vdsm-vol-uuid=UUID       Disk volume UUID\\n\"\nmsgstr \"\"\n\n#: output/output_disk.ml:44\nmsgid \"\"\n\"Output options that can be used with -o disk:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:51\nmsgid \"\"\n\"Output options that can be used with -o kubevirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\n\"  -oo create=false    Do not create the output disks\\n\"\n\"  -oo disk=disk1      Specify filename of output disk (if used, must be\\n\"\n\"                          given once for each disk, else -os path is used)\\n\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:47\nmsgid \"\"\n\"Output options that can be used with -o libvirt:\\n\"\n\"\\n\"\n\"  -oo compressed      Compress the output file (used only with -of qcow2)\\n\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:235\n#: common/mlcustomize/customize_cmdline.ml:420\nmsgid \"PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:181\nmsgid \"PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:300\n#. common/mlcustomize/customize_cmdline.ml:265\n#: common/mlcustomize/customize_cmdline.ml:427\nmsgid \"PKG,PKG..\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:263 in-place/in_place.ml:203\nmsgid \"Prefer 'virtio-blk' or 'virtio-scsi'\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:252 in-place/in_place.ml:192\nmsgid \"Print source and stop\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:208\nmsgid \"Read customize commands from file\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:421\nmsgid \"Read passphrases from stdin\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:421\nmsgid \"Recursively truncate all files in directory\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:298\nmsgid \"Recursively truncating: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:240\nmsgid \"Rename guest when converting\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:259\nmsgid \"Run command at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:368\nmsgid \"Run command in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:253\nmsgid \"Run script at first guest boot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:362\nmsgid \"Run script in disk image\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:409\nmsgid \"Run touch on a file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:250\nmsgid \"Run up to N instances of nbdcopy in parallel\"\nmsgstr \"\"\n\n#: open/open.ml:188\nmsgid \"Running external command\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:307\nmsgid \"Running touch: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_run.ml:159\n#: common/mlcustomize/customize_run.ml:274\nmsgid \"Running: %s\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:252\n#: common/mlcustomize/customize_cmdline.ml:361\nmsgid \"SCRIPT\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\n#: common/mlcustomize/customize_cmdline.ml:351\nmsgid \"SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:363\nmsgid \"SELinux relabelling\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:214\n#: common/mlcustomize/customize_cmdline.ml:328\nmsgid \"SOURCE:DEST\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:287\nmsgid \"SSH key could not be injected for this type of guest\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:284\nmsgid \"SSH key inject: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:374\nmsgid \"Scrub a file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:466\nmsgid \"Scrub build log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:374\nmsgid \"Scrubbing the log file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:279\nmsgid \"Scrubbing: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:208\nmsgid \"Set bandwidth dynamically from file\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:206\nmsgid \"Set bandwidth to bits per sec\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:172\n#: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161\nmsgid \"Set input mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184\nmsgid \"Set memory size\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196\nmsgid \"Set number of vCPUs\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:178\n#: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167\nmsgid \"Set option for input mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:242\nmsgid \"Set option for output mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:234\nmsgid \"Set output allocation mode\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:238\nmsgid \"Set output format\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:232\nmsgid \"Set output mode (default: libvirt)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:246\nmsgid \"Set output storage location\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:476\nmsgid \"Set password crypto\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:430\nmsgid \"Set program name\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:356\nmsgid \"Set root password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:403\nmsgid \"Set the default timezone\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:276\nmsgid \"Set the hostname\"\nmsgstr \"\"\n\n#: inspector/inspector.ml:181 in-place/in_place.ml:188\nmsgid \"Set the output filename\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:345\nmsgid \"Set user password\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:75\nmsgid \"Setting a random seed\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:354\nmsgid \"Setting passwords\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:113\nmsgid \"Setting random password of %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:207\nmsgid \"Setting the hostname: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:90\nmsgid \"Setting the machine ID in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:302\nmsgid \"Setting the timezone: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:481\nmsgid \"Setting up the destination: %s\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:342\n#: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310\nmsgid \"Setting up the source: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:463 in-place/in_place.ml:348\nmsgid \"Source guest information (--print-source option):\\n\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:422\nmsgid \"Specify a LUKS key\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:392\nmsgid \"TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:311\nmsgid \"TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:402\nmsgid \"TIMEZONE\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:200\nmsgid \"\"\n\"The --in-place option has been replaced by the ‘virt-v2v-in-place’ program\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:251\nmsgid \"\"\n\"The Virt machine has no support for IDE. Please report a bug for virt-v2v -- \"\n\"refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:272\nmsgid \"\"\n\"The Virt machine has no support for floppies. Please report a bug for virt-\"\n\"v2v -- refer to virt-v2v(1) section \\\"BUGS\\\".\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:785\nmsgid \"\"\n\"This guest required a password for connection to its display, but this is \"\n\"not supported by oVirt.  Therefore the converted guest’s display will not \"\n\"require a separate password to connect.\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:111\nmsgid \"\"\n\"This transport does not support guests with snapshots. Either collapse the \"\n\"snapshots for this guest and try the conversion again, or use one of the \"\n\"alternate conversion methods described in virt-v2v-input-vmware(1) section \"\n\"\\\"NOTES\\\".\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:415\nmsgid \"Truncate a file to zero size\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:294\nmsgid \"Truncating: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:192\nmsgid \"UID:GID:PATH\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:339\nmsgid \"USER:SELECTOR\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:380\nmsgid \"USER[:SELECTOR]\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:432\nmsgid \"Uninstall package(s)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:311\nmsgid \"Uninstalling packages: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:290\nmsgid \"Unpack tar file: %s to %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:438\nmsgid \"Update packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:316\nmsgid \"Updating packages\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:449\nmsgid \"Upload local file to destination\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:321\nmsgid \"Uploading: %s to %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:391\nmsgid \"Use ANSI colour sequences even if not tty\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:180\n#: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169\nmsgid \"Use password from file to connect to input hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:244\nmsgid \"Use password from file to connect to output hypervisor\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:224\nmsgid \"Use virt-v2v-in-place instead\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:392\nmsgid \"Wrap log messages even if not tty\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:460\nmsgid \"Write file\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:346\nmsgid \"Writing: %s\"\nmsgstr \"\"\n\n#: lib/YAML.ml:167\nmsgid \"\"\n\"YAML block contains newline character.  This should not happen, please \"\n\"report a bug against virt-v2v.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:96\nmsgid \"\"\n\"a libvirt domain called ‘%s’ already exists on the target.\\n\"\n\"\\n\"\n\"If using virt-v2v directly, use the ‘-on’ option to select a different name. \"\n\"Or delete the existing domain on the target using the ‘virsh undefine’ \"\n\"command.\\n\"\n\"\\n\"\n\"If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or \"\n\"delete the existing domain on the target using the ‘virsh undefine’ command.\"\nmsgstr \"\"\n\n#: common/mlcustomize/append_line.ml:44\nmsgid \"append_line: %s is not a file\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:206\nmsgid \"\"\n\"bad checksum for disk %d/%d\\n\"\n\"Expected checksum: %s\\n\"\n\"Actual checksum: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:59\nmsgid \"cannot find libvirt domain ‘%s’: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:96\nmsgid \"\"\n\"cannot find libvirt pool ‘%s’: %s\\n\"\n\"\\n\"\n\"Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-\"\n\"dumpxml <pool>’ to display details about a particular pool.\\n\"\n\"\\n\"\n\"To set the pool which virt-v2v uses, add the ‘-os <pool>’ option.\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:110\nmsgid \"cannot find libvirt volume ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:235\nmsgid \"\"\n\"cannot finish firstboot installation by running ‘%s’ because host cpu (%s) \"\n\"and guest arch (%s) are not compatible.  The firstboot service may not run \"\n\"at boot.\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:180\nmsgid \"cannot get libvirt domain capabilities: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:85\nmsgid \"cannot get libvirt hypervisor capabilities: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102\nmsgid \"cannot parse --mac \\\"%s\\\" parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126\nmsgid \"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140\nmsgid \"cannot parse --mac ip prefix length field as an integer: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:29\nmsgid \"\"\n\"cannot use ‘%s’ because no package manager has been detected for this guest \"\n\"OS.\\n\"\n\"\\n\"\n\"If this guest OS is a common one with ordinary package management then this \"\n\"may have been caused by a failure of libguestfs inspection.\\n\"\n\"\\n\"\n\"For OSes such as Windows that lack package management, this is not \"\n\"possible.  Try using one of the ‘--firstboot*’ flags instead (described in \"\n\"the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:91\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d, even though we appear to be \"\n\"running as root. This probably means the NFS client or idmapd is not \"\n\"configured properly.\\n\"\n\"\\n\"\n\"You will have to chown the files that virt-v2v creates after the run, \"\n\"otherwise oVirt will not be able to import the VM.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:99\nmsgid \"\"\n\"cannot write files to the NFS server as %d:%d. You might want to stop virt-\"\n\"v2v (^C) and rerun it as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:508\nmsgid \"command '%s' cannot be used in command files, see the man page\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:525\nmsgid \"command '%s' not valid, see the man page\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:318\nmsgid \"could not add grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: input/ssh.ml:52\nmsgid \"\"\n\"could not copy the VMX file from the remote server, see earlier error \"\n\"messages\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:211\nmsgid \"\"\n\"could not define libvirt domain: %s.\\n\"\n\"The libvirt XML is still available in ‘%s’.  Try running ‘virsh -c %s define \"\n\"%s’ yourself instead.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:221\nmsgid \"could not determine a way to update the configuration of Grub2\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:243\nmsgid \"\"\n\"could not fetch thumbprint from the server, you mus use ‘-io vddk-\"\n\"thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:376\nmsgid \"could not find bootloader mount point (%s): %s\"\nmsgstr \"\"\n\n#: common/mldrivers/windows_drivers.ml:91\nmsgid \"\"\n\"could not find registry entry \"\n\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\DriverDatabase\\\\DeviceIds in this Windows \"\n\"guest.  It may be either a very old or very new version of Windows that we \"\n\"cannot process.\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:232\nmsgid \"\"\n\"could not finish firstboot installation by running ‘%s’ because the command \"\n\"failed: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:94\n#: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151\nmsgid \"could not parse '-ic %s'.  Original error message was: %s\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54\nmsgid \"could not parse device name ‘%s’ from the source libvirt XML\"\nmsgstr \"\"\n\n#: input/OVF.ml:168\nmsgid \"could not parse disk rasd:HostResource from OVF document\"\nmsgstr \"\"\n\n#: input/input_ova.ml:98\nmsgid \"could not parse ovf:Name from OVF document\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:247\nmsgid \"\"\n\"could not read the %s specified by the '-os %s' parameter on the command \"\n\"line.  Is it really an OVirt %s?  The original error is: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:336\nmsgid \"\"\n\"could not rebuild grub2 configuration file (%s).  This may mean that grub \"\n\"output will not be sent to the serial port, but otherwise should be \"\n\"harmless.  Original error message: %s\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:156\nmsgid \"could not refresh libvirt pool ‘%s’: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:320\nmsgid \"could not remove grub2 serial console (ignored)\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:93\nmsgid \"\"\n\"decode_utf16le: Windows UTF16-LE string contains non-7-bit characters.  This \"\n\"is a bug in %s, please report it.\"\nmsgstr \"\"\n\n#: common/mltools/registry.ml:87\nmsgid \"\"\n\"decode_utf16le: Windows string does not appear to be in UTF16-LE encoding.  \"\n\"This could be a bug in %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:126\nmsgid \"didn't find grub entry for kernel %s\"\nmsgstr \"\"\n\n#: input/input_disk.ml:150\nmsgid \"disks on the command line have mixed formats\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:194\nmsgid \"display <graphics type='%s'> in the input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: output/output_qemu.ml:147\nmsgid \"don’t know how to convert UEFI guests for architecture %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:158\nmsgid \"don’t know how to find file owner using %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:89\nmsgid \"don’t know how to get list of files from package using %s\"\nmsgstr \"\"\n\n#: common/mltools/curl.ml:82\nmsgid \"downloading %s\"\nmsgstr \"\"\n\n#: lib/networks.ml:84\nmsgid \"\"\n\"duplicate --mac parameter.  Duplicate mappings specified for MAC address %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:102\nmsgid \"\"\n\"duplicate -b/--bridge parameter.  Duplicate mappings specified for bridge %s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:108\nmsgid \"duplicate -b/--bridge parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: lib/networks.ml:90\nmsgid \"\"\n\"duplicate -n/--network parameter.  Duplicate mappings specified for network \"\n\"%s.\"\nmsgstr \"\"\n\n#: lib/networks.ml:96\nmsgid \"duplicate -n/--network parameter.  Only one default mapping is allowed.\"\nmsgstr \"\"\n\n#: input/OVF.ml:143\nmsgid \"error parsing disk fileRef\"\nmsgstr \"\"\n\n#: input/input_ova.ml:124\nmsgid \"error uncompressing %s, see earlier error messages\"\nmsgstr \"\"\n\n#: input/OVA.ml:210 input/OVA.ml:112\nmsgid \"error unpacking %s, see earlier error messages\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:248\nmsgid \"exception: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:455\nmsgid \"exited with error %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:34\nmsgid \"exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: input/input_disk.ml:147\nmsgid \"expected >= 1 disk name on the command line\"\nmsgstr \"\"\n\n#: common/mltools/xpath_helpers.ml:36\nmsgid \"\"\n\"expecting XML expression to return an integer (expression: %s, matching \"\n\"string: %s)\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:440\nmsgid \"external command\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:265\nmsgid \"failed server prechecks, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:507\nmsgid \"failed to create virtual machine, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:479\nmsgid \"failed to finalize the transfers, see earlier errors\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:208\nmsgid \"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)\"\nmsgstr \"\"\n\n#: input/OVA.ml:461\nmsgid \"failed to parse line returned by tar: %S\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:394\nmsgid \"failed to start transfer, see earlier errors\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:311\nmsgid \"failed vmchecks, see earlier errors\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:239\nmsgid \"failure: %s\"\nmsgstr \"\"\n\n#: input/input_ova.ml:134\nmsgid \"file ‘%s’ not found in the ova\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:143\nmsgid \"\"\n\"firstboot: unknown version for old firstboot.service file %s (md5=%s), it \"\n\"will not be removed\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:258\nmsgid \"generated by %s %s\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:39\nmsgid \"get_osinfo_id: unknown guest operating system: %s\"\nmsgstr \"\"\n\n#: output/output_glance.ml:66\nmsgid \"\"\n\"glance: glance client is not installed or set up correctly.  You may need to \"\n\"set environment variables or source a script to enable authentication.  See \"\n\"preceding messages for details.\"\nmsgstr \"\"\n\n#: output/output_glance.ml:139\nmsgid \"glance: image upload to glance failed, see earlier errors\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164\nmsgid \"guest type %s is not supported\"\nmsgstr \"\"\n\n#: common/mlcustomize/firstboot.ml:413\nmsgid \"guest type %s/%s is not supported\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:749\nmsgid \"\"\n\"host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command \"\n\"line options that involve running commands in the guest.  Use --firstboot \"\n\"scripts instead.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:209\nmsgid \"hostname could not be set for this type of guest\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:342\nmsgid \"ignoring kernel %s in bootloader, as it does not exist.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:160\nmsgid \"image directory (%s) does not exist or is not a directory\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:81\nmsgid \"in the libvirt XML metadata, <domain type='...'> is missing or empty\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:87\nmsgid \"in the libvirt XML metadata, <name> is missing or empty\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107\nmsgid \"in-place mode does not work with HTTP source\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:146\nmsgid \"in-place mode does not work with VDDK source\"\nmsgstr \"\"\n\n#: input/input_vmx.ml:43\nmsgid \"in-place mode does not work with VMX source\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:50\nmsgid \"in-place mode does not work with Xen over SSH source\"\nmsgstr \"\"\n\n#: output/output_kubevirt.ml:116\nmsgid \"\"\n\"incorrect number of '-oo disk' parameters.  This guest has %d disks, but the \"\n\"parameter was used %d times.\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:119\nmsgid \"\"\n\"input from xen over ssh does not support disks stored on remote block \"\n\"devices.  See virt-v2v-input-xen(1) section \\\"Xen or ssh conversions from \"\n\"block devices\\\".\"\nmsgstr \"\"\n\n#. in-place/in_place.ml:397\n#: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353\nmsgid \"\"\n\"insufficient free space in the conversion server temporary directory %s \"\n\"(%s).\\n\"\n\"\\n\"\n\"Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR \"\n\"environment variable to point to another directory with more than 1GB of \"\n\"free space.\\n\"\n\"\\n\"\n\"See also the virt-v2v(1) manual, section \\\"Minimum free space check in the \"\n\"host\\\".\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:246\nmsgid \"internal error: Not_found exception was thrown\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:243\nmsgid \"internal error: assertion failed at %s, line %d, char %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:241\nmsgid \"internal error: invalid argument: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:128\nmsgid \"internal error: is_file_owned: dpkg command returned no output\"\nmsgstr \"\"\n\n#: common/mldrivers/linux.ml:133\nmsgid \"internal error: is_file_owned: unexpected output from dpkg command: %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:130\nmsgid \"internal error: regular expression did not match ‘%s’\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:548\nmsgid \"internal error: wait returned unexpected process ID %d status \\\"%s\\\"\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111\nmsgid \"invalid --mac ip option\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95\nmsgid \"invalid -b/--bridge parameter\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87\nmsgid \"invalid -n/--network parameter\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:402\nmsgid \"invalid cpuid.coresPerSocket < number of vCPUs\"\nmsgstr \"\"\n\n#. common/mlcustomize/customize_cmdline.ml:153\n#. common/mlcustomize/customize_cmdline.ml:145\n#: common/mlcustomize/customize_cmdline.ml:161\nmsgid \"invalid format for '--%s' parameter, see the man page\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:359\nmsgid \"invalid format string for --machine-readable: %s\"\nmsgstr \"\"\n\n#: lib/utils.ml:279\nmsgid \"invalid input filename (%s)\"\nmsgstr \"\"\n\n#: input/OVA.ml:445\nmsgid \"invalid offset returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:374\nmsgid \"invalid output fd for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:376\nmsgid \"invalid output for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:368\nmsgid \"invalid output stream for --machine-readable: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:73\nmsgid \"invalid password selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVA.ml:450\nmsgid \"invalid size returned by tar: %S\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:45\nmsgid \"invalid ssh-inject selector ‘%s’; see the man page\"\nmsgstr \"\"\n\n#: input/OVF.ml:82\nmsgid \"invalid vmw:CoresPerSocket (%d) ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:88\nmsgid \"invalid vmw:CoresPerSocket < number of cores\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:114\nmsgid \"kernel %s is not under grub tree %s\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458\nmsgid \"killed by signal %d\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:237\nmsgid \"libguestfs error: %s\"\nmsgstr \"\"\n\n#: lib/libvirt_utils.ml:72\nmsgid \"\"\n\"libvirt domain ‘%s’ is running or paused.  Converting a live guest will \"\n\"result in corrupted output. However this is safe if you're converting from a \"\n\"snapshot\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:47\nmsgid \"log file %s: %s (ignored)\"\nmsgstr \"\"\n\n#: input/OVA.ml:147\nmsgid \"\"\n\"making OVA directory public readable to work around libvirt bug https://\"\n\"bugzilla.redhat.com/1045069\"\nmsgstr \"\"\n\n#: input/input_ova.ml:86\nmsgid \"manifest has a checksum for non-existent file %s (ignored)\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_cmdline.ml:472\nmsgid \"md5|sha256|sha512\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:119\nmsgid \"method '%s' is no longer supported\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:39\nmsgid \"missing value for the key ‘%s’\"\nmsgstr \"\"\n\n#: input/OVA.ml:276\nmsgid \"more than one .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:34\nmsgid \"more than value for the key ‘%s’\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:222\nmsgid \"\"\n\"mount command failed, see earlier errors.\\n\"\n\"\\n\"\n\"This probably means you didn't specify the right %s path [-os %s], or else \"\n\"you need to rerun virt-v2v as root.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:103\nmsgid \"\"\n\"multiple --root-password/--password options set the password for user ‘%s’ \"\n\"twice\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:319\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"It looks like you did not set the right path in the ‘-io vddk-libdir’ \"\n\"option, or your copy of the VDDK directory is incomplete.  There should be a \"\n\"library called ’<libdir>/%s/libvixDiskLib.so.?’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:313\nmsgid \"\"\n\"nbdkit VDDK plugin is not installed or not working.  It is required if you \"\n\"want to use VDDK.\\n\"\n\"\\n\"\n\"The VDDK plugin is not enabled by default when you compile nbdkit.  You have \"\n\"to read the instructions in the nbdkit sources under ‘plugins/vddk/\"\n\"README.VDDK’ to find out how to enable the VDDK plugin.\\n\"\n\"\\n\"\n\"See also the virt-v2v-input-vmware(1) manual.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:223\nmsgid \"nbdkit did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:225\nmsgid \"\"\n\"nbdkit did not start up.  There may be errors printed by nbdkit above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283\nmsgid \"nbdkit is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_disk.ml:92\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i disk’.\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:68\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-i libvirt|\"\n\"libvirtxml’.\"\nmsgstr \"\"\n\n#: output/output.ml:178 output/output.ml:77\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o disk’.\"\nmsgstr \"\"\n\n#: output/output_null.ml:57\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o null’.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:163\nmsgid \"\"\n\"nbdkit is not installed or not working.  It is required to use ‘-o ovirt-\"\n\"upload’.  See the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:285\nmsgid \"nbdkit must be >= 1.45.11 for input from VDDK\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:176\nmsgid \"\"\n\"nbdkit python plugin is not installed or not working.  It is required if you \"\n\"want to use ‘-o ovirt-upload’.\\n\"\n\"\\n\"\n\"See also the virt-v2v-output-ovirt(1) manual.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:190\nmsgid \"\"\n\"nbdkit was compiled without SELinux support.  You will have to recompile \"\n\"nbdkit with libselinux-devel installed, or else set SELinux to Permissive \"\n\"mode while doing the conversion.\"\nmsgstr \"\"\n\n#. input/input_libvirt.ml:76\n#. input/input_disk.ml:98\n#: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289\nmsgid \"nbdkit-cow-filter is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_curl.ml:35\nmsgid \"nbdkit-curl-plugin is not installed\"\nmsgstr \"\"\n\n#. input/input_disk.ml:96\n#: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72\nmsgid \"nbdkit-file-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:74\nmsgid \"nbdkit-nbd-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: output/output_null.ml:60\nmsgid \"nbdkit-null-plugin is not installed or not working\"\nmsgstr \"\"\n\n#: input/nbdkit_ssh.ml:39\nmsgid \"nbdkit-ssh-plugin is not installed\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:287\nmsgid \"nbdkit-vddk-plugin is not installed\"\nmsgstr \"\"\n\n#: lib/nbdkit.ml:56\nmsgid \"nbdkit: unexpected version in --dump-config: %s\"\nmsgstr \"\"\n\n#. input/input_vcenter_https.ml:49\n#. input/input_ova.ml:46\n#. input/input_libvirt.ml:35\n#. input/input_disk.ml:39\n#: input/input_xen_ssh.ml:47 input/input_vmx.ml:40\nmsgid \"no -io (input options) are allowed here\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:44 output/output_null.ml:42\n#: output/output_glance.ml:44\nmsgid \"no -oo (output options) are allowed here\"\nmsgstr \"\"\n\n#: input/OVA.ml:273\nmsgid \"no .ovf file was found in %s\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_bootloaders.ml:402\nmsgid \"no bootloader detected\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:359\nmsgid \"no displayName key found in VMX file\"\nmsgstr \"\"\n\n#: input/OVF.ml:148\nmsgid \"no href in ovf:File (id=%s)\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:194\nmsgid \"no initrd was found in /boot matching %s %s.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:317\nmsgid \"\"\n\"no installed kernel packages were found.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to inspect this guest properly.\"\nmsgstr \"\"\n\n#: common/mldrivers/linux_kernels.ml:354\nmsgid \"\"\n\"no kernels were found in the bootloader configuration.\\n\"\n\"\\n\"\n\"This probably indicates that %s was unable to parse the bootloader \"\n\"configuration of this guest.\"\nmsgstr \"\"\n\n#: output/python_script.ml:55\nmsgid \"no python binary called ‘%s’ can be found on the $PATH\"\nmsgstr \"\"\n\n#: input/select_input.ml:106\nmsgid \"\"\n\"no support for remote libvirt connections to '-ic %s'.  The conversion may \"\n\"fail when it tries to read the source disks.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:1027\nmsgid \"\"\n\"oVirt cannot emulate ‘%s’ sound cards.  This sound card will be dropped from \"\n\"the output.\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:875 lib/create_ovf.ml:512\nmsgid \"oVirt does not support the output format ‘%s’, only raw or qcow2\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:120\nmsgid \"openstack: -oo server-id=<NAME|UUID> not present\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:338\nmsgid \"\"\n\"openstack: failed to attach cinder volume to VM, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:291\nmsgid \"openstack: failed to create a cinder volume, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:304\nmsgid \"\"\n\"openstack: failed to query cinder volume status, see earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:442\nmsgid \"\"\n\"openstack: failed to set image properties on cinder volume, see earlier \"\n\"error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:199\nmsgid \"\"\n\"openstack: precheck failed, there may be a problem with authentication, see \"\n\"earlier error messages\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:311\nmsgid \"\"\n\"openstack: unknown volume status \\\"%s\\\": expected \\\"creating\\\" or \"\n\"\\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output.ml:133\nmsgid \"output mode only supports raw or qcow2 format (format: %s)\"\nmsgstr \"\"\n\n#: input/OVF.ml:263\nmsgid \"\"\n\"ova disk has an unknown VMware controller type (%d), please report this as a \"\n\"bug supplying the *.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: input/OVF.ml:259\nmsgid \"\"\n\"ova disk has no parent controller, please report this as a bug supplying the \"\n\"*.ovf file extracted from the ova\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:367\nmsgid \"\"\n\"ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported.  If \"\n\"the input is in a different format then force one of these output formats by \"\n\"adding either ‘-of raw’ or ‘-of qcow2’ on the command line.\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:51\nmsgid \"\"\n\"password-crypto: unknown algorithm %s, use \\\"md5\\\", \\\"sha256\\\", \\\"sha512\\\" \"\n\"or \\\"yescrypt\\\"\"\nmsgstr \"\"\n\n#: common/mlcustomize/password.ml:197\nmsgid \"\"\n\"password: using insecure md5 password encryption for guest of type %s \"\n\"version %d.%d.\\n\"\n\"If this is incorrect, use --password-crypto option and file a bug.\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:359\nmsgid \"passwords could not be set for this type of guest\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:125\nmsgid \"\"\n\"qemu-nbd did not start up.  See previous debugging messages for problems.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:127\nmsgid \"\"\n\"qemu-nbd did not start up.  There may be errors printed by qemu-nbd above.\\n\"\n\"\\n\"\n\"If the messages above are not sufficient to diagnose the problem then add \"\n\"the ‘virt-v2v -v -x’ options and examine the debugging output carefully.\"\nmsgstr \"\"\n\n#: lib/qemuNBD.ml:47\nmsgid \"qemu-nbd: unexpected version in --version: %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:77\nmsgid \"random seed could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:44\nmsgid \"remote vmx ‘%s’ could not be parsed as a URI\"\nmsgstr \"\"\n\n#. common/mlcustomize/inject_virtio_win.ml:357\n#. common/mlcustomize/inject_virtio_win.ml:352\n#: common/mlcustomize/inject_virtio_win.ml:362\nmsgid \"\"\n\"root directory ‘/’ is missing from the virtio-win directory or ISO.\\n\"\n\"\\n\"\n\"This should not happen and may indicate that virtio-win or virt-v2v is \"\n\"broken in some way.  Please report this as a bug with a full debug log.\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:417 common/options/keys.c:264\n#, c-format\nmsgid \"selector '%s': invalid TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:409 common/options/keys.c:254\n#, c-format\nmsgid \"selector '%s': missing FILENAME, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:399 common/options/keys.c:232\n#, c-format\nmsgid \"selector '%s': missing ID\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:404 common/options/keys.c:245\n#, c-format\nmsgid \"selector '%s': missing KEY_STRING, or too many fields\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:401 common/options/keys.c:239\n#, c-format\nmsgid \"selector '%s': missing TYPE\"\nmsgstr \"\"\n\n#: common/mltools/tools_utils.ml:413 common/options/keys.c:262\n#, c-format\nmsgid \"selector '%s': too many fields\"\nmsgstr \"\"\n\n#: lib/utils.ml:35\nmsgid \"signalled by signal %d\"\nmsgstr \"\"\n\n#: common/mlcustomize/guest_packages.ml:40\nmsgid \"\"\n\"sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\\n\"\n\"\\n\"\n\"You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ \"\n\"options instead (described in the virt-customize(1) manual).\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:57\nmsgid \"ssh-inject: $HOME environment variable is not set\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:93\nmsgid \"ssh-inject: key is an empty string\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:66\nmsgid \"ssh-inject: no public key file found in %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:83\nmsgid \"ssh-inject: public key file (%s) is empty\"\nmsgstr \"\"\n\n#: common/mlcustomize/ssh_key.ml:112\nmsgid \"ssh-inject: the user %s does not exist on the guest\"\nmsgstr \"\"\n\n#. common/mltools/tools_utils.ml:461\n#: lib/utils.ml:36 common/mltools/tools_utils.ml:542\nmsgid \"stopped by signal %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:58\nmsgid \"subprocess exited with non-zero error code %d\"\nmsgstr \"\"\n\n#: output/changeuid.ml:60\nmsgid \"subprocess signalled or stopped by signal %d\"\nmsgstr \"\"\n\n#: lib/utils.ml:33\nmsgid \"success\"\nmsgstr \"\"\n\n#: output/create_libvirt_xml.ml:297\nmsgid \"\"\n\"target hypervisor does not support floppy devices, but floppy devices were \"\n\"found in the source guest\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:156\nmsgid \"\"\n\"the Python module ‘ovirtsdk4’ could not be loaded, is it installed?  See \"\n\"previous messages for problems.\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:453\nmsgid \"the cluster ‘%s’ does not support the architecture %s but %s\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:59\nmsgid \"\"\n\"the command may have failed because the network is disabled.  Try either \"\n\"removing ‘--no-network’ or adding ‘--network’ on the command line.\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:84\nmsgid \"the key ‘%s’ was not found in a list of objects\"\nmsgstr \"\"\n\n#: output/output_ovirt_upload.ml:288\nmsgid \"\"\n\"the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line \"\n\"has to match the number of guest disk images (for this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:133\nmsgid \"\"\n\"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters \"\n\"passed on the command line has to match the number of guest disk images (for \"\n\"this guest: %d)\"\nmsgstr \"\"\n\n#: output/output_libvirt.ml:239\nmsgid \"the target hypervisor does not support a %s KVM guest\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:78\nmsgid \"the value for key ‘%s’ is not a string as expected\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:50\nmsgid \"the value for the key ‘%s’ is not a bool\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:45\nmsgid \"the value for the key ‘%s’ is not a string\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:70\nmsgid \"the value for the key ‘%s’ is not an integer\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:55\nmsgid \"the value for the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:59\nmsgid \"the value is not an object\"\nmsgstr \"\"\n\n#: common/mltools/JSON_parser.ml:35\nmsgid \"the value of the key ‘%s’ is not an object\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:519\nmsgid \"\"\n\"the virtual size of the input disk %d is not an exact multiple of 512 \"\n\"bytes.  The virtual size is: %Ld.\\n\"\n\"\\n\"\n\"This probably means something unexpected is going on, so please file a bug \"\n\"about this issue.\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:144\nmsgid \"\"\n\"the ‘%s’ program is not available.  It is needed to communicate with \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:265\nmsgid \"\"\n\"there are multiple UUIDs in the %s (%s).  This is unexpected, and may be a \"\n\"bug in virt-v2v or OVirt.\"\nmsgstr \"\"\n\n#: output/output_ovirt.ml:262\nmsgid \"there are no UUIDs in the %s (%s).  Is it really an OVirt %s?\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:153\nmsgid \"\"\n\"there are no virtio drivers available for this version of Windows (%d.%d %s \"\n\"%s %s).  virt-v2v looks for drivers in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use slower emulated devices.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:175\nmsgid \"\"\n\"there is no virtio block device driver for this version of Windows (%d.%d \"\n\"%s).  virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: common/mlcustomize/inject_virtio_win.ml:206\nmsgid \"\"\n\"there is no virtio network driver for this version of Windows (%d.%d %s).  \"\n\"virt-v2v looks for this driver in %s\\n\"\n\"\\n\"\n\"The guest will be configured to use a slower emulated device.\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:545\nmsgid \"this guest has a direct network interface which will be ignored\"\nmsgid_plural \"this guest has direct network interfaces which will be ignored\"\nmsgstr[0] \"\"\n\n#: input/parse_libvirt_xml.ml:527\nmsgid \"this guest has a passthrough host device which will be ignored\"\nmsgid_plural \"this guest has passthrough host devices which will be ignored\"\nmsgstr[0] \"\"\n\n#: input/parse_libvirt_xml.ml:248\nmsgid \"this guest has no non-removable disks\"\nmsgstr \"\"\n\n#: output/output.ml:65\nmsgid \"this output module doesn't support copying more than %d disks\"\nmsgstr \"\"\n\n#: common/mlcustomize/timezone.ml:35\nmsgid \"timezone '%s' does not exist, use a location like 'Europe/London'\"\nmsgstr \"\"\n\n#: common/mlcustomize/customize_run.ml:304\nmsgid \"timezone could not be set for this type of guest\"\nmsgstr \"\"\n\n#: input/OVA.ml:318\nmsgid \"unable to parse line from manifest file: %S\"\nmsgstr \"\"\n\n#: common/mltools/urandom.ml:37\nmsgid \"unexpected end of file while reading /dev/urandom\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:196\nmsgid \"unexpected output from the %s command\"\nmsgstr \"\"\n\n#: common/mltools/checksums.ml:58\nmsgid \"unhandled checksum type ‘%s’\"\nmsgstr \"\"\n\n#: lib/types.ml:524\nmsgid \"unknown --root option: %s\"\nmsgstr \"\"\n\n#: input/select_input.ml:51\nmsgid \"unknown -i option: %s\"\nmsgstr \"\"\n\n#: output/select_output.ml:74\nmsgid \"unknown -o option: %s\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:164\nmsgid \"unknown -oa option: %s\"\nmsgstr \"\"\n\n#: input/input_libvirt.ml:189\nmsgid \"unknown <checksum> method='%s'\"\nmsgstr \"\"\n\n#: input/OVF.ml:103\nmsgid \"unknown Config:firmware value %s (expected \\\"bios\\\" or \\\"efi\\\")\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:446 lib/create_ovf.ml:247\nmsgid \"unknown Windows 10 variant: %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:319 in-place/in_place.ml:256\nmsgid \"unknown block driver ‘--block-driver %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:415\nmsgid \"unknown firmware value '%s', assuming BIOS\"\nmsgstr \"\"\n\n#: lib/create_ovf.ml:454 lib/create_ovf.ml:255\nmsgid \"unknown guest operating system: %s %s %d.%d %s (%s)\"\nmsgstr \"\"\n\n#: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238\nmsgid \"unknown input transport ‘-it %s’\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:428\nmsgid \"unknown sound device '%s' ignored\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:215\nmsgid \"unknown sound model %s ignored\"\nmsgstr \"\"\n\n#: input/OVF.ml:156\nmsgid \"unsupported compression in OVF: %s\"\nmsgstr \"\"\n\n#: input/input_vcenter_https.ml:123\nmsgid \"\"\n\"vcenter: <vmware:datacenterpath> was not found in the XML.  You need to \"\n\"upgrade to libvirt ≥ 1.2.20.\"\nmsgstr \"\"\n\n#: input/vCenter.ml:79\nmsgid \"vcenter: URL not found: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:70\nmsgid \"vcenter: incorrect username or password\"\nmsgstr \"\"\n\n#: input/vCenter.ml:72\nmsgid \"\"\n\"vcenter: incorrect username or password.  You might need to specify the \"\n\"username in the URI like this: [vpx|esx|..]://USERNAME@[etc]\"\nmsgstr \"\"\n\n#: input/vCenter.ml:84\nmsgid \"vcenter: invalid response from server: %s\"\nmsgstr \"\"\n\n#: input/vCenter.ml:194\nmsgid \"vcenter: no status code in output of ‘curl’ command.\"\nmsgstr \"\"\n\n#: output/output_vdsm.ml:148\nmsgid \"vdsm: invalid -os parameter does not contain a valid UUID: %s\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:56\nmsgid \"\"\n\"virt-v2v -oo server-id=<NAME|UUID> [os-*=...]\\n\"\n\"\\n\"\n\"Specify the name or UUID of the conversion appliance using\\n\"\n\"\\n\"\n\"  virt-v2v ... -o openstack -oo server-id=<NAME|UUID>\\n\"\n\"\\n\"\n\"When virt-v2v runs it will attach the Cinder volumes to the\\n\"\n\"conversion appliance, so this name or UUID must be the name\\n\"\n\"of the virtual machine on OpenStack where virt-v2v is running.\\n\"\n\"\\n\"\n\"In addition, all usual OpenStack “os-*” parameters or “OS_*”\\n\"\n\"environment variables can be used.\\n\"\n\"\\n\"\n\"Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\\n\"\n\"\\n\"\n\"For example:\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-username=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-username=<NAME>\\n\"\n\"            or the environment variable: OS_USERNAME=<NAME>\\n\"\n\"\\n\"\n\"  virt-v2v -oo os-project-name=<NAME>\\n\"\n\"\\n\"\n\"                equivalent to openstack: --os-project-name=<NAME>\\n\"\n\"            or the environment variable: OS_PROJECT_NAME=<NAME>\\n\"\n\"\\n\"\n\"The os-* parameters and environment variables are optional.\\n\"\nmsgstr \"\"\n\n#: input/parse_libvirt_xml.ml:189\nmsgid \"\"\n\"virt-v2v does not support local displays, so <graphics type='%s'> in the \"\n\"input libvirt XML was ignored\"\nmsgstr \"\"\n\n#: input/select_input.ml:83\nmsgid \"virt-v2v-in-place does not support remote libvirt URIs\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:50\nmsgid \"vmx URI path component looks incorrect\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:48\nmsgid \"vmx URI remote server name omitted\"\nmsgstr \"\"\n\n#: input/parse_domain_from_vmx.ml:46\nmsgid \"vmx URI start with ‘ssh://...’\"\nmsgstr \"\"\n\n#: input/VMX.ml:313\nmsgid \"vmx parser: cannot parse this line, ignoring: %s\"\nmsgstr \"\"\n\n#: input/VMX.ml:346\nmsgid \"vmx parser: duplicate key '%s' ignored\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:299\nmsgid \"wait for cinder volume status to change to \\\"available\\\"\"\nmsgstr \"\"\n\n#: output/output_openstack.ml:360\nmsgid \"waiting for cinder volume %s to attach to the conversion appliance\"\nmsgstr \"\"\n\n#: open/open.ml:136\nmsgid \"you must supply the --run parameter\"\nmsgstr \"\"\n\n#: input/input_xen_ssh.ml:87 input/input_vddk.ml:189\nmsgid \"‘-ic %s’ URL does not contain a host name field\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:273\nmsgid \"‘-io vddk-file=’ must be used exactly %d times\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:297\nmsgid \"\"\n\"‘-io vddk-libdir=%s’ does not point to a directory.  See the virt-v2v-input-\"\n\"vmware(1) manual.\"\nmsgstr \"\"\n\n#: output/output.ml:85\nmsgid \"\"\n\"‘-oo compressed’ is only allowed when the output format is a local qcow2-\"\n\"format file, i.e. ‘-of qcow2’\"\nmsgstr \"\"\n\n#: input/input_vddk.ml:232\nmsgid \"\"\n\"‘openssl’ command not found: automatically detecting thumbprint is not \"\n\"possible, so you must use ‘-io vddk-thumbprint=XX:XX...’\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:68\n#, c-format\nmsgid \"Try ‘%s --help’ or consult %s(1) for more information.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:187\n#, c-format\nmsgid \"%s: ‘%s’ is not a numeric value.\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:193\n#, c-format\nmsgid \"%s: %s: integer out of range\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:383\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for -%c; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:386\n#, c-format\nmsgid \"%s: ‘%s’ is not allowed for %s%s; allowed values are:\\n\"\nmsgstr \"\"\n\n#: common/mltools/getopt-c.c:421\n#, c-format\nmsgid \"Extra parameter on the command line: ‘%s’.\\n\"\nmsgstr \"\"\n\n#: common/options/config.c:72\n#, c-format\nmsgid \"%s: line %d: error parsing configuration file: %s\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:52\n#, c-format\nmsgid \"string size overflow\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:170\n#, c-format\nmsgid \"\"\n\"'clevis_luks_unlock', needed for decrypting %s, is unavailable in this \"\n\"libguestfs version\"\nmsgstr \"\"\n\n#: common/options/decrypt.c:184\n#, c-format\nmsgid \"\"\n\"could not find key to open LUKS encrypted %s.\\n\"\n\"\\n\"\n\"Try using --key on the command line.\\n\"\n\"\\n\"\n\"Original error: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/inspect.c:78\n#, c-format\nmsgid \"\"\n\"%s: no operating system was found on this disk\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, this disk image won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:99\n#, c-format\nmsgid \"\"\n\"%s: multi-boot operating systems are not supported\\n\"\n\"\\n\"\n\"If using guestfish ‘-i’ option, remove this option and instead\\n\"\n\"use the commands ‘run’ followed by ‘list-filesystems’.\\n\"\n\"You can then mount filesystems you want by hand using the\\n\"\n\"‘mount’ or ‘mount-ro’ command.\\n\"\n\"\\n\"\n\"If using guestmount ‘-i’, remove this option and choose the\\n\"\n\"filesystem(s) you want to see by manually adding ‘-m’ option(s).\\n\"\n\"Use ‘virt-filesystems’ to see what filesystems are available.\\n\"\n\"\\n\"\n\"If using other virt tools, multi-boot operating systems won’t work\\n\"\n\"with these tools.  Use the guestfish equivalent commands\\n\"\n\"(see the virt tool manual page).\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:161\n#, c-format\nmsgid \"%s: some filesystems could not be mounted (ignored)\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:178\n#, c-format\nmsgid \"Operating system: %s\\n\"\nmsgstr \"\"\n\n#: common/options/inspect.c:196\n#, c-format\nmsgid \"%s mounted on %s\\n\"\nmsgstr \"\"\n\n#: common/options/keys.c:63\n#, c-format\nmsgid \"Enter key or passphrase (\\\"%s\\\"): \"\nmsgstr \"\"\n\n#: common/options/keys.c:146\n#, c-format\nmsgid \"size_t overflow\"\nmsgstr \"\"\n\n#: common/options/keys.c:193\n#, c-format\nmsgid \"could not read key from user\"\nmsgstr \"\"\n\n#: common/options/options.c:283\n#, c-format\nmsgid \"%s: ‘%s’ could not be mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:287\n#, c-format\nmsgid \"\"\n\"%s: Check mount(8) man page to ensure options ‘%s’\\n\"\n\"%s: are supported by the filesystem that is being mounted.\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:291\n#, c-format\nmsgid \"%s: Did you mean to mount one of these filesystems?\\n\"\nmsgstr \"\"\n\n#: common/options/options.c:304\n#, c-format\nmsgid \"cannot determine the subvolume for %s: %s (%d)\"\nmsgstr \"\"\n\n#: common/options/uri.c:119\n#, c-format\nmsgid \"%s: --add: could not parse URI ‘%s’\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:130\n#, c-format\nmsgid \"%s: %s: scheme of URI is NULL or empty\\n\"\nmsgstr \"\"\n\n#: common/options/uri.c:138\n#, c-format\nmsgid \"%s: %s: cannot have both a server name and a socket query parameter\\n\"\nmsgstr \"\"\n\n#: common/utils/utils.c:107\n#, c-format\nmsgid \"%s exited successfully\"\nmsgstr \"\"\n\n#: common/utils/utils.c:110\n#, c-format\nmsgid \"%s exited with error status %d\"\nmsgstr \"\"\n\n#: common/utils/utils.c:114\n#, c-format\nmsgid \"%s killed by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:118\n#, c-format\nmsgid \"%s stopped by signal %d (%s)\"\nmsgstr \"\"\n\n#: common/utils/utils.c:122\n#, c-format\nmsgid \"%s exited for an unknown reason (status %d)\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/LINGUAS",
    "content": "cs\nde\nen_GB\nes\neu\nfi\nfr\ngu\nhi\nit\nja\nka\nkn\nml\nmr\nnl\nor\npa\npl\npt_BR\nru\nsi\nta\nte\ntg\nuk\nzh_CN\nid\n"
  },
  {
    "path": "po-docs/Makefile.am",
    "content": "# libguestfs translations of man pages and POD files\n# Copyright (C) 2010-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\n# XXX The use of po4a is naive here.  Also we should integrate this\n# into the po/ directory and the translations into the usual\n# libguestfs.pot file.\n\n# Languages.\n# Don't use LINGUAS (uppercase) as Gentoo defines it (RHBZ#804464).\nlinguas     := $(shell cat $(srcdir)/LINGUAS)\n\n# Languages that we translate, as they have enough coverage.\nlinguas_translated = ja uk\n\nEXTRA_DIST = \\\n\tLINGUAS \\\n\tvirt-v2v-docs.pot \\\n\t$(linguas:%=%.po) \\\n\tpodfiles\n\n# Build the final man pages from the translated POD files.  Each\n# language directory contains a Makefile.am that we need to keep up to\n# date (note each $lang/Makefile.am should be identical).\n# XXX Is there a better way?\nSUBDIRS = $(linguas_translated)\n\nvirt-v2v-docs.pot:\n\tcd $(top_srcdir) && $(PO4A_UPDATEPO) \\\n\t  --no-deprecation \\\n\t  -o no-warn-simple \\\n\t  -f pod \\\n\t  -M utf-8 \\\n\t  --package-name $(PACKAGE_NAME) \\\n\t  --package-version $(PACKAGE_VERSION) \\\n\t  --msgid-bugs-address guestfs@lists.libguestfs.org \\\n\t  --copyright-holder \"Red Hat Inc.\" \\\n\t  -p $(abs_srcdir)/$@ \\\n\t  $(patsubst %,-m %,$(shell cat $(srcdir)/podfiles))\n\npodfiles: Makefile\n\trm -f $@ $@-t\n\tcd $(top_srcdir) && find . -name '*.pod' -printf '%P\\n'| \\\n\t  grep -v ^debian/ | \\\n\t  grep -v '^virt-v2v-[12]' | \\\n\t  grep -v ^po-docs/ | \\\n\t  grep -v ^stamp- | \\\n\t  grep -v /stamp- \\\n\t  > $(abs_srcdir)/$@-t\n\tLC_ALL=C sort -o $@-t $@-t\n\tmv $@-t $@\n"
  },
  {
    "path": "po-docs/cs.po",
    "content": "# Zdenek <chmelarz@gmail.com>, 2016. #zanata\n# Zdenek <chmelarz@gmail.com>, 2017. #zanata\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2017-09-11 04:54+0000\\n\"\n\"Last-Translator: Zdenek <chmelarz@gmail.com>\\n\"\n\"Language-Team: Czech\\n\"\n\"Language: cs\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"Na příklad:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"NÁZEV\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"POPIS\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n# auto translated by TM merge from project: SSSD, version: master, DocId:\n# src/man/po/sssd-docs\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"VIZ TAKÉ\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"SOUHRN\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\n#, fuzzy\n#| msgid \"OUTPUT\"\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"VÝSTUP\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\n#, fuzzy\n#| msgid \"OUTPUT\"\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"VÝSTUP\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"VOLBY\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n# auto translated by TM merge from project: Fedora Cheat Cubes, version:\n# master, DocId: Fedora_Cheat_Cube_Users\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n# auto translated by TM merge from project: Fedora Cheat Cubes, version:\n# master, DocId: Fedora_Cheat_Cube_Users\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"2\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n# auto translated by TM merge from project: virt-manager, version: master,\n# DocId: virt-manager\n#~ msgid \"Windows\"\n#~ msgstr \"Windows\"\n"
  },
  {
    "path": "po-docs/de.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the libguestfs package.\n#\n# Translators:\n# Mario Blättermann <mario.blaettermann@gmail.com>, 2014\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2021-11-18 22:16+0000\\n\"\n\"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\\n\"\n\"Language-Team: German <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-docs-master/de/>\\n\"\n\"Language: de\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Generator: Weblate 4.9\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"Kommentar\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Dieses Programm ist freie Software; es kann unter den Bedingungen\\n\"\n\" der GNU General Public License, wie sie von der Free Software Foundation\\n\"\n\" veröffentlicht wurde, entweder Version 2 oder auf Wunsch jeder späteren\\n\"\n\" Version, weiterverteilt oder modifiziert werden.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Dieses Programm wird weitergegeben in der Hoffnung, dass es nützlich ist,\\n\"\n\" aber OHNE JEDE GARANTIE, ohne eine implizierte Zusicherung\\n\"\n\" allgemeiner Gebrauchstauglichkeit oder NUTZBARKEIT FÜR EINEN BSTIMMTEN\\n\"\n\" ZWECK. Lesen Sie die GNU General Public License für weitere Details.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"*\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"Zum Beispiel:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\n#, fuzzy\n#| msgid \"See also I<--run>.\"\nmsgid \"See also: I<--upload>.\"\nmsgstr \"Siehe auch I<--run>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"B<--delete> PFAD\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"Siehe auch: I<--upload>, I<--scrub>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"B<--edit> DATEI:AUSDRUCK\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"B<--firstboot> SKRIPT\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"Siehe auch I<--run>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"B<--mkdir> VERZEICHNIS\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"B<--no-logfile>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\n#, fuzzy\n#| msgid \"B<--selinux-relabel>\"\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"B<--selinux-relabel>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"B<--password-crypto> md5|sha256|sha512\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"legt das Root-Passwort fest.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"B<--run> SKRIPT\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"Siehe auch: I<--firstboot>, I<--attach>, I<--upload>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"B<--scrub> DATEI\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"B<--selinux-relabel>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"B<--timezone> ZEITZONE\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"B<--update>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\n#, fuzzy\n#| msgid \"B<--block-devices>\"\nmsgid \"B<--blocksize=512>\"\nmsgstr \"B<--block-devices>\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\n#, fuzzy\n#| msgid \"B<--block-devices>\"\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"B<--block-devices>\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\n#, fuzzy\n#| msgid \"B<--block-devices>\"\nmsgid \"B<--blocksize>\"\nmsgstr \"B<--block-devices>\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\n#, fuzzy\n#| msgid \"B<--root-password> file:FILENAME\"\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"B<--root-password> file:DATEINAME\"\n\n#. type: =item\n#: common/options/key-option.pod:22\n#, fuzzy\n#| msgid \"B<--root-password> file:FILENAME\"\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"B<--root-password> file:DATEINAME\"\n\n#. type: =item\n#: common/options/key-option.pod:24\n#, fuzzy\n#| msgid \"B<--root-password> file:FILENAME\"\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"B<--root-password> file:DATEINAME\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"B<--keys-from-stdin>\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"BEZEICHNUNG\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"BESCHREIBUNG\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"SIEHE AUCH\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"AUTOREN\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"COPYRIGHT\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"ÜBERSICHT\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"1.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"2.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"3.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"4.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"C<server>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"AUTOR\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\n#, fuzzy\n#| msgid \"OUTPUT MODES\"\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"AUSGABEMODI\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\n#, fuzzy\n#| msgid \"OUTPUT MODES\"\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"AUSGABEMODI\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\n#, fuzzy\n#| msgid \"C<features>\"\nmsgid \"New features\"\nmsgstr \"C<features>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"Mike Latimer\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\n#, fuzzy\n#| msgid \"B<--no-logfile>\"\nmsgid \"I<--password-file>\"\nmsgstr \"B<--no-logfile>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"BEISPIELE\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"OPTIONEN\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"B<--help>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\n#, fuzzy\n#| msgid \"B<--add> URI\"\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"B<--add> URI\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\n#, fuzzy\n#| msgid \"B<--add> file\"\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"B<--add> Datei\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"B<--echo-keys>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"B<--machine-readable>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\n#, fuzzy\n#| msgid \"B<--block-devices>\"\nmsgid \"B<--memsize> MB\"\nmsgstr \"B<--block-devices>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\n#, fuzzy\n#| msgid \"B<--no-logfile>\"\nmsgid \"B<--no-fstrim>\"\nmsgstr \"B<--no-logfile>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\n#, fuzzy\n#| msgid \"B<json>\"\nmsgid \"B<-o> B<glance>\"\nmsgstr \"B<json>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\n#, fuzzy\n#| msgid \"B<json>\"\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"B<json>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\n#, fuzzy\n#| msgid \"B<json>\"\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"B<json>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\n#, fuzzy\n#| msgid \"B<json>\"\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"B<json>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\n#, fuzzy\n#| msgid \"B<--update>\"\nmsgid \"B<--parallel> N\"\nmsgstr \"B<--update>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"B<-q>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"B<--quiet>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\n#, fuzzy\n#| msgid \"B<--update>\"\nmsgid \"B<--smp> N\"\nmsgstr \"B<--update>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"B<-v>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"B<--verbose>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"gibt ausführliche Meldungen für Debugging-Zwecke aus.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"B<-V>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"B<--version>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"zeigt die Versionsnummer an und beendet das Programm.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\n#, fuzzy\n#| msgid \"B<--help>\"\nmsgid \"B<--wrap>\"\nmsgstr \"B<--help>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"B<-x>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"aktiviert die Verfolgung von libguestfs-API-Aufrufen.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"2\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"DATEIEN\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"UMGEBUNGSVARIABLEN\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\n#, fuzzy\n#| msgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"C<VIRT_TOOLS_DATA_DIR>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"C<VIRT_TOOLS_DATA_DIR>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"Dieses Verzeichnis kann die folgenden Dateien enthalten:\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"Shahar Havivi\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"Tingting Zheng\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\n#, fuzzy\n#| msgid \"B<--echo-keys>\"\nmsgid \"B<--key> ...\"\nmsgstr \"B<--echo-keys>\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\n#, fuzzy\n#| msgid \"B<--run> SCRIPT\"\nmsgid \"B<--run> COMMAND\"\nmsgstr \"B<--run> SKRIPT\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#~ msgid \"Richard W.M. Jones L<http://people.redhat.com/~rjones/>\"\n#~ msgstr \"Richard W.M. Jones L<http://people.redhat.com/~rjones/>\"\n\n#, fuzzy\n#~| msgid \"The time of last access.\"\n#~ msgid \"The name of the guest.\"\n#~ msgstr \"Die Zeit des letzten Zugriffs.\"\n"
  },
  {
    "path": "po-docs/en_GB.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the libguestfs package.\n#\n# Translators:\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2024-09-02 13:38+0000\\n\"\n\"Last-Translator: Andi Chandler <andi@gowling.com>\\n\"\n\"Language-Team: English (United Kingdom) <https://translate.fedoraproject.org/\"\n\"projects/libguestfs/virt-v2v-docs-master/en_GB/>\\n\"\n\"Language: en_GB\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Generator: Weblate 5.7.1\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"comment\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" Copyright (C) 2009-2020 Red Hat Inc.\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Copyright (C) 2009-2020 Red Hat Inc.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public Licence as published by\\n\"\n\" the Free Software Foundation; either version 2 of the Licence, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public Licence for more details.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" You should have received a copy of the GNU General Public Licence along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"B<--append-line> FILE:LINE\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"*\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"For example:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"Note that this option is only available when Perl 5 is installed.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\n#, fuzzy\n#| msgid \"B<--selinux-relabel>\"\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"B<--selinux-relabel>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"B<--selinux-relabel>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\n#, fuzzy\n#| msgid \"C<blocksize>\"\nmsgid \"B<--blocksize=512>\"\nmsgstr \"C<blocksize>\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\n#, fuzzy\n#| msgid \"C<blocksize>\"\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"C<blocksize>\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\n#, fuzzy\n#| msgid \"C<blocksize>\"\nmsgid \"B<--blocksize>\"\nmsgstr \"C<blocksize>\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"B<--keys-from-stdin>\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"NAME\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"DESCRIPTION\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"SEE ALSO\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"AUTHORS\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"Richard W.M. Jones\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"COPYRIGHT\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\n#, fuzzy\n#| msgid \"\"\n#| \" Copyright (C) 2009-2020 Red Hat Inc.\\n\"\n#| \"\\n\"\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\" Copyright (C) 2009-2020 Red Hat Inc.\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"SYNOPSIS\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"NOTES\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"1.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"2.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/921040>\"\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"L<https://bugzilla.redhat.com/921040>\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"3.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"4.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"C<server>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"AUTHOR\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"or:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\n#, fuzzy\n#| msgid \"OUTPUT MODES\"\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"OUTPUT MODES\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\n#, fuzzy\n#| msgid \"OUTPUT MODES\"\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"OUTPUT MODES\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"guestfs-release-notes - libguestfs Release Notes\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"New features\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\n#, fuzzy\n#| msgid \"Other\"\nmsgid \"Other fixes\"\nmsgstr \"Other\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\n#, fuzzy\n#| msgid \"You can filter whole block devices or individual partitions.\"\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"You can filter whole block devices or individual partitions.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"Security\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\n#, fuzzy\n#| msgid \"No security issues were found in this release.\"\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"No security issues were found in this release.\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"Internals\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"Bugs fixed\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh 1.18.0..\"\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"./bugs-in-changelog.sh 1.18.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/921040>\"\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"L<https://bugzilla.redhat.com/921040>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/908321>\"\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"L<https://bugzilla.redhat.com/908321>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/916780>\"\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"L<https://bugzilla.redhat.com/916780>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858696>\"\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"L<https://bugzilla.redhat.com/858696>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/916780>\"\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"L<https://bugzilla.redhat.com/916780>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"guestfs-release-notes - libguestfs Release Notes\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh 1.18.0..\"\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"./bugs-in-changelog.sh 1.18.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/916780>\"\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"L<https://bugzilla.redhat.com/916780>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/921040>\"\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"L<https://bugzilla.redhat.com/921040>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/908321>\"\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"L<https://bugzilla.redhat.com/908321>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/908321>\"\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"L<https://bugzilla.redhat.com/908321>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/916780>\"\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"L<https://bugzilla.redhat.com/916780>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/916780>\"\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"L<https://bugzilla.redhat.com/916780>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/921040>\"\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"L<https://bugzilla.redhat.com/921040>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858696>\"\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"L<https://bugzilla.redhat.com/858696>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858696>\"\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"L<https://bugzilla.redhat.com/858696>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"guestfs-release-notes - libguestfs Release Notes\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh 1.18.0..\"\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"./bugs-in-changelog.sh 1.18.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/916780>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"L<https://bugzilla.redhat.com/916780>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\n#, fuzzy\n#| msgid \"\"\n#| \" Copyright (C) 2009-2020 Red Hat Inc.\\n\"\n#| \"\\n\"\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\" Copyright (C) 2009-2020 Red Hat Inc.\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"guestfs-release-notes - libguestfs Release Notes\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh 1.18.0..\"\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"./bugs-in-changelog.sh 1.18.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/916780>\"\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"L<https://bugzilla.redhat.com/916780>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/921040>\"\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"L<https://bugzilla.redhat.com/921040>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/921040>\"\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"L<https://bugzilla.redhat.com/921040>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"guestfs-release-notes - libguestfs Release Notes\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh 1.18.0..\"\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"./bugs-in-changelog.sh 1.18.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/908321>\"\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"L<https://bugzilla.redhat.com/908321>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/908321>\"\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"L<https://bugzilla.redhat.com/908321>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/908321>\"\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"L<https://bugzilla.redhat.com/908321>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/908321>\"\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"L<https://bugzilla.redhat.com/908321>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"guestfs-release-notes - libguestfs Release Notes\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh 1.18.0..\"\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"./bugs-in-changelog.sh 1.18.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/916780>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"L<https://bugzilla.redhat.com/916780>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/916780>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"L<https://bugzilla.redhat.com/916780>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858696>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"L<https://bugzilla.redhat.com/858696>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/908321>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"L<https://bugzilla.redhat.com/908321>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"guestfs-release-notes - libguestfs Release Notes\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh 1.18.0..\"\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"./bugs-in-changelog.sh 1.18.0..\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/916780>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"L<https://bugzilla.redhat.com/916780>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/908321>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"L<https://bugzilla.redhat.com/908321>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858696>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"L<https://bugzilla.redhat.com/858696>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/908321>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"L<https://bugzilla.redhat.com/908321>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/908321>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"L<https://bugzilla.redhat.com/908321>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/627675>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"L<https://bugzilla.redhat.com/627675>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858696>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"L<https://bugzilla.redhat.com/858696>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"guestfs-release-notes - libguestfs Release Notes\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"guestfs-release-notes - libguestfs Release Notes\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"guestfs-release-notes - libguestfs Release Notes\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"guestfs-release-notes - libguestfs Release Notes\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"guestfs-release-notes - libguestfs Release Notes\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"guestfs-release-notes - libguestfs Release Notes\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"guestfs-release-notes - libguestfs Release Notes\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"EXAMPLES\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"OPTIONS\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"B<--help>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"Display help.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\n#, fuzzy\n#| msgid \"B<--add> file\"\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"B<--add> file\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\n#, fuzzy\n#| msgid \"Windows 8 is now supported.\"\nmsgid \"This is only supported for:\"\nmsgstr \"Windows 8 is now supported.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"B<--echo-keys>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"B<--machine-readable>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\n#, fuzzy\n#| msgid \"C<blocksize>\"\nmsgid \"B<--memsize> MB\"\nmsgstr \"C<blocksize>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"B<-q>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"B<--quiet>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"This disables progress bars and other unnecessary output.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\n#, fuzzy\n#| msgid \"B<--help>\"\nmsgid \"B<--smp> N\"\nmsgstr \"B<--help>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"B<-v>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"B<--verbose>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"Enable verbose messages for debugging.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"B<-V>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"B<--version>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"Display version number and exit.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\n#, fuzzy\n#| msgid \"B<--help>\"\nmsgid \"B<--wrap>\"\nmsgstr \"B<--help>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"B<-x>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"Enable tracing of libguestfs API calls.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"2\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/921040>\"\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"L<https://bugzilla.redhat.com/921040>\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"There are two ways to use this option.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"At the moment this means:\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/961812>\"\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"L<https://bugzilla.redhat.com/961812>\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"FILES\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"ENVIRONMENT VARIABLES\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\n#, fuzzy\n#| msgid \"LIBGUESTFS_CACHEDIR\"\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"LIBGUESTFS_CACHEDIR\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\n#, fuzzy\n#| msgid \"\"\n#| \"Location of the temporary directory used for the potentially large \"\n#| \"temporary overlay file.\"\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\n#, fuzzy\n#| msgid \"\"\n#| \"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\n#, fuzzy\n#| msgid \"B<--echo-keys>\"\nmsgid \"B<--key> ...\"\nmsgstr \"B<--echo-keys>\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#~ msgid \"Debian and Ubuntu\"\n#~ msgstr \"Debian and Ubuntu\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \" Copyright (C) 2009-2020 Red Hat Inc.\\n\"\n#~| \"\\n\"\n#~ msgid \"Copyright (C) 2009-2023 Red Hat Inc.\"\n#~ msgstr \"\"\n#~ \" Copyright (C) 2009-2020 Red Hat Inc.\\n\"\n#~ \"\\n\"\n\n#, fuzzy\n#~| msgid \"\"\n#~| \" Copyright (C) 2009-2020 Red Hat Inc.\\n\"\n#~| \"\\n\"\n#~ msgid \"Copyright (C) 2009-2024 Red Hat Inc.\"\n#~ msgstr \"\"\n#~ \" Copyright (C) 2009-2020 Red Hat Inc.\\n\"\n#~ \"\\n\"\n\n#~ msgid \"Richard W.M. Jones L<http://people.redhat.com/~rjones/>\"\n#~ msgstr \"Richard W.M. Jones L<http://people.redhat.com/~rjones/>\"\n\n#, fuzzy\n#~| msgid \"The index of this device within the array.\"\n#~ msgid \"The index of the disk, starting from 1.\"\n#~ msgstr \"The index of this device within the array.\"\n\n#, fuzzy\n#~| msgid \"The name of the MD device.\"\n#~ msgid \"The name of the guest.\"\n#~ msgstr \"The name of the MD device.\"\n"
  },
  {
    "path": "po-docs/es.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the libguestfs package.\n#\n# Translators:\n# Eduardo Villagrán M <gotencool@gmail.com>, 2011\n# Luis Bazán <lbazan@fedoraproject.org>, 2011\n# Javier Blanco <javi.deb@gmail.com>, 2018. #zanata\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2026-04-20 10:59+0000\\n\"\n\"Last-Translator: \\\"Fco. Javier F. Serrador\\\" <fserrador@gmail.com>\\n\"\n\"Language-Team: Spanish <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-docs-master/es/>\\n\"\n\"Language: es\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Generator: Weblate 5.17\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"comentar\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\"archivo generado de libguestfs\\n\"\n\" AVISO: ESTE ARCHIVO ESTÁ GENERADO DESDE LOS ARCHIVOS SIGUIENTES:\\n\"\n\"                  generator/customize.ml\\n\"\n\"                  y desde el código en el subdirectorio generador/\\n\"\n\" SE PERDERÁ CUALQUIER CAMBIO HECHO A ESTE ARCHIVO\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" © 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Este programa es software libre; puede redistribuirlo y/o modificarlo\\n\"\n\"bajo los términos de la Licencia Pública General GNU publicada por la\\n\"\n\"Free Software Foundation; ya sea la versión 2 de la Licencia o (a su elección)\\n\"\n\"cualquier versión posterior.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Este programa se distribuye con la esperanza de que sea útil,\\n\"\n\"pero SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita de\\n\"\n\"COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR.\\n\"\n\"Consulte la Licencia Pública General de GNU para obtener más detalles.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Debería haber recibido una copia de la Licencia Pública General de GNU\\n\"\n\" junto con este programa; de no ser así, escriba a la Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, EE. UU.\\n\"\n\"\\n\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"B<--append-line> FILE:LINE\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\"Adjunta una sola línea de texto a C<FILE>. Si el archivo no termina con un \"\n\"salto de línea, se añade uno antes de la línea añadida. Además, se añade \"\n\"automáticamente un salto de línea al final de la cadena C<LINE>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\"Por ejemplo (asumiendo entrecomillado de intérprete ordinario) esta \"\n\"instrucción:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" --append-line '/etc/hosts:10.0.0.1 algo'\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\"añadirá o bien C<10.0.0.1 foo⏎> o bien C<⏎10.0.0.1 foo⏎> al archivo, el más \"\n\"último solo si el archivo saliente no termina ya con una línea nueva.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\"C<⏎> representa un carácter de línea nueva, que se deduce al observar el \"\n\"contenido del archivo. Por lo tanto, esta instrucción funciona correctamente \"\n\"con archivos que usan finales de línea de Unix o Windows. También funciona \"\n\"con archivos vacíos o inexistentes.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"Para insertar varias lineas, utilice la misma opción varias veces:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" --append-line '/etc/hosts:10.0.0.1 tal'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 cual'\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"Para insertar una línea en blanco antes de línea adjuntada, haga:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 tal cual'\\n\"\n\"\\n\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"B<--chmod> PERMISSIONS:FILE\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"Cambia los permisos de C<FILE> a C<PERMISSIONS>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\"I<Note>: C<PERMISIONS> por defecto serían decimales, a no ser que lo prefija \"\n\"con C<0> para obtener octal, p.e. utilice C<0700> no C<700>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"B<--chown> UID:GID:PATH\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\"Cambia el propietario del ID de usuario y grupo a un archivo o directorio en \"\n\"el invitado.  Nota:\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"*\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\"Solo UID y GID numérico y funcionará, y esos puede no ser el mismo interno \"\n\"al invitado como en el host.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"Esto no funcionará con invitado de Windows.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"Por ejemplo:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"Consulte además: I<--upload>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"B<--commands-from-file> NOMBREARCHIVO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\"Lee las instrucciones personalizadas desde un archivo, una (y sus \"\n\"argumentos) cada línea.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\"Cada línea contiene una instrucción única de personalización y sus \"\n\"argumentos, por ejemplo:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\" delete /algún/archivo\\n\"\n\" install algún-paquete\\n\"\n\" password algún-usuario:contraseña:su-contraseña-nueva\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\"Se ignoran las líneas vacías, y las líneas comenzando con C<#> son \"\n\"comentarios y se hacen caso omiso.  Además, los argumentos pueden estar \"\n\"repartidos a través de múltiples líneas, añadiendo un C<\\\\> (carácter de \"\n\"continuación) al final de una línea, por ejemplo\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\" edit /algún/archivo:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\"Las instrucciones son manipuladas en el mismo orden que el que está en el \"\n\"archivo, por tanto si fueron especificados como I<--delete /algún/archivo> \"\n\"en la línea de instrucción.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"B<--copy> ORIGEN:DESTINO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"Copia archivos o directorios recursivamente dentro del invitado.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"Los comodines no pueden ser utilizados.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"B<--copy-in> RUTALOCAL:DIRREMOTO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\"Copia archivos o directorios locales recursivamente en la imagen de disco, \"\n\"colocándolos en el directorio C<REMOTEDIR> (el cual debe existir).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"B<--delete> RUTA\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\"Borra un archivo desde el invitado. O borra un directorio (y todos sus \"\n\"contenidos, recursivamente).\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\"Puede utilizar caracteres glob del intérprete en la ruta especificada. Sea \"\n\"cuidadoso para los caracteres glob de escape desde el intérprete del \"\n\"huésped, si eso es requerido.  Por ejemplo:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"Consulte además: I<--upload>, I<--scrub>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"B<--edit> ARCHIVO:EXPR\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"Edita el C<ARCHIVO> utilizando la expresión Perl C<EXPR>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\"Sea cuidadoso para entrecomillas apropiadamente la expresión para prevenirla \"\n\"desde ser alterada por el intérprete.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\"Note que esta opción solo está disponible cunado esté instalado Perl 5.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"Consulte L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"B<--firstboot> SCRIPT\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\"Instala C<SCRIPT> interno al invitado, tal que cuando el primer invitado se \"\n\"arranque, el script ejecute (como root, deja en el proceso de arranque).\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\"El script automáticamente realiza chmod +x tras la instalación en el \"\n\"invitado.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\"La versión alternativa I<--firstboot-command> es la misma, pero \"\n\"convenientemente cubre la instrucción en una solo línea de script por usted.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\"Puedes tener múltiples opciones I<--firstboot>. Ejecutan en el mismo orden \"\n\"que aparezcan en la línea de instrucción.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\"Tome un vistazo a L<virt-builder(1)/FIRST BOOT SCRIPTS> para más información \"\n\"y advertencias sobre los guiones del primer arranque.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"Además consulte I<--run>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"B<--firstboot-command> 'CMD+ARGS'\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\"Ejecute instrucción (y argumentos) dentro del invitado cuando el primer \"\n\"arranque del invitado (como root, tarde en el proceso de arranque).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"B<--firstboot-install> PKG,PKG..\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\"Instala los paquetes nombrados (un listado separado por comas).  Estos son \"\n\"instalados cuando el invitado arranca primero utilizando el gestor del \"\n\"paquete del invitados (p.ej. apt, yum, etc) y la conexión de red invitada.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\"Para una vista resumida en las maneras diferentes de instalar los paquetes, \"\n\"consulte L<virt-builder(1)/INSTALLING PACKAGES>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"B<--hostname> NOMBRE-HOST\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\"Establece el nombre del host en el invitado a C<HOSTNAME>.  Puedes utilizar \"\n\"un punteado de nombre-host.nombre-dominio (FQDN) si lo deseas.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"B<--inject-blnsvr> MÉTODO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\"Inyecta el Balloon Server (F<blnsvr.exe>) en un invitado de Windows.  Esta \"\n\"operación además inyecta un guin fistboot tal que el Balloon Server es \"\n\"instalado cuando el invitado arranca.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\"El parámetro es el miso que el utilizado por la operación I<--inject-virtio-\"\n\"win>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\"Tenga en cuenta que para realizar una conversión completa de un invitado de \"\n\"Windows desde un hipervisor externo como VMware (que implica muchas otras \"\n\"operaciones) debe utilizar la herramienta L<virt-v2v(1)> en lugar de esta.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"B<--inject-qemu-ga> MÉTODO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\"Inyectar el agente invitado de QEMU en un invitado de Windows. El agente \"\n\"invitado se comunica con qemu a través de un zócalo para ofrecer funciones \"\n\"mejoradas (véase L<qemu-ga(8)>). Esta operación también inyecta un script de \"\n\"firstboot para que el agente invitado se instale al arrancar el invitado.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"B<--inject-virtio-win> MÉTODO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\"Inyectar controladores virtio-win en un invitado de Windows. Estos \"\n\"controladores añaden controladores acelerados por Virtio, ideales para \"\n\"ejecutarse sobre un hipervisor compatible con Virtio (como qemu/KVM). Esta \"\n\"operación también ajusta el Registro de Windows para que los controladores \"\n\"se instalen al arrancar el invitado.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"El parámetro puede ser uno de:\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"ISO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\"La ruta para la imagen ISO conteniendo las unidades virtio-win (p.ej. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"DIR\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\"El directorio que contiene las unidades virtio-win desempaquetado (p.ej. F</\"\n\"usr/share/virtio-win>).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"B<--install> PKG,PKG..\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\"Instala los paquetes indicados (una lista separada por comas). Estos se \"\n\"instalan durante la compilación de la imagen mediante el gestor de paquetes \"\n\"del huésped (p. ej., apt, yum, etc.) y la conexión de red del host.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"Consulte además I<--update>, I<--uninstall>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"B<--link> DESTINO:ENLACE[:ENLACE..]\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\"Cree enlaces simbólicos en el invitado, comenzando en C<LINK> y apuntando a \"\n\"C<TARGET>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"B<--mkdir> DIR\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"Crea un directorio en el invitado.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\"Esto utiliza S<C<mkdir -p>>, por lo que se crean todos los directorios \"\n\"intermedios y también funciona si el directorio ya existe.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"B<--move> ORIGEN:DEST\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"Mueve archivos o directorios dentro del invitado.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"B<--no-logfile>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\"Borre C<builder.log> (archivo de registro de los comandos de compilación) de \"\n\"la imagen una vez finalizada la compilación. Si no desea revelar con \"\n\"precisión cómo se compiló la imagen, utilice esta opción.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"Consulte además: L</LOG FILE>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"B<--no-selinux-relabel>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\"No intente corregir las etiquetas SELinux de los archivos en el invitado.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\"En los huéspedes compatibles con SELinux, la personalización reetiqueta \"\n\"automáticamente los archivos para que tengan la etiqueta SELinux correcta. \"\n\"(El reetiquetado se realiza inmediatamente, pero si falla, la \"\n\"personalización tocará F</.autorelabel> en la imagen para programar una \"\n\"operación de reetiquetado la próxima vez que se inicie). Esta opción \"\n\"desactiva el reetiquetado automático.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"La opción es un no-op para invitados que no admitan SELinux.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"B<--password> USUARIO:SELECTOR\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\"Establece la contraseña para C<USUARIO>.  (Note esta opción I<no> crea la \"\n\"cuenta del usuario).\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\"Emplee L<virt-builder(1)/USERS AND PASSWORDS> para el formato del campo \"\n\"C<SELECTOR>, y además como configurar cuantas de usuario.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"B<--password-crypto> md5|sha256|sha512\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\"Cuando cambia las herramientas virt o establezca una contraseña en el \"\n\"invitado, esta opción establece la contraseña cifrada de esa contraseña a \"\n\"C<md5>, C<sha256> o C<sha512>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\"C<sha256> y C<sha512> requieren glibc E<ge> 2.7 (compruebe crypt(3) interno \"\n\"al invitado).\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\"C<md5> funcionará con invitados de Linux relativamente antiguos (p.e. RHEL \"\n\"3), pero no es seguro frente a ataques modernos.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\"El valor predeterminado es C<sha512>, a menos que libguestfs detecte un \"\n\"huésped antiguo que no fuera compatible con SHA-512; en ese caso, usará \"\n\"C<md5>. Puede anular libguestfs especificando esta opción.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\"Tenga en cuenta que esto no modifica el cifrado de contraseña predeterminado \"\n\"que utiliza el invitado al crear nuevas cuentas de usuario. Si desea \"\n\"hacerlo, utilice la opción I<--edit> para modificar C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) o C</etc/pam.d/common-password> (Debian, Ubuntu).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"B<--root-password> SELECTOR\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"Establece la contraseña de root.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\"Nota: en el constructor virt-builder, si I<no> establece I<--root-password> \"\n\"entonces al invitado se le proporciona una contraseña root I<aleatoria>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"B<--run> GUION\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\"Ejecute el script de shell (o cualquier programa) llamado C<SCRIPT> en la \"\n\"imagen de disco. El script se ejecuta virtualizado dentro de un pequeño \"\n\"dispositivo, conectado al sistema de archivos invitado.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"Es guion es automáticamente chmod +x.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\"Si libguestfs lo admite, la conexión de red es limitada, pero solo permite \"\n\"conexiones de red salientes. También puede adjuntar discos de datos (p. ej., \"\n\"archivos ISO) para proporcionar datos (p. ej., paquetes de software) al \"\n\"script sin necesidad de una conexión de red (I<--attach>). También puede \"\n\"cargar archivos de datos (I<--upload>).\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\"Puedes tener múltiples opciones I<--run>.  Ejecutan en el mismo orden que \"\n\"aparecen en la línea de instrucción.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"Consulte además: I<--firstboot>, I<--attach>, I<--upload>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"B<--run-command> 'CMD+ARGS'\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\"Ejecute la instrucción y los argumentos en la imagen de disco. La \"\n\"instrucción se ejecuta virtualizada dentro de un pequeño dispositivo, con \"\n\"chroot en el sistema de archivos invitado.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\"Puedes tener múltiples opciones I<--run-command>. Ejecutan en el mismo orden \"\n\"que aparecen en la línea de instrucción.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"B<--scrub> ARCHIVO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\"Recorta un archivo desde el invitado. Es como I<--delete>, excepto que:\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"Recorta los datos tal que un invitado no pueda recuperarlo.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"No puede borrar directorios, solo archivos usuales.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"B<--selinux-relabel>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"Esto es una opción de compatibilidad que no hace nada.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"B<--ssh-inject> USUARIO[:SELECTOR]\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\"Inyectar una clave SSH para que el C<USUARIO> pueda iniciar sesión por SSH \"\n\"sin necesidad de proporcionar una contraseña. El C<USUARIO> debe existir \"\n\"previamente en el invitado.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\"Consulte L<virt-builder(1)/SSH KEYS> para conocer el formato del campo \"\n\"C<SELECTOR>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\"Puede tener múltiples opciones I<--ssh-inject> para diferentes usuarios y \"\n\"también para más claves por cada usuario.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"B<--tar-in> TARFILE:REMOTEDIR\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\"Copia directorios o archivos locales desde un archivo tar local llamado \"\n\"C<TARFILE> a la imagen de disco, colocándoles en el directorio C<REMOTEDIR> \"\n\"(los cuáles deben existir).  Note que el archivo tar debe estar \"\n\"descomprimido (los archivos F<.tar.gz> no funcionan aquí)\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"B<--timezone> ZONA-HORARIA\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\"Establezca la zona horaria predeterminada del huésped en C<TIMEZONE>. Emplee \"\n\"una cadena de lugar como C<Europe/London>\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"B<--touch> ARCHIVO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\"Esta instrucción realiza una operación similar a L<touch(1)> en C<ARCHIVO>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"B<--truncate> ARCHIVO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\"Esta instrucción trunca C<ARCHIVO> a un archivo de longitud cero. El archivo \"\n\"ya debe existir.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"B<--truncate-recursive> RUTA\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\"Este comando trunca recursivamente todos los archivos bajo C<PATH> a \"\n\"longitud cero.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"B<--uninstall> PKG,PKG..\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\"Desinstale los paquetes indicados (una lista separada por comas). Estos se \"\n\"eliminan durante la compilación de la imagen mediante el gestor de paquetes \"\n\"del invitado (p. ej., apt, yum, etc.). Es posible que también sea necesario \"\n\"desinstalar los paquetes dependientes para satisfacer la solicitud.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"Consulte además I<--install>, I<--update>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"B<--update>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\"Realice el equivalente a C<yum update>, C<apt-get upgrade> o cualquier \"\n\"comando que sea necesario para actualizar los paquetes ya instalados en la \"\n\"plantilla a sus últimas versiones.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"Consulte además I<--install>, I<--uninstall>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"B<--upload> ARCHIVO:DEST\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\"Sube el archivo local C<FILE> al destino C<DEST> en la imagen de disco. El \"\n\"propietario y los permisos del archivo original se conservan, por lo que \"\n\"debes configurarlos como desees en la imagen de disco.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\"C<DEST> podría ser el nombre final del archivo. Esto permite renombrarlo al \"\n\"subirlo.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\"Si C<DEST> es un nombre de directorio (que ya debe existir en el invitado), \"\n\"entonces el archivo se carga en ese directorio y conserva el mismo nombre \"\n\"que en el sistema de archivos local.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"Consulte además: I<--mkdir>, I<--delete>, I<--scrub>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"B<--write> FILE:CONTENT\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"Escribe C<CONTENT> al C<FILE>.\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"B<--blocksize=512>\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"B<--blocksize=4096>\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"B<--blocksize>\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\"Este parámetro establece el tamaño del sector de la imagen de disco. Afecta \"\n\"a todos los discos añadidos explícitamente después de este parámetro. Al \"\n\"usar I<--blocksize> sin argumentos, el tamaño del sector del disco se cambia \"\n\"al valor predeterminado, que suele ser de 512 bytes. Véase también \"\n\"L<guestfs(3)/guestfs_add_drive_opts>.\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"B<--key> SELECTOR\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\"Especificar una clave para LUKS, para abrir automáticamente un dispositivo \"\n\"LUKS cuando utiliza la inspección.\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"B<--key> NOMBREB<:clave:>CLAVE_CADENA\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"B<--key> UUIDB<:clave:>CLAVE_CADENA\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"B<--key> B<all:key:>CLAVE_CADENA\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\"C<NAME> es el nombre del dispositivo libguestfs (p.ej., C</dev/sda1>).  \"\n\"C<UUID> es el dispositivo UUID.  C<all> significa probar la clave contra \"\n\"cualquier dispositivo cifrado.\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"Utilice el C<KEY_STRING> especificado como frase de contraseña.\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"B<--key> NOMBREB<:archivo:>NOMBRE‐ARCHIVO\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"B<--key> UUIDB<:file:>NOMBRE-ARCHIVO\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"B<--key> B<all:file:>NOMBRE‐ARCHIVO\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"Lea la frase‐contraseña desde F<FILENAME>.\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"B<--key> NOMBREB<:clevis>\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"B<--key> UUIDB<:clevis>\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"B<--key> B<all:clevis>\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\"Intento passphrase-less unlocking para el dispositivo con Clevis, sobre la \"\n\"red.  Refiérase a L<guestfs(3)/ENCRYPTED DISKS> para más información sobre \"\n\"cifrado de disco network-bound, red-vinculada, (NBDE).\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\"Nota que si cualquier opción está presente en la línea de instrucción, el \"\n\"usuario QEMU de red será habilitado automáticamente para la aplicación de \"\n\"libguestfs.\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"B<--keys-from-stdin>\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\"Lee los parámetros de clave o frase secreta desde entrada estándar.  Lo \"\n\"predeterminado es intentar leer las frases secretas desde el usuario \"\n\"abriendo F</dev/tty>.\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\"Si hay múltiplo dispositivos cifrados entonces puede necesitar proporcionar \"\n\"múltiples claves en entrada estándar (stdin), uno por línea.\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"NOMBRE\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"virt-v2v-hacking -\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"DESCRIPCIÓN\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\"Primero una poca historia.  Virt-v2v ha sido a través de al menos dos re‐\"\n\"escrituras completas, por tanto esto probablemente es acerca de la tercera \"\n\"versión (pero no pretendemos reescribirlo otra vez).  La versión anterior \"\n\"fue escrita en Perl y puede encontrarse aquí: L<https://git.fedorahosted.org/\"\n\"git/virt-v2v.git>\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\"La versión actual iniciada externa como casi una re‐escritura línea a línea \"\n\"del código Perl en OCaml + C, y todavía tiene una estructura bastante \"\n\"similar.  Por tanto si hay detalles de este código que no entiendas \"\n\"(especialmente en los detalles de conversión de invitado), comprobando el \"\n\"código de Perl podría ayudar.\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"Los archivos para iniciar cuando lee este código son:\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"F<types.mli>\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"F<v2v.ml>\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\"F<types.mli> define todas las estructuras utilizadas y pasadas alrededor \"\n\"cuando comuniquen entre los bit diferentes del programa.  F<v2v.ml> controla \"\n\"como las ejecuciones del programa en fases.\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\"Tras estudiar aquellos archivos, puedes desear ramificar fuera en los \"\n\"módulos de entrada (F<input_*>), los módulos de salida (F<output_*>) o los \"\n\"módulos de conversión (F<convert_*>).  Los módulos de entrada y salida \"\n\"definen las opciones I<-i> y I<-o> (consulte el manual).  Los módulos de \"\n\"conversión definen que tipos de invitados podemos manipular y los pasos \"\n\"detallados para convirtiéndolos.\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\"Cada otro archivo dentro de este directorio es un módulo/biblioteca de \"\n\"algunos ordenados. Algún código está escrito en C, especialmente donde \"\n\"queremos utilizar una biblioteca externa en C tal como libxml2.\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"CONSULTE TAMBIÉN\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"AUTORES\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"Richard W.M. Jones\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"DERECHO DE COPIA\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"© 2009-2025 Red Hat Inc.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\"virt-v2v-input-vmware — Utilizando virt-v2v para convertir invitados desde \"\n\"VMware\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"SINOPSIS\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -i vmx INVITADO.vmx [-o* opciones]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -lt ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"     'ssh://root@esxi.example.com/vmfs/volúmenes/datastore1/invitado/invitado.vmx'\\n\"\n\"    [-o* opciones]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verity=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/ruta/a/vmware-vix-disklib-distrib\\n\"\n\"    \\\"NOMBRE de INVITADO\\\"\\n\"\n\"    [-o* opciones]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -i ova DISCO.ova [-o* opciones]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip archivo_contraseña\\n\"\n\"    \\\"NOMBRE INVITADO\\\" [-o* opciones]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\"Esta página documenta como utilizar L<virt-v2v(1)> para convertir invitados \"\n\"desde VMware.  Hay actualmente cinco métodos diferentes para acceder a \"\n\"VMware:\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"B<-i vmx> GUESTB<.vmx>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"Documentación completa: L</INPUT FROM VMWARE VMX>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\"Si o bien tienes un archivo F<GUEST.vmx> y uno o más archivos F<GUEST.vmdk> \"\n\"de imagen de disco, o si es capaz a montar con NFS-mount el almacén VMware, \"\n\"entonces puedes utilizar el método I<-i vmx> para leer el invitado origen.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"B<-i vmx> B<-it ssh> ssh://…\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\"Esto es similar al método anterior, excepto que utiliza una conexión SSH \"\n\"para ESXi para leer el archivo F<GUEST.vmx> y discos asociados. Esto \"\n\"requiere que haya habilitado acceso SSH para el hipervisor ESXi de VMware; \"\n\"en la configuración por defecto de ESXi esto está apagado.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\"Este transporte es incompatible con invitados que tengan capturas; \"\n\"referentes a L</NOTES>.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"B<-ic vpx://...> B<-it vddk>\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"B<-ic esx://...> B<-it vddk>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"Documentación completa: L</INPUT FROM VDDK>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\"Este método utiliza el propietario de biblioteca VDDK (esto es VixDiskLib) \"\n\"para acceder al servidor vCenter de VMware o el hipervisor ESXi de VMware.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\"Si tienes la biblioteca propietaria entonces este método usualmente es el \"\n\"más rápido y más flexible.  Si no tienes o no desea utilizar software no \"\n\"libre entonces los métodos de VMX o SSH de encima serán lo mejor.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"B<-i ova> DISKB<.ova>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"Documentación completa: L</INPUT FROM VMWARE OVA>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\"Con este método primero debes exportar el invitado (p.ej. desde vSphere) \"\n\"como un archivo de F<.ova>, el cual virt-v2v entonces puede leer \"\n\"directamente. Nota que este método funciona con archivos exportados desde \"\n\"VMware, no con archivos OVA desde otros hipervisores o sistemas de gestión, \"\n\"desde que OVA solamente es un estándar pretendido y no es compatible o \"\n\"interoperable entre proveedores.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"B<-ic vpx://...> \\\"NOMBRE INVITADO\\\"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"Documentación completa: L</INPUT FROM VMWARE VCENTER SERVER>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\"Si ninguno de estos métodos anteriores está disponible, entonces utilice \"\n\"este método para importar un invitado desde vCenter de VMware.  Esto es el \"\n\"método más lento.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"NOTAS\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\"Cuando acceda al archivo F<I<invitado>.vmx> en ESXi cubre una conexión SSH \"\n\"(esto es, cuando utiliza las opciones I<-i vmx> I<-it ssh>), la conversión \"\n\"no funcionará si el invitado tiene capturas (archivos invocados del invitado \"\n\"F<I<guest>-000001.vmdk> y similar).  Cualesquiera colapse capturas para el \"\n\"invitado y reintenta la conversión con las mismas opciones I<-i vmx> I<-it \"\n\"ssh>, o dejarla captura intacta y utilizar un transporte diferente desde \"\n\"SSH: tan solo I<-i vmx>, o I<-ic vpx://...> I<-it vddk> o I<-ic esx://...> \"\n\"I<-it vddk>. Refiérase a L<https://bugzilla.redhat.com/1774386>.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"ENTRADA DESDE VMX DE VMWARE\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"Virt-v2V es capaz de importar invitados desde archivos vmx de VMware.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"Esto es útil en dos casos:\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"1.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\"Las máquinas virtuales de VMware están almacenadas en un servidor NFS \"\n\"separado y son capaces de montar el almacenamiento NFS directamente.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"2.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\"Ha habilitado acceso SSH al hipervisor ESXi de VMware y hay una carpeta C</\"\n\"vmfs/volumes> conteniendo las máquinas virtuales.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\"Si encuentras una carpeta de archivos invocados con F<I<guest>.vmx>, \"\n\"F<I<guest>.vmxf>, F<I<guest>.nvram> y una o más imágenes de disco F<.vmdk>, \"\n\"entonces puedes utilizar este método. El transporte SSH no es utilizable si \"\n\"el invitado tiene capturas; refiérase a L</NOTES>.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"VMX: el invitado debe estar apagado\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\"B<El invitado debe ser apagado antes del inicio de la conversión>. Esto es \"\n\"porque el método I<-i vmx> funciona directamente contra el almacenamiento, \"\n\"la comprobación de acceso concurrente no es posible. Consulte también L<virt-\"\n\"v2v(1)/The guest should not be running>.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"VMX: Acceso al almacenamiento conteniendo los archivos VMX y VMDX\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\"Si los archivos vmx y vmdk no están disponibles localmente entonces debe \"\n\"montar o bien el almacén NFS en la conversión del servidor o bien habilitar \"\n\"el SSH sin contraseña en el hipervisor ESXi.\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"VMX: Autenticación SSH\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\"Puede utilizar la autenticación de contraseña SSH, proporcionando el nombre \"\n\"de un archivo conteniendo la contraseña para la opción I<-ip> (note que esta \"\n\"opción I<no> toma la contraseña directamente). Puede necesitar ajustar F</\"\n\"etc/ssh/sshd_config> en el servidor de VMware para establecer \"\n\"C<PasswordAuthentication yes>.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\"Si no estás utilizando autenticación por contraseña, una alternativa es para \"\n\"utilizar ssh-agent, y añadir vuestro ssh clave pública a F</etc/ssh/keys-\"\n\"root/authorized_keys> (en el hipervisor ESXi). Después de hacer esto, \"\n\"comprobarías ese acceso sin contraseña funcione desde el servidor virt-v2v \"\n\"para el hipervisor ESXi. Por ejemplo:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ ssh root@esxi.ejemplo.com\\n\"\n\" [ declara directamente al intérprete de consola, ninguna contraseña es \"\n\"requerida ]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\"Note que el soporte de autenticación no interactiva es incompatible a través \"\n\"de la opción I<-ip>. Algunas operaciones necesitan aún requieren al usuario \"\n\"para introducir la contraseña manualmente. Por lo tanto el ssh-agent es \"\n\"recomendad sobre la opción I<-ip>. Consulte L<https://bugzilla.redhat.com/\"\n\"1854275>.\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"VMX: Construcción del URI de SSH\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\"Cuando utilice el transporte de entrada a SSH debe especificar un URI \"\n\"C<ssh://...> remoto apuntando al archivo VMX. Un URI típico similar como:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ssh://root@esxi.ejemplo.com/vmfs/volumes/datastore1/mi%20invitadot/\"\n\"mi%20invitado.vmx\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\"El nombre de usuario no es requerido si es el mismo que su nombre de usuario \"\n\"local.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\"Opcionalmente puede proporcionar un número de puerto tras el nombre de \"\n\"invitado si el servidor SSH no está listando un el puerto por defecto (22).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\"Para determinar el componente pathname del la URI, inicie sesión al servidor \"\n\"ESXi a través del SSH interactivamente, e identifique el nombre de la ruta \"\n\"absoluta del archivo VMX en el servidor de ESXi, tal como:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\" /vmfs/volumes/datastore1/mi invitado/mi invitado.vmx\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\"Posteriormente, en la línea del comando virt-v2v, L<percent-encode any \"\n\"reserved characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> que encuentras en los componentes de nombre de \"\n\"ruta individual. Por ejemplo, el espacio de caracteres deben ser \"\n\"especificados como C<%20>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\" /vmfs/volumes/datastore1/my%20guest/mi%20invitado.vmx\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"Refiera a L<https://bugzilla.redhat.com/1938954>.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"VMX: Importar un invitado\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"Para importar un archivo vmx desde un archivo local o NFS, haga:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v -i vmx invitado.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\"Para importar un archivo vmx sobre SSH, agregue I<-it ssh> para seleccionar \"\n\"el transporte SSH y proporcione un URI remoto de SSH:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.ejemplo.com/vmfs/volumes/datastore1/guest/\"\n\"invitado.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\"Virt-v2v procesa el archivo vmx y lo utiliza para encontrar el lugar de \"\n\"cualquier de los discos vmdk.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"ENTRADA DESDE VDDK\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\"Virt-v2v es capaz de importar invitados utilizando propietario de biblioteca \"\n\"VDDK de VMware (esto es VixDiskLib).\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"VDDK: Pre‐requisitos\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\"Como la biblioteca de VDDK no es código abierto, y la licencia de esta \"\n\"biblioteca no permite redistribución o uso comercial, debes obtener tu mismo \"\n\"el VDDK satisfacer que tu mismo que utilizar su biblioteca esté permitted \"\n\"por la licencia.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\"nbdkit E<ge> 1.6 este recomendado, como traslada con el complemento VDDK \"\n\"habilitado incondicionalmente.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"3.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\"Las importaciones de VDDK requieren una capacidad añadida en libvirt E<ge> \"\n\"3.7.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"4.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"El servidor VMware no debe estar en modo de mantenimiento.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"VDDK: Límites de memoria del servicio NFS de ESXi\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"En la bitácora detallada puede ver errores como:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" recibió un error 5 en NFC: Incorrecto al asignar los 2 097 176 bytes\\n\"\n\" solicitados.\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\"Esto parece especialmente común cunado hay múltiples conexiones paralelas \"\n\"abiertas para el servidor VMware.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\"Esto puede ser causado por límites de recursos establecidas en el servidor \"\n\"VMware.  Puede incrementar el límite para el servicio NFC editanto F</etc/\"\n\"vmware/hostd/config.xml> y ajustando los parámetros C<E<lt>maxMemoryE<gt>>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"y reiniciando el servicio C<hostd>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"Para más información consulte L<https://bugzilla.redhat.com/1614276>.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Ha fallado al abrir disco utilizando NFC. \"\n\"VixError 1\\\"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"Si observas un error similar a:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Ha fallado al abrir el disco \"\n\"utilizando NFC. VixError 1 en 1166.\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\"entonces está causado por un defecto en VDDK E<le> 6.7.  La solución \"\n\"sugerida lo para mejora al más tardío VDDK.  Además consulte L<https://\"\n\"bugzilla.redhat.com/1684075>\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"VDDK: URI\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\"Construya la URL correcta C<vpx://> (para vCenter) o C<esx://> (para ESXi). \"\n\"Se verá similar a esto:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\" vpx://root@vcenter.ejemplo.com/Datacenter/esxi\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\" esx://root@esxi.ejemplo.com\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\"Para verificar que tiene la URL correcta, utilice la instrucción L<virsh(1)> \"\n\"para enumerar los invitados en el servidor:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\" $ virsh -c 'vpx://root@vcenter.ejemplo.com/Datacenter/esxi' list --all\\n\"\n\" Introduzca la contraseña de root para vcenter.ejemplo.com: ***\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\"  Id    Nombre                           Estado\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      apagado\\n\"\n\"  -     Windows 2003            apagado\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\"Si obtienes un error \\\"Pareja de certificado no puede ser autenticado con \"\n\"certificados AC dados\\\" o similar, entonces tampoco puedes importar el \"\n\"certificado del invitado de vCenter, o traspasar la verificación de firma \"\n\"añadiendo el indicador C<?no_verify=1>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virsh -c 'vpx://root@vcenter.ejemplo.com/Datacenter/esxi?no_verify=1' \"\n\"list --all\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\"Además intentaría volcar los metadatos desde cualqueir invitado en su \"\n\"servidor, como este:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virsh -c 'vpx://root@vcenter.ejemplo.com/Datacenter/esxi' dumpxml \"\n\"\\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\"Si C<E<lt>vmware:morefE<gt>> no parece en los metadatos, entonces necesita \"\n\"una mejora de libvirt.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\"B<Si los comandos anteriores no funcionan, entonces virt-v2v no va a \"\n\"funcionar>.  Repare su URL y/o su servidor VMware antes de continuar.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"VDDK: Importar un invitado\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\"El parámetro I<-it vddk> selecciona VDDK como el transporte de entrada para \"\n\"discos.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\"Para importar un invitado particular desde el servidor vCenter o hipervisor \"\n\"ESXi, emplee un comando como el siguiente, sustituyendo la URI y nombre de \"\n\"invitado:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.ejemplo.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/ruta/para/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\"Otras opciones que te podría necesitar añadir en las circunstancias raras \"\n\"incluyen I<-io vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-\"\n\"io vddk-file>, I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-\"\n\"snapshot>, I<-io vddk-thumbprint> y I<-io vddk-transports>, los cuales son \"\n\"todos explicados en la documentación de L<nbdkit-vddk-plugin(1)>.  No \"\n\"utilice estas opciones a no ser que sepas qué estás haciendo.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"VDDK: Huella dactilar\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\"Se puede especificar la huella dactilar del servicio de VMware que utiliza \"\n\"el parámetro I<-io vddk-thumbprint=XX:XX...>.  Haciendo así incrementa la \"\n\"seguridad frente algunos ataques de hombre‐en‐el‐medio.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\"Desde virt-v2v 2.10, este parámetro no es requerido.  Virt-v2v obtendrá la \"\n\"huella dactilar desde el servidor si no está especificado (pero el comando \"\n\"L<openssl(1)> tiene que ser instalada para que este funciona.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"VDDK: Depurando fallos de VDDK\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\"El biblioteca de VDDK puede ser operada en un modo detallado donde \"\n\"proporciona mensajes (muy) detallados.  Utilice ‘virt-v2v -v -x' como \"\n\"habitual para habilitar mensajes verborreos.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"VDDK: Importaciones lentas y repetidas de mensajes NBD_ClientOpen\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\"Si las importaciones sobre VDDK son lentas, y ‘virt-v2v -v -x' muestra \"\n\"muchos mensajes C<NBD_ClientOpen>, entonces estás tomando un fallo aparente \"\n\"en S<VDDK 6.7> (https://bugzilla.redhat.com/1901489).  Mejore al menos a \"\n\"S<VDDK 7> para resolver la incidencia.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"ENTRADA DESDE OVA DE VMWARE\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\"Virt-v2v es capaz de importar invitados desde archivos de OVA VMware (Open \"\n\"Virtualization Appliance).  Solo las OVA exportadas desde vSphere de VMware \"\n\"funcionarán.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"OVA: Creación de OVA\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\"Para crear un OVA en vSphere, emplee la opción \\\"Exportación Plantilla OVF\\\" \"\n\"(desde el menú de contexto en MV, o desde el menú de Archivo).  Cualquier \"\n\"\\\"Carpeta de archivos\\\" (OVF) o \\\"Archivo simple\\\" (OVA) funcionará, pero \"\n\"OVA probablemente es más fácil de tratar.  Los archivos OVA realmente son \"\n\"archivos tar descomprimidos, por tanto puede utilizar comandos como C<tar tf \"\n\"MV.ova> para ver sus contenidos.\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"Creación de OVA con ovftool\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"Además puedes utilizar C<ovftool> propietario de VMware:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USUARIO:CONTRASEÑA@esxi.ejemplo.com/MV \\\\\\n\"\n\"   MV.ova\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"Para conectar a vCenter:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USUARIO:CONTRASEÑA@vcenter.ejemplo.com/NOMOBRE-DATACENTER/vm/MV \\\\\\n\"\n\"   MV.ova\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\"Para autenticación compatible de Active Directory utilizando nombres de \"\n\"acceso a bajo nivel (C<DOMINIO\\\\USUARIO>), tiene que expresar el carácter \"\n\"C<\\\\> en el formulario de su código hex ascii (C<%5c>):\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\" vi://DOMINIO%5cUSUARIO:CONTRASEÑA@...\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"OVA: Importación de un invitado\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"Para importar un archivo OVA llamado F<VM.ova>, haga:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v -i ova MV.ova -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\"Si exportó el invitado como una «Carpeta de archivos», o si desempaquetó el \"\n\"tarball OVA tú mismo, entonces puedes apuntar a virt-v2v en el directorio \"\n\"conteniendo los archivos:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v -i ova /ruta/a/archivos -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"OVA: Asuntos de permisos con importación de oVirt\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\"oVirt proporciona una interfaz de usuario gráfica para importar desde \"\n\"archivos OVA los cuales utilizan este método.   Requiere que oVirt sea capaz \"\n\"de acceder al archivo OVA el cual pueda ser un problema si el archivo es \"\n\"propiedad de root (oVirt ejecuta como usuario distinto de root).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\"La solución alternativa sugerida es copiar el OVA a un directorio público \"\n\"tal como F</var/tmp> antes de hacer la importación y quizás cambiar la \"\n\"propiedad del usuario y grupo del archivo.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"Para más la información consulte estos enlaces:\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"ENTRADA DESDE SERVIDOR VCENTER DE VMWARE\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\"Virt-v2v es capaz de importar invitados desde Servidor vCenter de VMware.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\"Se requiere vCenter E<ge> 5.0.  Si no tienes vCenter, se recomienda utilizar \"\n\"OVA o VMX en su lugar (consulte L</INPUT FROM VMWARE OVA> y/o L</INPUT FROM \"\n\"VMWARE VMX>).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\"Virt-v2v utiliza libvirt para acceder a vCenter, y por eso el modo de \"\n\"entrada sería I<-i libvirt>.  Como esto es lo predeterminado, no necesitas \"\n\"especificarlo encima de la línea de comando.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"vCenter: URI\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"La URI de libvirt de un servidor vCenter examina algo como esto:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\" vpx://usuario@servidor/Datacenter/esxi\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"donde:\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"C<usuario@>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"es usuario (opcional), pero recomendado) para conectar.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\"Si el nombre‐usuario contiene un raya torcida hacia atrás (p.ej. C<DOMINIO\\\\U\"\n\"SUARIO>) entonces necesitarás un carácter de escape de la URI utilizando \"\n\"C<%5c>: C<DOMINIO%5cUSUARIO> (5c es el código ASCII hexadecimal para raya \"\n\"torcida atrás.)  Otra puntuación también puede tener que ser escapada.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\"La contraseña del usuario tiene que ser proporcionada dentro de un archivo \"\n\"local utilizando el parámetro separador I<-ip>.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"El C<servidor>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"es el Servidor vCenter (I<no> hipervisor).\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"El C<Datacenter>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"es el nombre del centro de datos.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\"Si el nombre contiene un espacio, reemplázalo con el código URI-escape C<%20>\"\n\".\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"El C<esxi>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"es el nombre del hipervisor ESXi ejecutando el invitado.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\"Si el despliegue de VMware está utilizando carpetas, entonces estos pueden \"\n\"necesitar añadirlos al URI, p.ej.:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\" vpx://usuario@servidor/Carpeta/Datacenter/esxi\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\"Para detalles completos de las URI de libvirt, consulte L<http://libvirt.org/\"\n\"drvesx.html>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\"Los errores típicos de libvirt / virsh cuando el URI es incorrecta incluye:\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"No pudo encontrar el centro de datos especificado en [...]\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"No pudo encontrar recurso de cálculo especificado en [...]\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"La ruta [...] no especifica un recurso de cálculo\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"La ruta [...] no especifica un sistema invitado\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"No se pudo encontrar el sistema de invitado especificado en [...]\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"vCenter: Prueba conexión con libvirt a vCenter\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\"Utiliza el comando L<virsh(1)> para listado de invitados en el Servidor \"\n\"vCenter como éste:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virsh -c 'vpx://root@vcenter.ejemplo.com/Datacenter/esxi' dumpxml \"\n\"\\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\"B<Si los comandos anteriores no funcionan, entonces virt-v2v tampoco \"\n\"funcionará.>.  Corrija su configuración de libvirt y/o su Servidor vCenter \"\n\"VMware antes de continuar.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"vCenter: Proporcionar la contraseña\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\"La contraseña de vCenter (usualmente para la cuenta root, o la cuenta \"\n\"especificada por C<usuario@> en la URL de vpx) tiene que estar escrito a una \"\n\"archivo local, y el nombre de ese archivo especificado en la línea de \"\n\"comando virt-v2v utilizando I<-ip passwordfile>.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"vCenter: Importar un invitado\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"Para importar un invitado particular desde el Servidor vCenter, haga:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.ejemplo.com/Datacenter/esxi?no_verify=1' \"\n\"\\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\"donde C<Windows 2003> es el nombre del invitado (el cual debe estar apagado).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\"En este caso los indicadores de salida están establecidos para escritura el \"\n\"invitado convertido a un directorio temporal como esto es tan solo un \"\n\"ejemplo, pero además puede escribir a libvirt o cualquiera otro destino.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"vCenter: Rol no administrador\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\"En vez de utilizar el rol de Administrador de vCenter, puedes crear un rol \"\n\"no administrador personalizado para realizar la conversión. Sin embargo \"\n\"necesitarás habilitar los permisos siguientes (o como muchos como están \"\n\"disponibles, versiones anteriores de VMware les faltaba alguno de estos \"\n\"ajustes):\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"Crea un rol personal en vCenter.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"Habilita (marca) los objetos siguientes:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\" Datastore:\\n\"\n\"  - Explorar datastore\\n\"\n\"  - Operaciones de archivo a bajo nivel\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\" Sesiones:\\n\"\n\"  - Validar sesión\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\" Máquina virtual:\\n\"\n\"   Interacción:\\n\"\n\"     - gestión de sistema operativo del invitado por API de VIX\\n\"\n\"   Provisión:\\n\"\n\"     - Concede acceso de disco\\n\"\n\"     - Concede acceso de disco de solo lectura\\n\"\n\"     - Concede descarga de máquina virtual\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Opciones de cifrado:\\n\"\n\"  - Descifrado\\n\"\n\"  - Acceso directo\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"vCenter: Cortafuegos y ajustes del proxy\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"vCenter: Puertos\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\"Si hay un cortafuegos entre el servidor de conversión virt-v2v y el servidor \"\n\"vCenter, entonces necesitará abrir el puerto 443 (https) y el puerto 5480.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\"El puerto 443 se utiliza para copiar el/las imagen(es) del disco invitado.  \"\n\"El puerto 5480 suele ser consultado en vCenter para metadatos de invitado.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\"Estos números de puerto solo son los predeterminados.  Es posible a \"\n\"reconfigure vCenter para utilizar otros números de puertos.  En ese caso \"\n\"necesitarías especificar esos puertos en la URL de C<vpx://>.  Consulte L</\"\n\"vCenter: URI> encima.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\"Estos puertos sólo aplican a conversiones de virt-v2v.   Puedes tener que \"\n\"abrir otros puertos para otra funcionalidad de vCenter, por ejemplo la \"\n\"interfaz de usuario de web.  VMware documenta los puertos requeridos para \"\n\"vCenter en su documentación bajo conexión.\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\"(En el diagrama anterior las flechas muestran la dirección en la cual la \"\n\"conexión TCP está iniciada, no necesariamente la dirección de la \"\n\"transferencia de datos.)\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\"El mismo virt-v2v no conecta directamente al hipervisor ESXi conteniendo el \"\n\"invitado.  Sin embargo vCenter conecta al hipervisor y reenvía la \"\n\"información, así que si tienes un cortafuegos entre vCenter y sus \"\n\"hipervisores puede ser necesario abrir puertos adicionales (consulte la \"\n\"documentación de VMware).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\"Las variables del entorno del proxy (C<https_proxy>, C<all_proxy>, \"\n\"C<no_proxy>, C<HTTPS_PROXY>, C<ALL_PROXY> y C<NO_PROXY>) es B<ignored> son \"\n\"ignorados cuando realizan las conversiones de vCenter.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"vCenter: problemas de certificado SSL/TLS\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"Puede observar este error:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\"  CURL: error al abrir archivo: SSL: ningún nombre del asunto del\\n\"\n\"  certificado alternativo coinciden con el nombre de invitado destino\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\"(Puedes necesitar habilitar depurador con ‘virt-v2v -v -x' para ver este \"\n\"mensaje).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\"Esto puede ser causado por utilizar una dirección IP en lugar del nombre de \"\n\"dominio DNS completamente calificado del servidor vCenter, p.ej., utiliza \"\n\"C<vpx://vcenter.ejemplo.com/...> en vez de C<vpx://11.22.33.44/...>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\"Otro problema de certificado puede ser causado por el servidor vCenter \"\n\"teniendo una ausencia de coincidencia FQDN y dirección IP, por ejemplo si el \"\n\"servidor adquirió una dirección nueva de IP desde DHCP.  Para fijar esto \"\n\"necesitas cambiar su servidor DHCP o la configuración de red tal que el \"\n\"servidor vCenter siempre obtenga un dirección IP estable.  Tras este acceso \"\n\"al la consola de admin del servidor vCenter en C<https://vcenter:5480/>.  \"\n\"Bajo la lengüeta C<Admin>, seleccione la C<regeneration de certificado \"\n\"habilitado> y entonces reinícielo.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"vCenter: \\\"Fuera de sesiones HTTP: Limitado a ...\\\"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\"VMware vCenter parece limitar sesiones HTTP y en algunas circunstancias virt-\"\n\"v2v puede superar este número.   Puedes ajustar o retirar el límite editando \"\n\"F</etc/vmware-vpx/vpxd.cfg> sobre el servidor vCenter.  Incremente el campo \"\n\"C<E<lt>maxSessionCountE<gt>>, o establécelo a C<0> lo cuál lo hace ilimitado:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"L<virt-v2v(1)>.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"AUTOR\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\"virt-v2v-input-xen: Utiliza invitado de virt-v2v para convertir desde Xen\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.ejemplo.com'\\n\"\n\"          -ip archivocontraseña\\n\"\n\"          GUEST_NAME [-o* opciones]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\"Esta página documenta como utilizar L<virt-v2v(1)> para convertir invitados \"\n\"desde Xen RHEL 5, o SLES e invitados OpenSUSE Xen.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"ENTRADA DESDE XEN\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"Autenticación de SSH\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\"Se puede utilizar la autenticación de contraseña en SSH, proporcionando el \"\n\"nombre de un archivo que contiene la contraseña para la opción I<-ip> (nota \"\n\"esta opción I<not> toma la contraseña directamente).  Puedes necesitar \"\n\"ajustar F</etc/ssh/sshd_config> en el servidor Xen para establecer \"\n\"C<PasswordAuthentication yes>.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\"Si no estás utilizando autenticación de contraseña, una alternativa es \"\n\"utilizar ssh-agente, y añadir su clave pública ssh a F</root/.ssh/\"\n\"authorized_keys> (en el Xen invitado)  Tras hacer esto, comprobaría si \"\n\"funcionaba el acceso sin contraseña desde el servidor virt-v2v al Xen \"\n\"invitado.  Por ejemplo:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ ssh root@xen.ejemplo.com\\n\"\n\" [ accede directamente en el intérprete, no es requerida ninguna contraseña \"\n\"]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\"En algunas implementaciones modernas de ssh, los algoritmos de cifrado \"\n\"heredados para interoperar con los sshd de RHEL 5 está inutilizados.  Para \"\n\"habilitarles, puedes necesitar añadir la siguiente instancia C<Hospedaje> a \"\n\"vuestro F<~/.ssh/config>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Host xen.ejemplo.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\"(C<PubkeyAcceptedKeyTypes> y C<PubkeyAcceptedAlgorithms> tienen significado \"\n\"idéntico; la primera es la opción con su nombre anterior, la segunda es la \"\n\"nueva. Virt-v2v utiliza ambos C<libssh> y C<ssh> cuando conviertan in \"\n\"invitado desde Xen, y en algunos sistemas operativos, C<libssh> y C<ssh> no \"\n\"pueden ser aceptados ambos la misma variante de la opción.)\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\"Cuando conecta a sshd en RHEL 5 desde RHEL 9, el algoritmo de SHA1 utiliza \"\n\"unas firmas que tienen que ser re-habilitadas en el nivel de OpenSSL, junto \"\n\"con la adición de la configuración de SSH de arriba. Crea un archivo llamado \"\n\"F<$HOME/openssl-sha1.cnf> con los contenidos siguientes:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"y exporta la variable siguiente en el entorno del proceso C<virt-v2v>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\"Note que la variable C<OPENSSL_CONF> del entorno solo tomará efecto si la \"\n\"biblioteca de cliente libvirt utilizada por virt-v2v es al menos de la \"\n\"versión 8.6.0.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"Prueba la conexión libvirt al invitado Xen remoto\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\"Utilice el comando L<virsh(1)> para listar los invitados en el hospedaje Xen \"\n\"remoto:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virsh -c xen+ssh://root@xen.ejemplo.com list --all\\n\"\n\"  Id    Nombre                           Estado\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Dominio-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virsh -c xen+ssh://root@xen.ejemplo.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\"B<Si los comandos anteriores no funcionan, entonces virt-v2v tampoco \"\n\"funcionará.>.  Repara su configuración de libvirt o el servidor remoto antes \"\n\"de seguir adelante.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\"B<Si los discos invitados se encuentran en un dispositivo de bloques del \"\n\"host>, entonces la conversión fallará.  Consulte L</Xen or ssh conversions \"\n\"from block devices> abajo para un solución alternativa.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"Importar un invitado\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"Para importar un invitado particular desde un servidor Xen, haga:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.ejemplo.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\"donde C<rhel49-x86_64-pv> es el nombre del invitado (el cual debe estar \"\n\"apagado).\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"Las conversiones de Xen o ssh desde dispositivos de bloque\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\"Actualmente virt-v2v no puede acceder directamente a un Xen invitado (o \"\n\"cualquier invitado localizado remotamente sobre ssh) si los discos del \"\n\"invitado están situados en dispositivos de bloque hospedados.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\"Para decir si un Xen invitado utiliza dispositivos de bloque hospedado, mire \"\n\"en el XML invitado. Verás:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\"donde C<type='block'>, C<source dev=> y C</dev/...> son todas las \"\n\"indicaciones que el disco está ubicado en un dispositivo de bloque anfitrión.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\"Esto sucede porque el controlador de bloque ssh qemu que usamos para acceder \"\n\"a discos remotos usa el protocolo ssh sftp, y este protocolo no puede \"\n\"detectar correctamente el tamaño de los dispositivos de bloque del host.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\"La solución alternativa es copiar el dispositivo de bloque desde el servidor \"\n\"Xen remoto a un archivo local usual, copia el XMl del libvirt invitado, \"\n\"ajustar el elemento C<disk> para apuntar al archivo local, y utilice el modo \"\n\"C<-i libvirtxml> en su lugar.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\"virt-v2v-output-local – Utiliza virt-v2v para convertir invitados a archivos \"\n\"locales o libvirt\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [-i* opciones] [-o libvirt] -os POOL\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [-i* opciones] -o local -os DIRECTORIO\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [-i* opciones] -o qemu -os DIRECTORIO [-oo qemu-boot]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [-i* opciones] -o null\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\"Esta página documenta como utilizar L<virt-v2v(1)> para convertir invitados \"\n\"a archivos locales o a una instancia libvirt ejecutándose localmente.   Hay \"\n\"cuatro modos de salida que puedes seleccionar en la línea de comando virt-\"\n\"v2v:\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"B<-o libvirt -os> C<CONSORCIO>\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"B<-os> C<CONSORCIO>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\"Esto convierte el invitado a un directorio libvirt de invocación de \"\n\"consorcio C<POOL>, e instancia el invitado a libvirt (pero no lo inicia en \"\n\"ejecución). Consulte L</OUTPUT TO LIBVIRT> a continuación.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\"I<-o libvirt> es el predeterminado si ninguna de la opción I<-o> es \"\n\"proporcionada, por tanto puede omitirlo.\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"B<-o local -os> C<DIRECTORIO>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\"Esto convierte el invitado a archivos en C<DIRECTORIO>.  Un archivo XML de \"\n\"libvirt también se crea, pero a diferencia de I<-o libvirt> el invitado no \"\n\"es instanciado en libvirt, solo son creados los archivos.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"Los archivos serán llamados:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" NOMBRE‐sda, NOMBRE‐sdb, etc.      Disco(s) invitados.\\n\"\n\" NOMBRE.xml                      Libvirt XML.\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"donde C<NOMBRE> es el nombre del invitado.\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"B<-o qemu -os> C<DIRECTORIO>\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"B<-o qemu -os> C<DIRECTORIO> B<-oo qemu-boot>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\"Esto convierte el invitado a archivos en C<DIRECTORIO>.  A diferencia de I<-\"\n\"o local> , se crea un guion de intérprete el cual contiene el comando qemu \"\n\"sin formato al cual neesitaría arrancar el invitado. Sin embargo el guion \"\n\"del intérprete no es ejecutado, I<a no ser que> además añada la opción I<-oo \"\n\"qemu-boot>.\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"B<-o null>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\"El invitado es convertido, pero el resultado final está descartado y no es \"\n\"creado ningún metadato.  Esto es principalmente útil para testeo.\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"SALIDA A LIBVIRT\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\"La opción I<-o libvirt> le permite subir el invitado convertido a un \"\n\"invitado libvirt-managed.   Hay varias limitaciones:\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\"Solo puede utilizar una conexión libvirt local [consulte a continuación como \"\n\"solución alternativa de esto].\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\"La opción I<-os pool> debe especificar un grupo de directorio, no cualquier \"\n\"cosa más exótica como iSCSI [pero consulte a continuación].\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"Solo puede subir un hipervisor KVM.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\"Solución alternativa para salida a una instancia libvirt remota y/o un grupo \"\n\"de almacén distinto de directorio\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\"Uso virt-v2v en modo I<-o local> para convertir los discos de invitados y \"\n\"metadatos a un directorio local temporal:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"Esto crea dos (o más) archivos en F</var/tmp> llamados:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\" /var/tmp/NAME.xml     # el XML de libvirt (metadatos)\\n\"\n\" /var/tmp/NAME-sda     # el disco primero invitado\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"(para sustituir C<NOMBRE> sustituye el nombre del invitado).\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\"Sube el/los disco(s) convertido(s) al consorcio de almacén llamado C<POOL>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\"Edita F</var/tmp/NAME.xml> para cambiar F</var/tmp/NAME-sda> para el nombre \"\n\"del grupo.  En otras palabras, localiza el siguiente bit de XML:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NOMBRE-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\"y cambia dos cosas: El atributo C<type='file'> debe ser cambiado a \"\n\"C<type='volume'>, y el elemento C<E<lt>sourceE<gt>> debe ser cambiado para \"\n\"incluir los atributos C<pool> y #C<volume>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"Define el invitado final en libvirt:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virsh define /var/tmp/NOMBRE.xml\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\"virt-v2v-output-openstack – Utiliza virt-v2v para convertir invitados a \"\n\"OpenStack\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVIDOR\\n\"\n\"                        [-oo guest-id=INVITADO]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\"Esta página documenta como utilizar L<virt-v2v(1)> para convertir invitados \"\n\"a ejecutar en OpenStack.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\"ifelse(ENABLE_GLANCE, yes, `Hay dos modos de salida que puedes seleccionar, \"\n\"pero solo I<-o openstack> sería utilizado normalmente.  ')\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"B<-o openstack> B<-oo server-id=>SERVIDOR [...]\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"Descripción completa: L</OUTPUT TO OPENSTACK>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\"Esto es el método moderno para subir a OpenStack vía el REST API.  Los \"\n\"invitados pueden ser convertidos directamente a volúmenes Cinder.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"ifelse(ENABLE_GLANCE, yes, `\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"B<-o glance>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"Descripción completa: L</OUTPUT TO GLANCE>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\"Esto es el método anterior para subir a Glance.  Desafortunadamente Glance \"\n\"no es bien adaptado para almacenar invitados convertidos (desde virt-v2v \"\n\"trata \\\"mascotas\\\" no \\\"ganado\\\" de plantilla), así que este método no está \"\n\"recomendado a no ser que realmente conozcas qué estás haciendo.  ')\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"SALIDA A OPENSTACK\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"Para la salida a OpenStack, utilice la opción I<-o openstack>.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"OpenStack: configure un instrumento de conversión\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\"Cuando virt-v2v está convirtiendo a OpenStack, es inusual que virt-v2v \"\n\"B<debe> estar ejecutándose dentro de una máquina virtual ejecutándose en la \"\n\"cima de la nube de OpenStack.  Esta máquina virtual es llamada \\\"instrumento \"\n\"de conversión\\\".  Note que esta máquina virtual no está relacionada para el \"\n\"invitado el cual está siendo convertido.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\"La razón para esto es porque crea volúmenes Cinder que contendrán los datos \"\n\"del invitado (para el invitado convertido) debe adjuntar aquellos volúmenes \"\n\"Cinder a una máquina virtual OpenStack.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\"La instrucción C<openstack> debe ser instalada en el instrumento.   Lo \"\n\"utilizamos para comunicarse con OpenStack.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\"Cuando esté ejecutando virt-v2v dentro del instrumento de conversión, debe \"\n\"proporcionar el nombre o UUID del instrumento de conversión a virt-v2v, \"\n\"p.ej.:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                                        | Nombre\"\n\"                          | Estado |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVO |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"o:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\"Puedes ejecutar muchas conversiones paralelas dentro de un instrumento de \"\n\"conversión si quieres, supuesto a tener suficientes recursos disponibles.  \"\n\"Sin embargo el mismo OpenStack impone un límite que te sería consciente de: \"\n\"OpenStack no puede adjuntar más de alrededor 25 discos [el número exacto \"\n\"varía con la configuración] a uno instrumento único, y eso limita el número \"\n\"de invitados los cuales pueden ser convertidos en paralelo, porque cada \"\n\"disco invitado tiene que ser adjuntado al instrumento mientras sea copiado.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"OpenStack: Autenticación\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\"La conversión a OpenStack requiere acceso al punto final del API \"\n\"arrendatario (no-admin).   Necesitarás o bien configurar sus variables \"\n\"C<$OS_> de entorno o utilizar opciones de salida en la línea de instrucción \"\n\"de virt-v2v para autenticar con OpenStack.\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\"son equivalentes, y tienen el mismo efecto que utilizar I<--os-username> en \"\n\"la línea de instrucción de las herramientas de OpenStack.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\"Normalmente hay un archivo llamado F<overcloudrc> o F<keystonerc_admin> el \"\n\"cual puede simplificar C<source> para configurar todo.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\"Si se necesita copiar F<overcloudrc> a otra máquina, compruebe si referencia \"\n\"la variable del entorno C<OS_CLOUD>.  Si por tanto, puede tener que copiar \"\n\"el archivo F<clouds.yaml> desde el F</etc/openstack/> o el F<$HOME/.config/\"\n\"openstack/> a la otra máquina también.  Consulte la sección \\\"CONFIGURACIÓN \"\n\"DE NUBE\\\" en el manual CLI de OpenStack.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"OpenStack: Ejecutar como root\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\"Debido a que virt-v2v debe acceder a los volúmenes Cinder los cuales estén \"\n\"presentes como dispositivos F</dev> para el instrumento de conversión, virt-\"\n\"v2v debe usualmente ejeuctar como root en modo I<-o openstack>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\"Si utiliza C<sudo> para iniciar virt-v2v y estás utilizando variables de \"\n\"entorno para autenticación, recuerde utilizar la opción C<sudo -E> para \"\n\"preservar el entorno.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"OpenStack: ID de invitado\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\"Opcionalmente puede especificar I<-oo guest-id=...> en la línea de \"\n\"instrucción.  El ID (el cual puede ser cualquier cadena) es guardado en cada \"\n\"volumen Cinder en la propiedad del volumen C<virt_v2v_guest_id>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\"Esto puede ser utilizado para encontrar discos asociados con un invitado, o \"\n\"para asociar cuales discos están relacionados para cual invitado cunado \"\n\"convierta muchos invitados.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"OpenStack: Ignora certificado de servidor\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\"Utilizando I<-oo verify-server-certificate=false> puedes decir al cliente \"\n\"openstack ignorar el certificado de servidor cuando conecte a los puntos \"\n\"finales del API OpenStack.  Esto tiene el mismo efecto que pasar la opción \"\n\"I<--insecure> en la instrucción C<openstack>.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"OpenStack: Convertir un invitado\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\"La instrucción final para convertir el invitado, ejecutando como root, será:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" # virt-v2v [-i opcones ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NOMBRE|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"Si incluye opciones de autenticación en la línea de comando entonces:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" # virt-v2v [-i opciones ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NOMBRE|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"OpenStack: Arrancar el invitado\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\"Los invitados son convertidos como volumen(es) Cinder (un volumen por disco \"\n\"en el invitado original).  Para arrancarlos utilice la opción C<openstack \"\n\"server create --volume>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ openstack volumee list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Nombre          | Estado    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | disponible |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       mi-invitado\\n\"\n\" $ openstack console url show mi-invitado\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"OpenStack: Otras opciones de conversión\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\"Para especificar el tipo de volumen Cinder, emplee I<-os>.  Si no \"\n\"especificado entonces ningún tipo de volumen Cinder es utilizado.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\"Las opciones siguientes B<no> son admitidos con OpenStack: I<-oa>, I<-of>.\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"SALIDA A GLANCE\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\"Note que esto es una opción de legado.  En muchos casos utilizaría L</OUTPUT \"\n\"TO OPENSTACK> en su lugar.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"Para salida a OpenStack glance, utilice la opción I<-o glance>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\"Esto ejecuta el programa CLI L<glance(1)> el cual debe ser instalado en el \"\n\"huésped de conversión virt-v2v.  Para autenticación para funcionar, \"\n\"necesitarás establecer las variables del entorno C<OS_*>.  Consulte L</\"\n\"OpenStack: Authentication> arriba.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\"Virt-v2v añade metadatos para el invitado a Glance, describiendo tales cosas \"\n\"como el sistema operativo invitado y controladores son requeridos. El \"\n\"comando C<glance image-show> exhibirá los metadatos como campos \"\n\"\\\"Propiedad\\\" tales como C<os_type> y C<hw_disk_bus>.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"Glance y escasez\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\"La subida de imágenes de Glance no parece gestionar correctamente la \"\n\"escasez. Por este motivo, usar qcow2 será más rápido y ocupará menos espacio \"\n\"en el servidor de Glance. Emplee la opción virt-v2v S<I<-of qcow2>>.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"Glance y múltiples discos\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\"Si el invitado tiene un único disco, entonces el nombre del disco dentro de \"\n\"Glance será el nombre del invitado.  Puede controlar esto utilizando la \"\n\"opción I<-on>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\"Glance no tiene un concepto de asociar discos múltiples con un único \"\n\"invitado, y Nova no concede arrancar un invitado desde múltiples discos \"\n\"Glance tampoco.  Si el invitado tiene discos múltiples, entonces el primero \"\n\"(asumido para ser el disco de sistema) tendrá el nombre del invitado y el \"\n\"segundo y los subsecuentes discos de datos serán llamados C<I<guestname>-\"\n\"disk2>, C<I<guestname>-disk3> etc.   Puede ser mejor dejar el disco del \"\n\"sistema dentro de Glance, e importar los discos de datos a Cinder.  ')\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\"virt-v2v-output-ovirt – Utilización de virt-v2v para convertir invitados a \"\n\"oVirt\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [-i* opciones] -o ovirt-upload [-oc MOTOR_URL] -os ALMACENAMIENTO\\n\"\n\"                        [-op CONTRASEÑA] [-de crudo]\\n\"\n\"                        [-oo ovirt-cafile=ARCHIVO]\\n\"\n\"                        [-oo ovirt-GRUPO=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disco-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [-i* opciones] -o ovirt -os [esd:/ruta|/ruta]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [-i* opciones] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\"Esta página documenta como utilizar L<virt-v2v(1)> para convertir invitados \"\n\"a una instancia de gestión oVirt.   Hay tres modos de salida que puedes \"\n\"seleccionar, pero sólo I<-o ovirt-upload> sería utilizado normalmente, los \"\n\"otros dos están obsoletos:\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"B<-o ovirt-upload> B<-os> ALMACENAJE\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"Descripción completa: L</OUTPUT TO OVIRT>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\"Esto es el método moderno para subir a oVirt por medio del API REST.   \"\n\"Requiere oVirt E<ge> 4.2.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"B<-o ovirt> B<-os> esd:/ruta\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"B<-o ovirt> B<-os> /ruta\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"Descripción completa: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\"Este es el método antiguo para subir a oVirt por medio del Exportación de \"\n\"Dominio de Almacenamiento (ESD).  El ESD tampoco puede ser accedido sobre \"\n\"NFS (utilizando el formulario I<-os esd:/path>) o si tiene montado el NFS en \"\n\"otro lugar especificado en la ruta para el mountpoint como I<-os /path>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\"La Exportación del Dominio de Almacenaje fue obsoleto en oVirt 4, y por \"\n\"tanto espera que este método detendrá de funcionar en algún punto en el \"\n\"futuro.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"B<-o vdsm>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\"Este el método anterior usado internamente por el interfaz de usuario \"\n\"oVirt.  Nunca es intencionado para ser utilizado directamente por los \"\n\"usuarios finales.\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"SALIDA PARA OVIRT\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\"Este método nuevo para subir invitados a oVirt directamente por medio de API \"\n\"REST requiere oVirt E<ge> 4.2.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\"Necesitas especificar I<-o ovirt-upload> así como los siguientes parámetros \"\n\"adicionales:\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"I<-oc> C<https://ovirt-engine.ejemplo.com/ovirt-engine/api>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\"El URL del API REST el cual usualmente es el nombre de servidor con C</ovirt-\"\n\"engine/api> anexó, pero sería diferente si instalaste Engine oVirt en una \"\n\"ruta diferente.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\"Opcionalmente puedes añadir un nombre de usuario y número del puerto al \"\n\"URL.  Si el nombre del usuario no está especificado entonces virt-v2v por \"\n\"defecto utiliza C<admin@internal> el cuál es la cuenta típica de super‐\"\n\"usuario para instancias de oVirt.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"I<-of raw>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\"Actualmente debes utilizar I<-of raw> y no puedes utilizar I<-oa \"\n\"preallocated>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"Estas restricciones estarán ausentes en una versión futura.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"I<-op> F<password-file>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\"Un archivo que contiene una contraseña a ser utilizada cuando conecte al \"\n\"motor oVirt.  Note que el archivo tendría que contener la contraseña \"\n\"completa, B<sin ninguna línea nueva en la cola>, y para seguridad el archivo \"\n\"tendría que tener el modo C<0600> tal que otros no pueden leerlo.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"I<-os> C<ovirt-data>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"El dominio de almacenaje.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"I<-oo ovirt-cafile=>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\"El archivo F<ca.pem> (Autoridad de Certificado), copiado desde F</etc/pki/\"\n\"ovirt-engine/ca.pem> en el motor oVirt.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\"Si está habilitado I<-oo ovirt-verifypeer> entonces esta opción puede ser \"\n\"utilizada para controlar cual AC es utilizado para verificar la identidad \"\n\"del cliente.  Si esta opción no es utilizada entonces es utilizado el \"\n\"almacenaje de confianza global del sistema.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"I<-oo ovirt-cluster=>C<NOMBRECLUSTER>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\"Pone el Nombre de Cluster oVirt.  Si no se proporciona utilice C<Default>.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"I<-oo ovirt-disk-uuid=>C<UUID>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\"Esta opción puede utilizarse manualmente especificando los UUID para los \"\n\"discos cuando crea la máquina virtual. Si no se especificó, el motor oVirt \"\n\"generará los UUID aleatorios para los discos.  Por favor, note que:\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\"B<debe> pasar como muchas opciones de I<-oo ovirt-disk-uuid=UUID> como la \"\n\"cantidad de discos en el invitado\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\"los UUID especificados no deben entrar en conflicto con los UUID de discos \"\n\"existentes\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"I<-oo ovirt-proxy>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\"Realice la subida a través del Motor oVirt.  Esto es más lento que subir \"\n\"directamente al nodo oVirt pero puede ser necesario si no tienen acceso de \"\n\"red directo a los nodos.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"I<-oo ovirt-verifypeer>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\"Verifica la identidad del servidor oVirt al comprobar el certificado del \"\n\"servidor frente a la Autoridad del Certificado.\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"SALIDA PARA EXPORTAR DOMINIO DE ALMACÉN\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\"Esta sección solo aplica al modo I<-o ovirt> de salida.  Si utilizas virt-\"\n\"v2v desde la interfaz de usuario oVirt, entonces detrás de las escenas lo \"\n\"importante está dirigida por VDSM utilizando el modoI<-o vdsm> de salida (el \"\n\"cual finaliza usuarios no tendrían que utilizar directamente).\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\"Tienes que especificar I<-o ovirt> y una opción I<-os> que apunte al Dominio \"\n\"de Almacén de Exportación oVirt.  Tampoco puedes especificar el servidor NFS \"\n\"y mountpoint, p.ej., S<C<-os ovirt-storage:/ovirt/export>>, o puedes montar \"\n\"eso primero y apuntar al directorio donde está montado, p.ej., S<C<-os /tmp/\"\n\"mnt>>.  Sea prudente no apuntar al Dominio de Almacén de Datos por accidente \"\n\"tal que eso no funcionará.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\"En el completado de virt-v2v correcto habrá escrito el invitado nuevo al \"\n\"Dominio de Almacenaje de Exportación, pero aún no está a preparado para \"\n\"ejecutar.  Debe ser importado en oVirt utilizando el IU antes que pueda ser \"\n\"utilizado.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\"En oVirt E<ge> 2.2 esto está hecho desde la lengüeta Almacenamiento.  \"\n\"Seleccione el dominio de exportación al que el invitado fue escrito..  \"\n\"Aparecerá debajo un panel con un listado del dominio de almacenaje que \"\n\"muestra varias lengüetas, una de las cuales es \\\"Importación de MV\\\".  El \"\n\"invitado convertido será listado aquí.  Seleccione una pulsación al invitado \"\n\"apropiado para \\\"Importación\\\". Consulte la documentación de oVirt para \"\n\"detalles adicionales.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\"Si exporta varios invitados, entonces puede importarlos todos al mismo \"\n\"tiempo a través del IU.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"Probar conversiones de oVirt\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\"Si no tienes una instancia oVirt para probar de nuevo, entonces puedes \"\n\"probar conversiones para crear una estructura de directorio el cuál mira \"\n\"suficiente como una Exportación del Dominio de Almacén oVirt para trampear \"\n\"con virt-v2v:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"Depurar fallos de importación de oVirt\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\"Cuando exportas al Dominio de Almacén de Exportación oVirt, y entonces \"\n\"importar ese invitado a través del IU de oVirt, puedes encontrar un fallo de \"\n\"importación.  Diagnosticar estos fallos es exasperantemente difíciles como \"\n\"el IU generalmente esconde la verdad de la razón para el fallo.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"Hay varias bitácoras de interés:\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"F</var/log/vdsm/import/>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\"En oVirt E<ge> 4.1.0, VDSM preserva la bitácora de virt-v2v por 30 días en \"\n\"este directorio.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\"Este directorio se encuentra en el huésped el cuál actuó la conversión.  El \"\n\"hospedaje puede ser seleccionado en el diálogo de importación, o puede ser \"\n\"encontrado bajo la lengüeta C<Events> en la administración de oVirt.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"F</var/log/vdsm/vdsm.log>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\"Tan encima, este archivo está presente en el huésped el cuál actuó la \"\n\"conversión.   Contiene mensajes de error detallados desde operaciones \"\n\"ejecutadas de bajo nivel por VDSM, y es útil si el error no fue causado por \"\n\"virt-v2v, sino por VDSM.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"F</var/log/ovirt-engine/engine.log>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\"Esta bitácora está almacenada sobre el servidor oVirt. Contiene más detalle \"\n\"para cualquier error causado por el IGU de oVirt.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"virt-v2v-release-notes – notas de lanzamiento de virt-v2v para 1.42\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\"Estas son las notas de lanzamiento para S<B<virt-v2v 1.42>>, publicado el \"\n\"S<B<16 de abril de 2020>>.\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"Características nuevas\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\"Esta es la primera liberación donde virt-v2v vive en un repositorio separado \"\n\"desde libguestfs.  Los dos proyectos ahora están en términos generales \"\n\"desacoplados de otro.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\"Añade un modo de salida de I<-o json> nuevo.  Primeramente esto es utilizado \"\n\"para realizar conversiones a KubeVirt (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\"Utilice las capacidades nuevas de C<E<lt>firmwareE<gt>> para obtener el \"\n\"firmware de la fuente del invitado (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\"virt-v2v I<-o rhv-upload> con la opción nueva I<-oo rhv-disk-uuid> concede a \"\n\"las UUID del disco estar especificado.  También I<-oo rhv-cafile> ahora es \"\n\"opcional (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\"Las conversiones sobre ssh ahora utilizan L<nbdkit-ssh-plugin(1)> en lugar \"\n\"de la unidad QEMU ssh. Similarmente L<nbdkit-curl-plugin(1)> es utilizado en \"\n\"vez de la unidad curl de QEMU. Esto nos concede añadir más características \"\n\"flexibles tales como autenticación por contraseña, limitación del ancho de \"\n\"banda (opción I<--bandwidth> nueva), pre‐lectura, y reintento automático \"\n\"sobre fallos de red.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\"Para invitados de Windows, el Agente invitado de QEMU MSI ahora puede ser \"\n\"instalado (Tomáš Golembiovský).\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"Otras correcciones\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"En el modo I<-o libvirt>, admite Windows Server 2019 (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"Corrige conversiones de Ubuntu Server (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\"Corrige instalación de qemu-ga solo por instalación de archivos específicos \"\n\"de arquitectura en el invitado (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\"Demora la instalación de qemu-ga hasta que los controladores de virtio-win \"\n\"hayan sido instalados y reiniciados (Tomáš Golembiovský).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\"Guarda la bitácora desde la ejecución del instalador RHEV-APT para conceder \"\n\"depuración (Tomáš Golembiovský).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\"Compruebe la existencia del cluster RHV antes de intentar convertir cuando \"\n\"utilice el modo I<-o rhv-upload>.  También nos concede detectar y rechazar \"\n\"varias otras condiciones prematuramente.  (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\"Etiquete correctamente los zócalos nbdkit para SELinux/sVirt (Martin \"\n\"Kletzander).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\"Puede utilizar un dispositivo de bloque como el ISO del la unidad virtio de \"\n\"Windows.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\"Varias correcciones a las cargas de RHV: Se ha configurado correctamente el \"\n\"campo C<DISKTYPE> al convertir a RHV y VDSM. Se ha realizado una limpieza \"\n\"adecuada en caso de fallo. Se muestra el ID del disco en los mensajes de \"\n\"error y se registran los parámetros del script para facilitar la depuración. \"\n\"Se han realizado varias limpiezas de código. (Nir Soffer).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"Admite conversiones a RHV en formato qcow2 (Nir Soffer).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\"Repara detección de estado de disco y fallos tras conversión a RHV (Daniel \"\n\"Erez).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\"Cancela transferencia de disco y extrae los discos subidos sobre fallo de \"\n\"conversión a RHV (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\"Imágenes conteniendo huecos pequeños (regiones dispersas) ahora convertirían \"\n\"más rápido (Nir Soffer).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\"El L<nbdkit-cacheextents-filter(1)> suele acelerar fuentes las cuales tienen \"\n\"detección de escasez lenta, primariamente significa que las fuentes VMware \"\n\"utilizan VDDK (Martin Kletzander).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\"Requiere al menos 100 i-nodes libres en cada sistema de archivo invitado \"\n\"antes de hacer conversión, ya que la carencia de nodos‐i pudo causar fallos \"\n\"de conversión (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"Repara la salida osinfo para conversiones CentOS 8 (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\"Las herramientas VMware ahora son retiradas de invitados de Windows \"\n\"automáticamente en la mayoría de los casos (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\"El modo I<-i ova> ya no lee la entrada entera de OVF a memoria, pero lo \"\n\"interpreta fuera del disco (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\"Cuando convierte a OpenStack, ahora esperamos hasta 5 minutos (en vez de 60 \"\n\"segundos) para el volumen Cinder obtenga adjuntado al instrumento de \"\n\"conversión, desde entonces en algunos casos tomaba un tiempo largo.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\"Si utiliza una versión suficiente para nbdkit, las bitácoras de virt-v2v \"\n\"serían mucho menos verborreas.\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"No hubo ningún defecto relacionado con seguridad en este lanzamiento.\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"Cambios de construcción\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\"Se requiere libguestfs E<ge> 1.40, ahora está empaquetado y distribuido \"\n\"separadamente desde virt-v2v.  Para desarrolladores puede utilziar una \"\n\"construcción localmente (y no instalada) copia de libguestfs.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"L<https://bugzilla.redhat.com/1791802>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"L<https://bugzilla.redhat.com/1791257>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\"El ejemplo del comando update-crypto-policies es incorrecto en virt-v2v-\"\n\"input-xen\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"L<https://bugzilla.redhat.com/1791240>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"L<https://bugzilla.redhat.com/1785528>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"L<https://bugzilla.redhat.com/1746699>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"L<https://bugzilla.redhat.com/1733168>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"L<https://bugzilla.redhat.com/1723305>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"L<https://bugzilla.redhat.com/1691659>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"L<https://bugzilla.redhat.com/1690574>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"L<https://bugzilla.redhat.com/1680361>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"L<https://bugzilla.redhat.com/1626503>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"L<https://bugzilla.redhat.com/1612653>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"L<https://bugzilla.redhat.com/1605242>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"L<https://bugzilla.redhat.com/1584678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"L<https://bugzilla.redhat.com/1518539>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\"La salida de Virt-v2v a oVirt ahora intenta configurar correctamente la \"\n\"máquina y el tipo de firmware. Tenga en cuenta que no siempre es posible \"\n\"obtener una asignación exacta y, en ocasiones, oVirt puede ignorar nuestras \"\n\"recomendaciones (incorrectamente).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"L<https://bugzilla.redhat.com/2051394>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"L<https://bugzilla.redhat.com/2044922>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"L<https://bugzilla.redhat.com/2044911>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"L<https://bugzilla.redhat.com/2043333>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"L<https://bugzilla.redhat.com/2041886>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\"virt-v2v se bloquea durante varios minutos al usar -ic vpx://... -it vddk \"\n\"con una dirección IP incorrecta\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"L<https://bugzilla.redhat.com/2041852>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"L<https://bugzilla.redhat.com/2041850>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"L<https://bugzilla.redhat.com/2039597>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"L<https://bugzilla.redhat.com/2039255>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"L<https://bugzilla.redhat.com/2034240>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"L<https://bugzilla.redhat.com/2033096>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"L<https://bugzilla.redhat.com/2032324>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"L<https://bugzilla.redhat.com/2032112>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"L<https://bugzilla.redhat.com/2027673>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"L<https://bugzilla.redhat.com/2027598>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"L<https://bugzilla.redhat.com/1994984>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"L<https://bugzilla.redhat.com/1977681>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"L<https://bugzilla.redhat.com/1976607>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"L<https://bugzilla.redhat.com/1976024>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"L<https://bugzilla.redhat.com/1972125>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"L<https://bugzilla.redhat.com/1967941>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"L<https://bugzilla.redhat.com/1964324>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"L<https://bugzilla.redhat.com/1961107>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"L<https://bugzilla.redhat.com/1960087>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"L<https://bugzilla.redhat.com/1949147>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"L<https://bugzilla.redhat.com/1945549>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"L<https://bugzilla.redhat.com/1942325>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"L<https://bugzilla.redhat.com/1926102>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"L<https://bugzilla.redhat.com/1917760>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"L<https://bugzilla.redhat.com/1903960>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"L<https://bugzilla.redhat.com/1901489>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"L<https://bugzilla.redhat.com/1895323>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"L<https://bugzilla.redhat.com/1872100>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\"Corregiría el informe sobre 'UEFI en OpenStack' dentro de la página man de \"\n\"virt-v2v-support\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"L<https://bugzilla.redhat.com/1872094>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"L<https://bugzilla.redhat.com/1871754>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\"RFE: Se aclararía cual archivo es el archivo de autenticación correcto para \"\n\"la conversión de OpenStack/Glance en la página man de virt-v2v-output-\"\n\"openstack\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"L<https://bugzilla.redhat.com/1868690>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"L<https://bugzilla.redhat.com/1858775>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"L<https://bugzilla.redhat.com/1858765>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"L<https://bugzilla.redhat.com/1854275>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"L<https://bugzilla.redhat.com/1842440>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"L<https://bugzilla.redhat.com/1841096>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"L<https://bugzilla.redhat.com/1839917>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"L<https://bugzilla.redhat.com/1838425>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"L<https://bugzilla.redhat.com/1837453>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"L<https://bugzilla.redhat.com/1837328>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"L<https://bugzilla.redhat.com/1832805>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"L<https://bugzilla.redhat.com/1789279>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"L<https://bugzilla.redhat.com/1788823>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"L<https://bugzilla.redhat.com/1764569>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"L<https://bugzilla.redhat.com/1658126>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"L<https://bugzilla.redhat.com/1637857>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"L<https://bugzilla.redhat.com/1581428>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"L<https://bugzilla.redhat.com/1534644>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"Autores de virt-v2v 2.0:\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"git shortlog -s v1.42.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"Denis Plotnikov\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"Kevin Locke\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"Mikhail Gordeev\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"Valeriy Vdovin\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"virt-v2v-release-notes – notas de lanzamiento de virt-v2v para 2.10\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"Virt-v2v 2.10.0 fue lanzado el S<B<6 de enero de 2026>>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\"I<-io vddk-thumbprint> ahora es opcional.  Si es omitida, virt-v2v \"\n\"automáticamente funcionará externo desde el servidor VMware.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"Características retiradas\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"./bugs-in-changelog.sh v2.8.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-100682>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-101599>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-102734>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-104352>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-108174>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-108991>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-110742>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-113820>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-121728>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-124569>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-125116>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-125956>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-90175>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-97600>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-99313>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-99745>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"Autores de virt-v2v 2.10:\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"git shortlog -s v2.8.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"Ricky Tigg\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"Yuri Chornoivan\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"© 2009-2026 Red Hat Inc.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"virt-v2v-release-notes - notas de lanzamiento de virt-v2v para 2.2\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"Virt-v2v 2.2.0 fue lanzado el S<B<martes 10 de enero de 2023>>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\"Añadir mantenimiento para dispositivos NVMe y discos duros SATA cuando \"\n\"importen desde archivos VMX de VMware (Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\"Añade mantenimiento para importar a KubeVirt utilizando el modo I<-o \"\n\"kubevirt> B<experimental>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"Los invitados de Windows 11 ahora tienen mantenimiento.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\"Se ha añadido soporte para invitados de Rocky Linux (Andrey Drobyshev).\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"Característica retirada\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\"El modo I<-o json> fue retirado. Estaba previsto utilizarlo con KubeVirt, \"\n\"pero en realidad nunca se utilizó allí.  Utilice I<-o kubevirt> en su lugar.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\"Se corrigió la detección de compatibilidad con virtio-socket en huéspedes \"\n\"Linux (Laszlo Ersek). Además, se elige un CID de huésped semialeatorio en el \"\n\"modo I<-o qemu>, lo que evita errores.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\"Concede la importación de OVAs donde el nombre de usuario o grupo dentro del \"\n\"archivo tar contiene un espacio (Jiří Sléžka).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\"Rechazar invitados con instantáneas cuando use -i vmx -it ssh (Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\"Mejorar la documentación sobre la necesidad de habilitar la autenticación de \"\n\"contraseña en el lado del servidor al importar a través de SSH (Laszlo \"\n\"Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\"No use la opción obsoleta qemu I<-balloon>. Esto generó advertencias de \"\n\"obsolescencia con el modo I<-o qemu>. Use I<-device> en su lugar.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\"Reescriba la asignación de dispositivos en modo I<-o qemu>, eliminando \"\n\"algunos casos extraños o inexistentes, como los disquetes SCSI. Esto \"\n\"resultaría en una distribución de dispositivos más consistente al usar este \"\n\"modo (Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\"Eliminar más paquetes open-vm-tools sobrantes de los invitados Linux (Tim \"\n\"Kent).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"Manejo de modelos vCPU muy mejorado (Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\"La documentación ya no aconseja utilizar la peligrosa opción global \\\"LEGACY \"\n\"crypto\\\", sino que ofrece consejos más específicos (Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\"Eliminar el archivo de dispositivos LVM2 durante la conversión (Laszlo \"\n\"Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\"Agregue soporte para invitados que utilizan módulos de kernel comprimidos \"\n\"Zstandard.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\"Agregue el controlador de pantalla BOCHS DRM en el invitado initrd de Linux, \"\n\"para evitar un bloqueo con algunos invitados con pantallas de arranque \"\n\"gráficas (Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\"El cargador de arranque alternativo UEFI ahora está reparado si detectamos \"\n\"que estaba dañado (Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\"Mejorar la detección de invitados que utilizan el arranque BIOS con \"\n\"particiones GPT para que ya no los confundamos con invitados UEFI (Andrey \"\n\"Drobyshev).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\"Solucionar el conflicto entre los controladores de Windows fwcfg y qemufwcfg \"\n\"(Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\"Corregir la compatibilidad de Windows 11 con salidas RHV (Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"Habilitar la depuración de malloc en pruebas con glibc E<ge> 2.34.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\"Al usar C<make check-valgrind>, la salida de valgrind ya no se escribe en \"\n\"archivos separados bajo F<tmp/>. En su lugar, se escribe en el archivo de \"\n\"registro de pruebas normal.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\"Ahora requerimos las opciones I<-one-line> y I<-all> de ocamldep (agregadas \"\n\"a ocamldep en enero de 2012).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\"Los enlaces de OCaml libvirt ya no se incluyen. Deben estar disponibles en \"\n\"el momento de la compilación.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\"Se actualizaron las imágenes falsas de las pruebas. Todas las pruebas \"\n\"deberían pasar.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"Toda la compatibilidad con OCaml 4.14.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"Ahora necesitamos PCRE2 en lugar de PCRE.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"Pruebas LUKS-on-LVM nuevas añadidas (Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\"Se agregó F<scripts/git.orderfile> que ordena los archivos cuando preparamos \"\n\"parches.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"L<https://bugzilla.redhat.com/2152465>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\"v2v configuraría ovirt:id correctamente tras convertir los invitados de \"\n\"Windows 11/2019/2022 a rhv mediante -o rhv-upload\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"L<https://bugzilla.redhat.com/2151752>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\"El dispositivo qemufwcfg no puede iniciarse o no tiene controlador después \"\n\"de convertir v2v a invitados de Windows\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"L<https://bugzilla.redhat.com/2149863>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"L<https://bugzilla.redhat.com/2149811>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"L<https://bugzilla.redhat.com/2149629>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"L<https://bugzilla.redhat.com/2131123>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"L<https://bugzilla.redhat.com/2116811>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"L<https://bugzilla.redhat.com/2112801>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"L<https://bugzilla.redhat.com/2107503>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"L<https://bugzilla.redhat.com/2101665>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"L<https://bugzilla.redhat.com/2089623>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"L<https://bugzilla.redhat.com/2082603>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"L<https://bugzilla.redhat.com/2076013>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"L<https://bugzilla.redhat.com/2074805>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"L<https://bugzilla.redhat.com/2074801>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"L<https://bugzilla.redhat.com/2070530>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"L<https://bugzilla.redhat.com/2070186>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"L<https://bugzilla.redhat.com/2069768>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"L<https://bugzilla.redhat.com/2066773>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"L<https://bugzilla.redhat.com/2062360>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"L<https://bugzilla.redhat.com/2059287>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"L<https://bugzilla.redhat.com/2051564>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"L<https://bugzilla.redhat.com/2047660>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"L<https://bugzilla.redhat.com/2028764>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"L<https://bugzilla.redhat.com/2003503>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"L<https://bugzilla.redhat.com/1985827>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"L<https://bugzilla.redhat.com/1953286>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"L<https://bugzilla.redhat.com/1938954>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"L<https://bugzilla.redhat.com/1883802>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"-i vmx: los discos SATA no son interpretados\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"L<https://bugzilla.redhat.com/1817050>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"L<https://bugzilla.redhat.com/1774386>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"Autores de virt-v2v 2.2:\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"git shortlog -s v2.0.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"Andrey Drobyshev\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"Emilio Herrera\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"Ettore Atalan\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"Hela Basa\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"Jan Kuparinen\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"Marcin Stanclik\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"Pavel Borecki\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"Piotr Drąg\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"Temuri Doghonadze\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"Tim Kent\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"virt-v2v-release-notes - notas de lanzamiento de virt-v2v 2.4\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"L<https://bugzilla.redhat.com/2182024>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"L<https://bugzilla.redhat.com/2175703>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"L<https://bugzilla.redhat.com/2172075>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"L<https://bugzilla.redhat.com/2168506>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"L<https://bugzilla.redhat.com/2168082>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"L<https://bugzilla.redhat.com/2166619>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"L<https://bugzilla.redhat.com/2166618>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"L<https://bugzilla.redhat.com/2162444>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"L<https://bugzilla.redhat.com/2162332>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"L<https://bugzilla.redhat.com/1986386>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"Autores de virt-v2v 2.4:\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"git shortlog -s v2.2.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"grimst\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"HATAYAMA Daisuke\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"Jürgen Hötzel\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"./bugs-in-changelog.sh v2.4.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-21365>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-28197>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-33699>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-36591>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-45527>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-45992>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-49761>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-50731>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-51169>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-53990>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-55763>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-55837>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\"Re-habilitar discos de Windows tras la migración post-live [rhel-9.4.z]\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-56784>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-58065>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"Autores de virt-v2v 2.6:\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"git shortlog -s v2.4.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"Andi Chandler\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"Bella Khizgiyaev\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"Bella Zhang\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"Jerry James\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"liuxiang\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"Schamane187\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"Thorsten Bolten\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"virt-v2v-release-notes – notas de lanzamiento de virt-v2v para 2.8\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"Virt-v2v 2.8.0 fue lanzado el S<B<11 de junio de 2025>>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"I<--password-file>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"Toda la compatibilidad con GNU gettext 0.25.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"./bugs-in-changelog.sh v2.6.0..\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"L<https://issues.redhat.com/browse/MTV-2256>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-32099>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-39077>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-58032>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-65009>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-65010>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-66197>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-67007>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-67836>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-71522>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-77989>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-80080>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-85508>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-85512>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-85514>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-86022>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-88543>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-88985>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-70840>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"Autores de virt-v2v 2.8:\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"git shortlog -s v2.6.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"Hipervisores (Entrada)\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"VMware ESXi\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"OVA exportada desde VMware\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"OVAs desde hipervisores no funcionarán.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"VMX desde VMware\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"Archivos VMS generados por otros hipervisores no funcionarán.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"RHEL 5 Xen\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"SUSE Xen\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"Citrix Xen\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"Citrix Xen no ha sido probado recientemente.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"Hyper-V\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\"No probado recientemente. Requiere que exporte el disco o utilizar L<virt-\"\n\"p2v(1)> en Hyper-V.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"Directo desde imágenes de disco\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"Máquinas físicas\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"Utilizando la herramienta L<virt-p2v(1)>.\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"Hipervisores (Salida)\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"Solo QEMU y KVM.\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"Sistemas de gestión de virtualización (Salida)\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"OpenStack\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"Local libvirt\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"Y por tanto L<virsh(1)>, L<virt-manager(1)>, y herramientas similares.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"Discos locales\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"Huésped\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"CentOS 4, 5, 6, 7, 8, 9, 10\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"Linux Oracle\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"Fedora\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"UEFI en OpenStack\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"UEFI en oVirt\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\"L<virt-v2v-release-notes-2.8(1)> — Notas de lanzamiento para liberación 2.8.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"L<virt-v2v-release-notes-2.10(1)> — Notas de lanzamiento para 2.10.\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"EJEMPLOS\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"Para más información consulte L<virt-v2v-input-vmware(1)>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"Convertir desde VMware a oVirt\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\"Este es el mismo ejemplo que el anterior, excepto que se desea enviar al \"\n\"invitado a un Dominio de Datos oVirt mediante la API REST de RHV. Las \"\n\"interfaces de red del invitado están conectadas a la red de destino \"\n\"denominada C<ovirtmgmt>.\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.ejemplo.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\"En este caso, el host que ejecuta virt-v2v actúa como un B<servidor de \"\n\"conversión>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"Para obtener más información, consulte L<virt-v2v-output-ovirt(1)>.  ')\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"Convertir desde hipervisor ESXi a través de SSH a libvirt local\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\"Tiene un hipervisor ESXi llamado C<esxi.example.com> con acceso SSH \"\n\"habilitado. Quiere convertir el almacenamiento VMFS de ese servidor a un \"\n\"archivo local.\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.ejemplo.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\"\n\"\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"Virt-v2v I<no> necesidad ser ejecutada como root.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\"Para obtener más información sobre la conversión de archivos VMX, consulte \"\n\"L<virt-v2v-input-vmware(1)>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"Convertir imagen de disco a OpenStack\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"OPCIONES\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"B<--help>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"B<--echo-keys>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"Establezca la huella dactilar del servidor remoto de VMware.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\"Consulte L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> para los detalles.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"__INCLUDE:key-option.pod__\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"B<--memsize> MB\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"B<--no-fstrim>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"Consulte L<virt-v2v-output-ovirt(1)>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"Consulte L<virt-v2v-output-ovirt(1)>.  ')\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"B<-q>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"B<--quiet>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"B<--smp> N\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"B<-v>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"B<--verbose>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"Habilita mensajes verbosos para depuración.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"B<-V>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"B<--version>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"Exhibe el número de la versión y sale.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"B<--wrap>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"B<-x>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"Habilita trazado de invocaciones API de libguestfs.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"2\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"L<https://access.redhat.com/articles/7112814>\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"Consulte L<https://bugzilla.redhat.com/2140548>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\"Para obtener más información consulte: L<https://issues.redhat.com/browse/\"\n\"MTV-2256>\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\"(Consulte la captura de pantalla en L<https://issues.redhat.com/browse/RHEL-\"\n\"103915>)\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"Consulte también L<https://bugzilla.redhat.com/2182024>.\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"ARCHIVOS\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"VARIABLES DE ENTORNO\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\"Para otras variables de entorno, consulte L<guestfs(3)/VARIABLES DEL ENTORNO>\"\n\".\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-reg\"\n\"(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-uploader\"\n\"(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>, \"\n\"L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\"El campo opcional E<lt>checksumE<gt> especifica el hash esperado del disco \"\n\"correspondiente.  Puede ser especificado por herramientas de gestión con el \"\n\"fin de hacer la comprobación de integridad de datos de extremo a extremo.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\"Las variables de entorno utilizadas son las mismas que para birt-v2v.  \"\n\"Consulte L<virt-v2v(1)/VARIABLES DE ENTORNO>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"Notas:\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"B<--run> ORDEN\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#~ msgid \"Red Hat Virtualization (RHV) 4.1 and up\"\n#~ msgstr \"Red Hat Virtualization (RHV) 4.1 y posterior\"\n"
  },
  {
    "path": "po-docs/eu.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the libguestfs package.\n#\n# Translators:\n# Asier Iturralde Sarasola <asier.iturralde@gmail.com>, 2012\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2015-02-21 10:17+0000\\n\"\n\"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\\n\"\n\"Language-Team: Basque (http://www.transifex.com/projects/p/libguestfs/\"\n\"language/eu/)\\n\"\n\"Language: eu\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"*\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"Adibidez:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"IZENA\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"DESKRIBAPENA\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"IKUS BAITA\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"EGILEAK\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"1.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"2.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"edo:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/fi.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 1.43.1\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2025-04-23 07:55+0000\\n\"\n\"Last-Translator: Ricky Tigg <ricky.tigg@gmail.com>\\n\"\n\"Language-Team: Finnish <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-docs-master/fi/>\\n\"\n\"Language: fi\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Generator: Weblate 5.11\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"kommentti\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" Copyright (C) 2009-2020 Red Hat Inc.\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Tekijänoikeus (C) 2009–2020 Red Hat Inc.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"Esimerkiksi:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"NIMI\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"KUVAUS\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\n#, fuzzy\n#| msgid \"Copyright (C) 2009-2020 Red Hat Inc.\"\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"Tekijänoikeus (C) 2009–2020 Red Hat Inc.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"SYNOPSIS\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"virt-v2v-release-notes - virt-v2v:n julkaisutiedoteet versiolle 1.42\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\"Nämä ovat S<B<virt-v2v 1.42>>:n julkaisutiedoteet, joka julkaistiin \"\n\"S<B<16.4.2020>>.\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"Turvallisuus\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\"Aiemmat virt-v2v:n julkaisutiedoteet löytyvät libguestfs-projektista: \"\n\"L<guestfs-release-notes-1.40(1)>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"virt-v2v-release-notes - virt-v2v:n julkaisutiedoteet versiolle 2.0\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\"Nämä ovat S<B<virt-v2v 2.0>>:n julkaisutiedoteet. Tämä kuvaa tärkeimmät \"\n\"muutokset 1.42:n jälkeen.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\"Julkaisutiedoteita ei julkaistu versiolle 1.44, joten tämä julkaisu \"\n\"käsitellään tässä.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\n#, fuzzy\n#| msgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"virt-v2v-release-notes - virt-v2v:n julkaisutiedoteet versiolle 2.0\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\n#, fuzzy\n#| msgid \"\"\n#| \"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n#| \"major changes since 2.0.\"\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\"Nämä ovat S<B<virt-v2v 2.2>>:n julkaisutiedoteet. Tämä kuvaa suuria \"\n\"muutoksia 2.0:n jälkeen.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\n#, fuzzy\n#| msgid \"Copyright (C) 2009-2020 Red Hat Inc.\"\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"Tekijänoikeus (C) 2009–2020 Red Hat Inc.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"virt-v2v-release-notes - virt-v2v:n julkaisutiedoteet versiolle 2.2\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\"Nämä ovat S<B<virt-v2v 2.2>>:n julkaisutiedoteet. Tämä kuvaa suuria \"\n\"muutoksia 2.0:n jälkeen.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"virt-v2v-release-notes - virt-v2v:n julkaisutiedoteet versiolle 2.4\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\"Nämä ovat S<B<virt-v2v 2.4>>:n julkaisutiedoteet. Tämä kuvaa suuria \"\n\"muutoksia 2.2:n jälkeen.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"virt-v2v-release-notes - virt-v2v:n julkaisutiedoteet versiolle 2.6\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\"Nämä ovat S<B<virt-v2v 2.6>>:n julkaisutiedoteet. Tämä kuvaa suuria \"\n\"muutoksia 2.4:n jälkeen.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\n#, fuzzy\n#| msgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"virt-v2v-release-notes - virt-v2v:n julkaisutiedoteet versiolle 2.0\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\n#, fuzzy\n#| msgid \"\"\n#| \"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n#| \"major changes since 2.4.\"\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\"Nämä ovat S<B<virt-v2v 2.6>>:n julkaisutiedoteet. Tämä kuvaa suuria \"\n\"muutoksia 2.4:n jälkeen.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"Hyper-V\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"Paikallinen levy\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"Vierasjärjestelmät\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"Oracle Linux\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"Fedora\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\"VMwaren avulla voit esittää UEFI-laiteohjelmiston vieraille (tavanomaisen PC-\"\n\"BIOSin sijaan). Virt-v2v voi muuntaa nämä vieraat, mutta vaatii, että \"\n\"kohdehypervisor tukee UEFI:aa.\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\"Tällä hetkellä KVM tukee OVMF:aa, avoimen lähdekoodin UEFI-laiteohjelmistoa, \"\n\"ja voi käyttää näitä vieraita.\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\"Koska OVMF-tuki lisättiin KVM:ään vasta äskettäin (vuosina 2014/2015), \"\n\"kaikki kohdeympäristöt eivät vielä tue UEFI-vieraita:\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"UEFI libvirtissä, qemussa\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"UEFI OpenStackissa\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\n#, fuzzy\n#| msgid \"UEFI on oVirt or RHV\"\nmsgid \"UEFI on oVirt\"\nmsgstr \"UEFI oVirtissä tai RHV:ssa\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"L<virt-v2v-release-notes-1.42(1)> — Version 1.42 julkaisutiedoteet.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"L<virt-v2v-release-notes-2.0(1)> — Version 2.0 julkaisutiedoteet.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"L<virt-v2v-release-notes-2.2(1)> — Version 2.2 julkaisutiedoteet.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"L<virt-v2v-release-notes-2.4(1)> — Version 2.4 julkaisutiedoteet.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"L<virt-v2v-release-notes-2.6(1)> — Version 2.6 julkaisutiedoteet.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\n#, fuzzy\n#| msgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"L<virt-v2v-release-notes-2.0(1)> — Version 2.0 julkaisutiedoteet.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\n#, fuzzy\n#| msgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"L<virt-v2v-release-notes-2.0(1)> — Version 2.0 julkaisutiedoteet.\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"VALINNAT\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\n#, fuzzy\n#| msgid \"ovirt\"\nmsgid \"ovirtexp\"\nmsgstr \"oVirt\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"oVirt\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"Verkko\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"Levytila\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\"Valitettavasti tuki fstrimille ei ole yleismaailmallista, ja se riippuu myös \"\n\"tiedostojärjestelmän, osion tasauksen ja taustatallennustilasta. Esimerkiksi \"\n\"NTFS-tiedostojärjestelmiä ei voida poistaa, jos ne vievät osion, jota ei ole \"\n\"kohdistettu taustalla olevaan tallennustilaan. Se oli oletusarvo Windowsissa \"\n\"ennen Vistaa. Toisena esimerkkinä VFAT-tiedostojärjestelmiä (UEFI-vieraat \"\n\"käyttävät) ei voi leikata ollenkaan.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"2\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"TIEDOSTOT\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"(Valinnainen)\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"MUUT TYÖKALUT\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\n#, fuzzy\n#| msgid \"Disk space\"\nmsgid \"Disk checksum\"\nmsgstr \"Levytila\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#~ msgid \"Windows\"\n#~ msgstr \"Windows\"\n\n#, fuzzy\n#~| msgid \"Copyright (C) 2009-2020 Red Hat Inc.\"\n#~ msgid \"Copyright (C) 2009-2022 Red Hat Inc.\"\n#~ msgstr \"Tekijänoikeus (C) 2009–2020 Red Hat Inc.\"\n\n#, fuzzy\n#~| msgid \"Copyright (C) 2009-2020 Red Hat Inc.\"\n#~ msgid \"Copyright (C) 2009-2023 Red Hat Inc.\"\n#~ msgstr \"Tekijänoikeus (C) 2009–2020 Red Hat Inc.\"\n\n#, fuzzy\n#~| msgid \"Copyright (C) 2009-2020 Red Hat Inc.\"\n#~ msgid \"Copyright (C) 2009-2024 Red Hat Inc.\"\n#~ msgstr \"Tekijänoikeus (C) 2009–2020 Red Hat Inc.\"\n\n#~ msgid \"Not supported.\"\n#~ msgstr \"Ei tuettu.\"\n\n#~ msgid \"Copyright (C) 2014-2020 Red Hat Inc.\"\n#~ msgstr \"Tekijänoikeus (C) 2014–2020 Red Hat Inc.\"\n"
  },
  {
    "path": "po-docs/fr.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the libguestfs package.\n#\n# Translators:\n# Jérôme Fenal <jfenal@gmail.com>, 2013\n# Kévin Raymond <shaiton@fedoraproject.org>, 2012\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2023-03-21 09:20+0000\\n\"\n\"Last-Translator: grimst <grimaitres@gmail.com>\\n\"\n\"Language-Team: French <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-docs-master/fr/>\\n\"\n\"Language: fr\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n > 1;\\n\"\n\"X-Generator: Weblate 4.15.2\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\n#, fuzzy\n#| msgid \"C<blocksize>\"\nmsgid \"B<--blocksize=512>\"\nmsgstr \"C<blocksize>\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\n#, fuzzy\n#| msgid \"C<blocksize>\"\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"C<blocksize>\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\n#, fuzzy\n#| msgid \"C<blocksize>\"\nmsgid \"B<--blocksize>\"\nmsgstr \"C<blocksize>\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"NOM\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"DESCRIPTION\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"SYNOPSIS\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"1.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"2.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"3.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"C<server>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"Nouvelles fonctionnalités\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\n#, fuzzy\n#| msgid \"\"\n#| \"  (no security problems were found or fixed in this release)\\n\"\n#| \"\\n\"\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\"  (no security problems were found or fixed in this release)\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"Internes\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"Anomalies corrigées\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\n#, fuzzy\n#| msgid \"\"\n#| \" disk-has-backing-file filename\\n\"\n#| \"\\n\"\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\" disk-has-backing-file filename\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\n#, fuzzy\n#| msgid \"C<blocksize>\"\nmsgid \"B<--memsize> MB\"\nmsgstr \"C<blocksize>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\n#, fuzzy\n#| msgid \"C<LIBGUESTFS_TRACE>\"\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"C<LIBGUESTFS_TRACE>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/gu.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: gu\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n > 1;\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/hi.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: hi\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n > 1;\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/id.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: id\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/it.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2026-01-20 11:58+0000\\n\"\n\"Last-Translator: Nathan <nathan95@live.it>\\n\"\n\"Language-Team: Italian <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-docs-master/it/>\\n\"\n\"Language: it\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Generator: Weblate 5.15.2\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"Commento\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Questo programma è software libero; puoi ridistribuirlo e/o modificarlo\\n\"\n\"secondo i termini della GNU General Public License come pubblicata dalla\\n\"\n\"Free Software Foundation; sia la versione 2 della Licenza, sia\\n\"\n\"(a tua scelta) qualsiasi versione successiva.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Questo programma è distribuito con la speranza che possa essere utile,\\n\"\n\"ma SENZA ALCUNA GARANZIA; senza neanche la garanzia implicita di\\n\"\n\"COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO. Vedi la\\n\"\n\"GNU General Public License per maggiori dettagli.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Dovresti aver ricevuto una copia della GNU General Public License insieme\\n\"\n\"a questo programma; in caso contrario, scrivi alla Free Software Foundation, Inc.,\\n\"\n\"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\\n\"\n\"\\n\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"B<--append-line> FILE:LINE\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\"Aggiungi una singola riga di testo al file C<FILE>. Se il file non termina \"\n\"già con una nuova riga, verrà aggiunta prima della riga aggiunta. Inoltre, \"\n\"una nuova riga verrà automaticamente aggiunta alla fine della stringa \"\n\"C<LINE>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\"Ad esempio (supponendo una normale citazione della shell), questo comando:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\"aggiungerà al file o C<10.0.0.1 foo⏎> o C<⏎10.0.0.1 foo⏎>, quest'ultima solo \"\n\"se il file esistente non termina già con una nuova riga.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\"C<⏎> rappresenta un carattere di nuova riga, che viene determinato \"\n\"esaminando il contenuto esistente del file, quindi questo comando funziona \"\n\"correttamente sia per i file con terminazioni di riga Unix che Windows. \"\n\"Funziona anche per file vuoti o inesistenti.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"Per inserire più righe, usa la stessa opzione più volte:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"Per inserire una riga vuota prima della riga aggiunta, fai:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"B<--chmod> PERMISSIONS:FILE\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"Cambia i permessi di C<FILE> to C<PERMISSIONS>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\"Nota: PERMISSIONS per default è in decimale, a meno che tu non lo preceda \"\n\"con 0 per ottenere l’ottale, cioè usa 0700 e non 700.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"B<--chown> UID:GID:PATH\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\"Cambia l'utente proprietario e l'ID del gruppo di un file o una directory \"\n\"nel sistema guest.  Nota:\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"*\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\"Funzioneranno solo gli UID e GID numerici, e questi potrebbero non essere \"\n\"gli stessi all'interno del guest rispetto al sistema host.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"Questo non funzionerà con i sistemi guest Windows.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"Per esempio:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"Vedi anche I<--upload>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"B<--commands-from-file> FILENAME\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\"Leggi i comandi di personalizzazione da un file, uno (e i suoi argomenti)  \"\n\"per ogni riga.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\"Ogni riga contiene un singolo comando di personalizzazione e i suoi \"\n\"argomenti, ad esempio:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\"Le righe vuote vengono ignorate, e le righe che iniziano con C<#> sono \"\n\"commenti e vengono anch'esse ignorate. Inoltre, gli argomenti possono essere \"\n\"suddivisi su più righe, aggiungendo un C<> (carattere di continuazione) alla \"\n\"fine di una riga, ad esempio\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\"I comandi vengono gestiti nell'ordine in cui sono presenti nel file, come se \"\n\"fossero specificati come I<--delete /some/file> sulla riga di comando.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"B<--copy> SOURCE:DEST\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"Copia file o directory ricorsivamente all'interno del guest.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"I caratteri jolly (wildcard) non possono essere utilizzati.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"B<--copy-in> LOCALPATH:REMOTEDIR\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\"Copia file o directory locali ricorsivamente nell'immagine del disco, \"\n\"posizionandoli nella directory C<REMOTEDIR> (che deve esistere).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"B<--delete> PATH\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\"Elimina un file dal guest. Oppure elimina una directory (e tutto il suo \"\n\"contenuto, in modo ricorsivo).\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\"Puoi usare caratteri jolly (glob) della shell nel percorso specificato. Fai \"\n\"attenzione a sfuggire i caratteri jolly dalla shell dell'host, se \"\n\"necessario. Ad esempio:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"Vedi anche I<--upload>, I<--scrub>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"B<--edit> FILE:EXPR\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"Modifica C<FILE> utilizzando l'espressione Perl C<EXPR>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\"Fai attenzione a citare correttamente l'espressione per evitare che venga \"\n\"alterata dalla shell.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"Nota che questa opzione è disponibile solo quando Perl 5 è installato.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"Vedi L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"B<--firstboot> SCRIPT\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\"Installa C<SCRIPT> all'interno del guest, in modo che quando il guest si \"\n\"avvia per la prima volta, lo script venga eseguito (come root, durante le \"\n\"fasi finali del processo di avvio).\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\"Lo script viene automaticamente reso eseguibile con chmod +x dopo \"\n\"l'installazione nel guest.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\"La versione alternativa I<--firstboot-command> è la stessa, ma incapsula \"\n\"comodamente il comando in uno script su una sola riga per te.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\"Puoi avere più opzioni I<--firstboot>. Vengono eseguite nell'ordine in cui \"\n\"appaiono sulla riga di comando.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\"Per maggiori informazioni e avvertenze sugli script di primo avvio, dai \"\n\"un'occhiata a first boot scripts.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"Vedi altro\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"B<--firstboot-command> 'CMD+ARGS'\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\"Esegui il comando (e gli argomenti) all'interno del guest quando il guest si \"\n\"avvia per la prima volta (come root, durante le fasi finali del processo di \"\n\"avvio).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"B<--firstboot-install> PKG,PKG..\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\"nstalla i pacchetti nominati (una lista separata da virgole). Questi vengono \"\n\"installati quando il guest si avvia per la prima volta utilizzando il \"\n\"gestore di pacchetti del guest (ad esempio, apt, yum, ecc.) e la connessione \"\n\"di rete del guest.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\"Per una panoramica sui diversi metodi per installare pacchetti, consulta \"\n\"L<virt-builder(1)/INSTALLING PACKAGES>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"B<--hostname> HOSTNAME\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\"Imposta il nome host del guest su C<HOSTNAME>. Puoi usare un nome host \"\n\"completo (FQDN) se lo desideri, ad esempio hostname.domainname.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"B<--inject-blnsvr> METHOD\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\"Inietta il Balloon Server (F<blnsvr.exe>) in un guest Windows. Questa \"\n\"operazione inietta anche uno script di primo avvio in modo che il Balloon \"\n\"Server venga installato quando il guest si avvia.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\"Il parametro è lo stesso utilizzato dall'operazione I<--inject-virtio-win>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\"Nota che per effettuare una conversione completa di un guest Windows da un \"\n\"hypervisor esterno come VMware (che implica molte altre operazioni), \"\n\"dovresti usare lo strumento L<virt-v2v(1)> invece di questo.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"B<--inject-qemu-ga> METHOD\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\"Inietta il QEMU Guest Agent in un guest Windows. L'agente guest comunica con \"\n\"qemu tramite un socket per fornire funzionalità avanzate (vedi L<qemu-\"\n\"ga(8)>). Questa operazione inietta anche uno script di primo avvio affinché \"\n\"il Guest Agent venga installato quando il guest si avvia.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"B<--inject-virtio-win> METHOD\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"Il parametro può essere uno dei seguenti:\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"ISO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\"Il percorso dell'immagine ISO contenente i driver virtio-win (ad esempio, F</\"\n\"usr/share/virtio-win/virtio-win.iso>).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"DIR\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\"La directory contenente i driver virtio-win decompattati (ad esempio, F</usr/\"\n\"share/virtio-win>).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"B<--install> PKG,PKG..\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\"Installa i pacchetti nominati (una lista separata da virgole). Questi \"\n\"vengono installati durante la costruzione dell'immagine utilizzando il \"\n\"gestore di pacchetti del guest (ad esempio, apt, yum, ecc.) e la connessione \"\n\"di rete dell'host.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"Vedi altro\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"B<--link> TARGET:LINK[:LINK..]\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\"Crea uno o più collegamenti simbolici nel guest, partendo da C<LINK> e \"\n\"puntando a C<TARGET>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"B<--mkdir> DIR\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"Crea una directory nel guest.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\"Questo utilizza S<C<mkdir -p>>, quindi eventuali directory intermedie \"\n\"vengono create, e funziona anche se la directory esiste già.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"B<--move> SOURCE:DEST\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"Sposta file o directory all’interno del guest.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"B<--no-logfile>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\"Rimuove (scrub) C<builder.log> (file di log dei comandi di build) \"\n\"dall’immagine una volta completata la compilazione. Se non vuoi rivelare \"\n\"esattamente come è stata costruita l’immagine, utilizza questa opzione.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"Vedi altro:  L</LOG FILE>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"B<--no-selinux-relabel>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"Non tentare di correggere le etichette SELinux dei file nel guest.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\"In tali guest che supportano SELinux, la personalizzazione rietichetta \"\n\"automaticamente i file affinché abbiano l’etichetta SELinux corretta. (La \"\n\"rietichettatura viene eseguita immediatamente, ma se l’operazione fallisce, \"\n\"la personalizzazione creerà il file F</.autorelabel> sull’immagine per \"\n\"pianificare una rietichettatura al successivo avvio dell’immagine.) Questa \"\n\"opzione disabilita la rietichettatura automatica.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\"Questa opzione non ha alcun effetto sui guest che non supportano SELinux.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"B<--password> USER:SELECTOR\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\"Imposta la password per C<USER>. (Nota: questa opzione non crea l’account \"\n\"utente).\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\"Vedi L<virt-builder(1)/USERS AND PASSWORDS> per il formato del campo \"\n\"C<SELECTOR> e per informazioni su come configurare gli account utente.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"B<--password-crypto> md5|sha256|sha512\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\"Quando gli strumenti virt modificano o impostano una password nel guest, \"\n\"questa opzione imposta il tipo di cifratura della password su C<md5>, \"\n\"C<sha256> o C<sha512>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\"C<sha256> e C<sha512> richiedono glibc E<ge> 2.7 (verificare crypt(3) \"\n\"all’interno del guest).\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\"C<md5> funziona con guest Linux relativamente datati (ad esempio RHEL 3), ma \"\n\"non è sicuro contro gli attacchi moderni.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\"Il valore predefinito è C<sha512>, a meno che libguestfs non rilevi un guest \"\n\"vecchio senza supporto per SHA-512; in tal caso verrà utilizzato C<md5>. È \"\n\"possibile sovrascrivere questa scelta di libguestfs specificando questa \"\n\"opzione.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\"Nota che questo non cambia il tipo di cifratura predefinito utilizzato dal \"\n\"guest quando si creano nuovi account utente all’interno del guest. Se \"\n\"desideri farlo, dovresti usare l’opzione I<--edit> per modificare C</etc/\"\n\"sysconfig/authconfig> (Fedora, RHEL) o C</etc/pam.d/common-password> \"\n\"(Debian, Ubuntu\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"B<--root-password> SELECTOR\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"Imposta una password di root.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\"Nota: in virt-builder, se non imposti I<--root-password>, al guest viene \"\n\"assegnata una password casuale per l’utente root.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"B<--run> SCRIPT\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\"Esegui lo script shell (o qualsiasi programma) chiamato C<SCRIPT> \"\n\"sull’immagine del disco. Lo script viene eseguito in modalità virtualizzata \"\n\"all’interno di un piccolo appliance, con chroot nel filesystem del guest.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"Lo script viene automaticamente impostato con chmod +x.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\"Se libguestfs lo supporta, è disponibile una connessione di rete limitata \"\n\"che consente solo connessioni in uscita. È anche possibile collegare dischi \"\n\"dati (ad esempio file ISO) come metodo alternativo per fornire dati (ad \"\n\"esempio pacchetti software) allo script senza usare la rete (I<--attach>). È \"\n\"inoltre possibile caricare file di dati (I<--upload>).\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\"È possibile utilizzare più opzioni I<--run>. Vengono eseguite nell’ordine in \"\n\"cui appaiono sulla riga di comando.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"Vedi altro:\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"B<--run-command> 'CMD+ARGS'\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\"Esegui il comando e i relativi argomenti sull’immagine del disco. Il comando \"\n\"viene eseguito in modalità virtualizzata all’interno di un piccolo \"\n\"appliance, con **chroot** nel filesystem del guest.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\"È possibile utilizzare più opzioni I<--run-command>. Vengono eseguite \"\n\"nell’ordine in cui appaiono sulla riga di comando.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"B<--scrub> FILE\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\"Rimuove (scrub) un file dal guest. È simile a I<--delete>, ma con le \"\n\"seguenti differenze:\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"Esegue lo scrub dei dati in modo che il guest non possa recuperarli.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"Non può eliminare directory, solo file normali.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"B<--selinux-relabel>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"Questa è un’opzione di compatibilità che non ha alcun effetto.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"B<--ssh-inject> USER[:SELECTOR]\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\"Inserisci una chiave SSH in modo che l’utente C<USER> possa effettuare \"\n\"l’accesso via SSH senza fornire una password. L’utente C<USER> deve già \"\n\"esistere nel guest.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\"Consulta L<virt-builder(1)/SSH KEYS> per il formato del campo SELECTOR.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\"È possibile utilizzare più opzioni I<--ssh-inject>, per utenti diversi e \"\n\"anche per inserire più chiavi per ciascun utente.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"B<--tar-in> TARFILE:REMOTEDIR\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\"Copia file o directory locali da un archivio tar chiamato C<TARFILE> \"\n\"nell’immagine del disco, collocandoli nella directory C<REMOTEDIR> (che deve \"\n\"esistere). Nota che l’archivio tar deve essere non compresso (i file \"\n\"F<.tar.gz> non funzionano)\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"B<--timezone> FUSO ORARIO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\"Imposta il fuso orario predefinito del guest su C<TIMEZONE>. Utilizza una \"\n\"stringa di località, ad esempio C<Europe/London>\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"B<--touch> FILE\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"Questo comando esegue un’operazione simile a L<touch(1)> su C<FILE>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"B<--truncate> FILE\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\"Questo comando tronca C<FILE> portandolo a una lunghezza pari a zero. Il \"\n\"file deve già esistere.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"B<--truncate-recursive> PERCORSO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\"Questo comando tronca ricorsivamente tutti i file sotto C<PATH> portandoli a \"\n\"lunghezza zero.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"B<--uninstall> PKG,PKG..\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\"Disinstalla i pacchetti indicati (elenco separato da virgole). Vengono \"\n\"rimossi durante la creazione dell’immagine utilizzando il gestore pacchetti \"\n\"del guest (ad es. apt, yum, ecc.). Potrebbe essere necessario disinstallare \"\n\"anche i pacchetti dipendenti per soddisfare la richiesta.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"Vedi altro\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"B<--update>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\"Esegue l’equivalente di C<yum update>, C<apt-get upgrade> o qualsiasi altro \"\n\"comando necessario per aggiornare i pacchetti già installati nel template \"\n\"alle loro versioni più recenti.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"Vedi anche I<--install>, I<--uninstall>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"B<--upload> FILE:DEST\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\"Carica il file locale C<FILE> nella destinazione C<DEST> all’interno \"\n\"dell’immagine del disco. Proprietario e permessi del file originale vengono \"\n\"preservati, quindi dovresti impostarli come desideri che siano nell’immagine \"\n\"del disco.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\"C<DEST> può essere il nome finale del file. Questo permette di rinominare il \"\n\"file durante il caricamento.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\"Se C<DEST> è il nome di una directory (che deve già esistere nel guest), il \"\n\"file viene caricato all’interno di quella directory mantenendo lo stesso \"\n\"nome presente nel filesystem locale.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"Vedi altro:\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"B<--write> FILE:CONTENT\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"Scrivi CONTENT in FILE.\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"B<--blocksize=512>\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"B<--blocksize=4096>\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"B<--blocksize>\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\"Questo parametro imposta la dimensione del settore dell’immagine del disco. \"\n\"Influisce su tutti i dischi aggiunti esplicitamente dopo questo parametro. \"\n\"Usare I<--blocksize> senza argomento ripristina la dimensione del settore \"\n\"predefinita, solitamente 512 byte. Vedi anche L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"B<--key> SELECTOR\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\"Specifica una chiave per LUKS, per aprire automaticamente un dispositivo \"\n\"LUKS durante l’ispezione.\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"B<--key> NAMEB<:key:>KEY_STRING\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"B<--key> UUIDB<:key:>KEY_STRING\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"B<--key> B<all:key:>KEY_STRING\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\"C<NAME> è il nome del dispositivo in libguestfs (ad es. C</dev/sda1>). \"\n\"C<UUID> è l’UUID del dispositivo. C<all> significa provare la chiave su \"\n\"qualsiasi dispositivo criptato.\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"Usa la C<KEY_STRING> specificata come passphrase.\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"B<--key> NAMEB<:file:>NOMEFILE\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"B<--key> UUIDB<:file:>NOMEFILE\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"B<--key> B<all:file:>NOMEFILE\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"Legge la passphrase dal file F<FILENAME>.\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"B<--key> NAMEB<:clevis>\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"B<--key> UUIDB<:clevis>\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"B<--key> B<all:clevis>\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\"Tenta lo sblocco del dispositivo senza passphrase tramite Clevis, tramite la \"\n\"rete. Per ulteriori informazioni sulla crittografia dei dischi vincolata \"\n\"alla rete (NBDE), fare riferimento a L<guestfs(3)/ENCRYPTED DISKS>.\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\"Nota che, se una qualsiasi di queste opzioni è presente sulla riga di \"\n\"comando, il networking utente di QEMU verrà automaticamente abilitato per \"\n\"l’appliance libguestfs.\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"B<--keys-from-stdin>\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\"Legge i parametri di chiave o passphrase da stdin. Per impostazione \"\n\"predefinita, le passphrase vengono richieste all’utente aprendo F</dev/tty>.\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\"Se sono presenti più dispositivi cifrati, potrebbe essere necessario fornire \"\n\"più chiavi tramite stdin, una per riga.\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"NOME\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"virt-v2v-hacking -\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"DESCRIZIONE\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\"Prima, un po’ di storia. Virt-v2v ha subito almeno due riscritture complete, \"\n\"quindi questa è probabilmente la terza versione (ma non abbiamo intenzione \"\n\"di riscriverla di nuovo). La versione precedente era scritta in Perl e può \"\n\"essere trovata qui: L<https://git.fedorahosted.org/git/virt-v2v.git\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\"La versione attuale è iniziata quasi come una riscrittura riga per riga del \"\n\"codice Perl in OCaml + C, e conserva ancora una struttura abbastanza simile. \"\n\"Pertanto, se ci sono dettagli di questo codice che non comprendi \"\n\"(soprattutto nei dettagli della conversione del guest), consultare il codice \"\n\"Perl potrebbe essere utile.\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"I file da cui iniziare quando si legge questo codice sono:\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"F<types.mli>\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"F<v2v.ml>\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\"F<types.mli> definisce tutte le strutture utilizzate e scambiate durante la \"\n\"comunicazione tra le diverse parti del programma. F<v2v.ml> gestisce il modo \"\n\"in cui il programma viene eseguito a fasi.\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\"Dopo aver studiato quei file, potresti voler esplorare i moduli di input \"\n\"(F<input_*>), i moduli di output (F<output_*>) o i moduli di conversione \"\n\"(F<convert_*>). I moduli di input e output definiscono le opzioni I<-i> e I<-\"\n\"o> (vedi il manuale). I moduli di conversione definiscono quali tipi di \"\n\"guest possiamo gestire e i passaggi dettagliati coinvolti nella loro \"\n\"conversione.\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\"Tutti gli altri file in questa directory sono moduli di supporto o librerie \"\n\"di vario tipo. Parte del codice è scritta in C, specialmente dove è \"\n\"necessario utilizzare una libreria C esterna, come libxml2.\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"VEDI ALTRO\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"AUTORI\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"Richard W.M. Jones\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"COPYRIGHT\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"Copyright (C) 2009-2025 Red Hat Inc.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\"virt-v2v-input-vmware - Utilizzo di virt-v2v per convertire guest da VMware\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"SYNOPSIS\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" virt-v2v\\n\"\n#| \"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n#| \"    -it vddk\\n\"\n#| \"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n#| \"    -io vddk-thumbprint=xx:xx:xx:...\\n\"\n#| \"    \\\"GUEST NAME\\\"\\n\"\n#| \"    [-o* options]\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\"Questa pagina documenta come utilizzare L<virt-v2v(1)> per convertire guest \"\n\"da VMware. Attualmente esistono cinque metodi diversi per accedere a VMware:\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"B<-i vmx> GUESTB<.vmx>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"Documentazione completa: L</INPUT DA VMWARE VMX>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\"Se disponi di un file F<GUEST.vmx> e di uno o più file di immagine disco \"\n\"F<GUEST.vmdk>, oppure se sei in grado di montare via NFS lo storage VMware, \"\n\"puoi utilizzare il metodo I<-i vmx> per leggere il guest sorgente.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"B<-i vmx> B<-it ssh> ssh://...\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\"Questo metodo è simile a quello precedente, ma utilizza una connessione SSH \"\n\"a ESXi per leggere il file F<GUEST.vmx> e i dischi associati. Richiede che \"\n\"l'accesso SSH all'hypervisor VMware ESXi sia abilitato – nella \"\n\"configurazione predefinita di ESXi questa opzione è disattivata.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\"Questo trasporto non è compatibile con guest che hanno snapshot; fare \"\n\"riferimento a L</NOTE>.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"B<-ic vpx://...> B<-it vddk>\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"B<-ic esx://...> B<-it vddk>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"Documentazione completa: L</INPUT DA VDDK>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\"Questo metodo utilizza la libreria proprietaria VDDK (anche nota come \"\n\"VixDiskLib) per accedere al server VMware vCenter o all'hypervisor VMware \"\n\"ESXi.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\"Se disponi della libreria proprietaria, questo metodo è solitamente il più \"\n\"veloce e flessibile. Se non hai o non vuoi utilizzare software non libero, i \"\n\"metodi VMX o SSH sopra descritti saranno la scelta migliore.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"B<-i ova> DISKB<.ova>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"Documentazione completa: L</INPUT DA VMWARE OVA>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\"Con questo metodo è necessario prima esportare il guest (ad esempio da \"\n\"vSphere) come file `F<.ova>`, che virt-v2v può poi leggere direttamente. Si \"\n\"noti che questo metodo funziona solo con file esportati da VMware, non con \"\n\"file OVA provenienti da altri hypervisor o sistemi di gestione, poiché OVA è \"\n\"solo uno standard apparente e non è compatibile o interoperabile tra diversi \"\n\"fornitori.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"Documentazione completa: L</INPUT DA VMWARE VCENTER SERVER>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\"Se nessuno dei metodi precedenti è disponibile, utilizza questo metodo per \"\n\"importare un guest da VMware vCenter. Questo è il metodo più lento.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"NOTE\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"INPUT DA VMWARE VMX\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"Virt-v2v è in grado di importare guest dai file vmx di VMware.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"Questo è utile in due casi:\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"1.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\"Le macchine virtuali VMware sono memorizzate su un server NFS separato ed è \"\n\"possibile montare direttamente lo storage NFS.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"2.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\"Hai abilitato l'accesso SSH all'hypervisor VMware ESXi ed esiste una \"\n\"cartella C</vmfs/volumes> che contiene le macchine virtuali.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\"Se trovi una cartella contenente file chiamati F<I<guest>.vmx>, \"\n\"F<I<guest>.vmxf>, F<I<guest>.nvram> e una o più immagini disco F<.vmdk>, \"\n\"allora puoi utilizzare questo metodo. Il trasporto SSH non è utilizzabile se \"\n\"il guest ha degli snapshot; fare riferimento a L</NOTE>.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"VMX: Il guest deve essere spento\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\n#, fuzzy\n#| msgid \"\"\n#| \"B<The guest must be shut down before conversion starts>.  If you don't \"\n#| \"shut it down, you will end up with a corrupted VM disk on the target.  \"\n#| \"With other methods, virt-v2v tries to prevent concurrent access, but \"\n#| \"because the I<-i vmx> method works directly against the storage, checking \"\n#| \"for concurrent access is not possible.\"\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\"B<Il guest deve essere spento prima dell'inizio della conversione>. Se non \"\n\"lo spegni, si otterrà un disco VM danneggiato sul target. Con altri metodi, \"\n\"virt-v2v tenta di prevenire l'accesso concorrente, ma poiché il metodo I<-i \"\n\"vmx> opera direttamente sullo storage, non è possibile verificare la \"\n\"presenza di accessi concorrenti.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"VMX: Accesso allo storage che contiene i file VMX e VMDK\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\"Se i file VMX e VMDK non sono disponibili localmente, devi o montare lo \"\n\"storage NFS sul server di conversione o abilitare SSH senza password \"\n\"sull’hypervisor ESXi.\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"VMX: Autenticazione SSH\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\"Puoi utilizzare l’autenticazione SSH tramite password, fornendo il nome di \"\n\"un file contenente la password all’opzione -ip (nota che questa opzione non \"\n\"accetta la password direttamente). Potrebbe essere necessario modificare /\"\n\"etc/ssh/sshd_config sul server VMware per impostare PasswordAuthentication \"\n\"yes.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\"Se non stai utilizzando l’autenticazione tramite password, un’alternativa è \"\n\"usare ssh-agent e aggiungere la tua chiave pubblica SSH in /etc/ssh/keys-\"\n\"root/authorized_keys (sull’hypervisor ESXi). Dopo averlo fatto, dovresti \"\n\"verificare che l’accesso senza password funzioni dal server virt-v2v \"\n\"all’hypervisor ESXi. Ad esempio:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\"Nota che il supporto per l’autenticazione non interattiva tramite l’opzione \"\n\"-ip è incompleto. Alcune operazioni richiedono ancora che l’utente inserisca \"\n\"manualmente la password. Pertanto, è consigliato usare ssh-agent invece \"\n\"dell’opzione -ip. Vedi L<https://bugzilla.redhat.com/1854275>.\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"VMX: Costruire l’URI SSH\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\"Quando si utilizza il trasporto di input SSH, è necessario specificare un \"\n\"URI remoto ssh://... che punti al file VMX. Un URI tipico è il seguente:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\"Il nome utente non è richiesto se coincide con il tuo nome utente locale.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\"Facoltativamente, puoi indicare un numero di porta dopo il nome host se il \"\n\"server SSH non ascolta sulla porta predefinita (22).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\"Per determinare la componente pathname dell’URI, accedi interattivamente al \"\n\"server ESXi tramite SSH e individua il percorso assoluto del file VMX sul \"\n\"server ESXi, ad esempio:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\"Successivamente, sulla riga di comando di virt-v2v, L>percent-encoda \"\n\"eventuali caratteri riservati che trovi nei singoli componenti del percorso. \"\n\"Ad esempio, i caratteri spazio devono essere indicati come %20<:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"Riferito  a L<https://bugzilla.redhat.com/1938954>.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"VMX: Importazione di un guest\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"Per importare un file VMX da un file locale o da NFS, esegui:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\"Per importare un file VMX tramite SSH, aggiungi -it ssh per selezionare il \"\n\"trasporto SSH e fornisci un URI SSH remoto:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\"Virt-v2v elabora il file VMX e lo utilizza per individuare la posizione di \"\n\"eventuali dischi VMDK.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"INPUT DA VDDK\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\"Virt-v2v è in grado di importare guest utilizzando la libreria proprietaria \"\n\"VDDK di VMware (nota anche come VixDiskLib).\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"Prequisiti VDDK:\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\"Poiché la libreria VDDK non è open source e la sua licenza non consente la \"\n\"ridistribuzione o l’uso commerciale, devi procurarti VDDK autonomamente e \"\n\"assicurarti che il tuo utilizzo della libreria sia conforme alla licenza.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\"Si consiglia nbdkit ≥ 1.6, in quanto include il plugin VDDK abilitato \"\n\"incondizionatamente.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"3.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\"Le importazioni VDDK richiedono una funzionalità introdotta in libvirt ≥ 3.7.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"4.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"Il server VMware non deve essere in modalità di manutenzione.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"VDDK: Limiti di memoria del servizio NFC di ESXi\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"Nel log dettagliato potresti vedere errori come:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\"Questo sembra particolarmente comune quando ci sono più connessioni \"\n\"parallele aperte verso il server VMware.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\"Questi possono essere causati dai limiti di risorse impostati sul server \"\n\"VMware. Puoi aumentare il limite per il servizio NFC modificando /etc/vmware/\"\n\"hostd/config.xml e regolando il parametro <maxMemory>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"e riavviando il servizio hostd:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\"Per maggiori informazioni vedere L<https://bugzilla.redhat.com/1614276>.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\"VDDK: “errore: VixDiskLibVim: Impossibile aprire il disco utilizzando NFC. \"\n\"VixError 1”\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"Se visualizzi un errore simile a:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" nbdkit: vddk[2]: errore: VixDiskLibVim: Impossibile aprire il disco utilizzando NFC. VixError 1 alla riga 1166.\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\"Allora è causato da un bug in VDDK ≤ 6.7. La soluzione suggerita è \"\n\"aggiornare all’ultima versione di VDDK. Vedi anche L<https://\"\n\"bugzilla.redhat.com/1684075>\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"URI: VDDK\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\"Costruisci l’URL corretto vpx:// (per vCenter) o esx:// (per ESXi). Avrà un \"\n\"aspetto simile a questi:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\"Per verificare di avere l’URL corretto, usa il comando virsh(1) per elencare \"\n\"i guest sul server:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\"Se ricevi un errore del tipo “Il certificato del peer non può essere \"\n\"autenticato con i certificati CA forniti” o simile, puoi importare il \"\n\"certificato dell’host vCenter oppure saltare la verifica della firma \"\n\"aggiungendo il flag ?no_verify=1:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\"Dovresti anche provare a estrarre i metadati di qualsiasi guest sul tuo \"\n\"server, come segue:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\"Se C<E<lt>vmware:morefE<gt>> non appare nei metadati, allora è necessario \"\n\"aggiornare libvirt.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\"B<Se i comandi sopra non funzionano, allora anche virt-v2v non funzionerà>. \"\n\"Correggi il tuo URI e/o il server VMware prima di continuare.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"VDDK: Importazione di un guest\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\"Il parametro I<-it vddk> seleziona VDDK come trasporto di input per i dischi.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\n#, fuzzy\n#| msgid \"\"\n#| \"To import a particular guest from vCenter server or ESXi hypervisor, use \"\n#| \"a command like the following, substituting the URI, guest name and SSL \"\n#| \"thumbprint:\"\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\"Per importare un guest specifico da un server vCenter o da un hypervisor \"\n\"ESXi, utilizza un comando come il seguente, sostituendo URI, nome del guest \"\n\"e thumbprint SSL:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" $ virt-v2v \\\\\\n\"\n#| \"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n#| \"     -it vddk \\\\\\n\"\n#| \"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n#| \"     -io vddk-thumbprint=xx:xx:xx:... \\\\\\n\"\n#| \"     \\\"Windows 2003\\\" \\\\\\n\"\n#| \"     -o local -os /var/tmp\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     -io vddk-thumbprint=xx:xx:xx:... \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\n#, fuzzy\n#| msgid \"\"\n#| \"Other options that you might need to add in rare circumstances include I<-\"\n#| \"io vddk-config>, I<-io vddk-cookie>, I<-io vddk-nfchostport>, I<-io vddk-\"\n#| \"port>, I<-io vddk-snapshot>, and I<-io vddk-transports>, which are all \"\n#| \"explained in the L<nbdkit-vddk-plugin(1)> documentation.  Do not use \"\n#| \"these options unless you know what you are doing.\"\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\"Altre opzioni che potresti dover aggiungere in circostanze rare includono I<-\"\n\"io vddk-config>, I<-io vddk-cookie>, I<-io vddk-nfchostport>, I<-io vddk-\"\n\"port>, I<-io vddk-snapshot>, and I<-io vddk-transports>, che sono tutte \"\n\"spiegate nella documentazione L<nbdkit-vddk-plugin(1)>. Non usare queste \"\n\"opzioni a meno che tu non sappia cosa stai facendo.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\n#, fuzzy\n#| msgid \"VDDK: Importing a guest\"\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"VDDK: Importazione di un guest\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"VDDK: Debug dei fallimenti VDDK\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\"La libreria VDDK può essere eseguita in modalità verbose, fornendo messaggi \"\n\"(molto) dettagliati. Usa ‘virt-v2v -v -x’ come di consueto per abilitare i \"\n\"messaggi verbose.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"VDDK: Importazioni lente e messaggi ripetuti NBD_ClientOpen\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\"Se le importazioni tramite VDDK sono lente e ‘virt-v2v -v -x’ mostra molti \"\n\"messaggi NBD_ClientOpen, allora stai riscontrando un apparente bug in VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489). Aggiorna almeno a VDDK 7 per \"\n\"risolvere il problema.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"INPUT DA VMWARE OVA\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\"Virt-v2v è in grado di importare guest dai file OVA (Open Virtualization \"\n\"Appliance) di VMware. Funzionano solo le OVA esportate da VMware vSphere.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"OVA: Creare OVA\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\"Per creare un OVA in vSphere, usa l’opzione \\\"Export OVF Template\\\" (dal \"\n\"menu contestuale della VM o dal menu File). Funzionano sia \\\"Folder of \"\n\"files\\\" (OVF) sia \\\"Single file\\\" (OVA), ma probabilmente l’OVA è più facile \"\n\"da gestire. I file OVA sono in realtà semplici archivi tar non compressi, \"\n\"quindi puoi usare comandi come tar tf VM.ova per visualizzarne il contenuto.\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"Creare OVA con ovftool\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"Puoi anche usare lo strumento proprietario di VMware ovftool:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"Per connettersi a vCenter:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\"Per l’autenticazione compatibile con Active Directory usando nomi di accesso \"\n\"legacy (C<DOMAIN\\\\USER>), devi rappresentare il carattere nella forma del \"\n\"suo codice esadecimale ASCII (C<%5c>):\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"OVA: Importazione di un guest\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"Per importare un file OVA chiamato VM.ova, esegui:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\"Se hai esportato il guest come 'Folder of files' o se hai scompattato tu \"\n\"stesso l’archivio OVA, allora puoi indirizzare virt-v2v alla directory che \"\n\"contiene i file:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\n#, fuzzy\n#| msgid \"OVA: Permissions issues with oVirt/RHV import\"\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"OVA: Problemi di permessi con l’importazione in oVirt/RHV\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\n#, fuzzy\n#| msgid \"\"\n#| \"oVirt/RHV provides a graphical user interface for importing from OVA \"\n#| \"files which uses this method.  It requires that RHV is able to access the \"\n#| \"OVA file which can be a problem if the file is owned by root (RHV runs as \"\n#| \"a non-root user).\"\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\"oVirt/RHV fornisce un’interfaccia grafica per l’importazione da file OVA che \"\n\"utilizza questo metodo. Richiede che RHV possa accedere al file OVA, il che \"\n\"può essere un problema se il file è di proprietà di root (RHV viene eseguito \"\n\"come utente non-root).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\"La soluzione suggerita è copiare l’OVA in una directory pubblica, ad \"\n\"esempio /var/tmp, prima di eseguire l’importazione e, se necessario, \"\n\"modificare il proprietario e il gruppo del file.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"Per ulteriori informazioni, consulta questi link:\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\\n\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"INPUT DA VMWARE VCENTER SERVER\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"Virt-v2v è in grado di importare guest da VMware vCenter Server.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\"È richiesto vCenter ≥ 5.0. Se non disponi di vCenter, si consiglia di usare \"\n\"OVA o VMX (vedi L</INPUT FROM VMWARE OVA> e/o L</INPUT FROM VMWARE VMX>).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\"Virt-v2v utilizza libvirt per accedere a vCenter, quindi la modalità di \"\n\"input dovrebbe essere -i libvirt. Poiché questa è la modalità predefinita, \"\n\"non è necessario specificarla sulla riga di comando.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"URI: vCenter\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"L’URI libvirt di un server vCenter ha un aspetto simile a questo:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"dove:\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"C<user@>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"è l’utente (opzionale, ma consigliato) con cui connettersi.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\"Se il nome utente contiene un backslash (ad es. C<DOMAIN\\\\USER>), dovrai \"\n\"codificare quel carattere nell’URI usando C<%5c>: C<DOMAIN%5cUSER> (5c è il \"\n\"codice ASCII esadecimale del backslash). Anche altri segni di punteggiatura \"\n\"potrebbero dover essere codificati.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\"La password dell’utente deve essere fornita in un file locale utilizzando il \"\n\"parametro separato -ip.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"C<server>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"è il server vCenter (non l’hypervisor).\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"C<Datacenter>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"è il nome del datacenter.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\"Se il nome contiene uno spazio, sostituiscilo con il codice di escape \"\n\"dell’URI C<%20.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"C<esxi>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"è il nome dell’hypervisor ESXi che esegue il guest.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\"Se il deployment VMware utilizza delle cartelle, queste potrebbero dover \"\n\"essere aggiunte all’URI, ad esempio:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\"Per i dettagli completi sugli URI di libvirt, consulta: Lhttp://libvirt.org/\"\n\"drvesx.htm\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"Gli errori tipici di libvirt / virsh quando l’URI è errato includono:\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"Impossibile trovare il datacenter specificato in [...]\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"Impossibile trovare la risorsa di calcolo specificata in [...]\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"Il percorso [...] non specifica una risorsa di calcolo\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"Il percorso [...] non specifica un sistema host\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"Impossibile trovare il sistema host specificato in [...]\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"vCenter: Testare la connessione libvirt a vCenter\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\"Usa il comando virsh(1) per elencare i guest sul server vCenter come segue:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\"B<Se i comandi sopra non funzionano, allora anche virt-v2v non funzionerà. \"\n\"Correggi la tua configurazione libvirt e/o il server VMware vCenter prima di \"\n\"continuare.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"vCenter: Fornire la password\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\"La password di vCenter (di solito per l’account root, o per l’account \"\n\"specificato con user@ nell’URL vpx) deve essere scritta in un file locale, e \"\n\"il nome di quel file deve essere specificato sulla riga di comando di virt-\"\n\"v2v usando -ip passwordfile.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"vCenter: Importazione di un guest\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"Per importare un guest specifico dal server vCenter, esegui:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"dove C<Windows 2003 > è il nome del guest (che deve essere spento).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\"In questo caso, i flag di output sono impostati per scrivere il guest \"\n\"convertito in una directory temporanea poiché si tratta solo di un esempio, \"\n\"ma puoi anche scrivere su libvirt o su qualsiasi altro target supportato.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"vCenter: Ruolo non-amministratore\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\"Invece di usare il ruolo di Amministratore di vCenter, puoi creare un ruolo \"\n\"personalizzato non-amministratore per eseguire la conversione. Tuttavia, \"\n\"dovrai abilitare i seguenti permessi (o quanti più siano disponibili, poiché \"\n\"le versioni più vecchie di VMware non includevano alcune di queste \"\n\"impostazioni):\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"Crea un ruolo personalizzato in vCenter.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"Abilita (seleziona) i seguenti oggetti:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\" Datastore:\\n\"\n\"  - Sfoglia datastore\\n\"\n\"  - Operazioni sui file a basso livello\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\" Sessione:\\n\"\n\"  - Valida sessione\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\" Macchina virtuale:\\n\"\n\"   Interazione:\\n\"\n\"     - Gestione del sistema operativo guest VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Consenti l'accesso ai dischi\\n\"\n\"     - Consenti l'accesso in sola lettura ai dischi \\n\"\n\"     - Consenti download della macchina virtuale\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Operazioni crittografiche:\\n\"\n\"  - Decriptazione\\n\"\n\"  - Accesso diretto\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"vCenter: Impostazioni del firewall e del proxy\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"vCenter: Porte\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\"Se è presente un firewall tra il server di conversione virt-v2v e il server \"\n\"vCenter, sarà necessario aprire la porta 443 (https) e la porta 5480.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\"La porta 443 viene utilizzata per copiare l'immagine del disco del guest. La \"\n\"porta 5480 viene utilizzata per interrogare vCenter per i metadati del guest.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\"Questi numeri di porta sono solo le impostazioni predefinite. È possibile \"\n\"riconfigurare vCenter per utilizzare altri numeri di porta. In tal caso, \"\n\"sarebbe necessario specificare tali porte nell'URI C<vpx://>. Consultare L</\"\n\"vCenter: URI> sopra.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\"Queste porte si applicano solo alle conversioni virt-v2v. Potrebbe essere \"\n\"necessario aprire altre porte per altre funzionalità di vCenter, ad esempio \"\n\"l'interfaccia utente web. VMware documenta le porte necessarie per vCenter \"\n\"nella propria documentazione online.\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\"(Nel diagramma sopra, le frecce mostrano la direzione in cui viene avviata \"\n\"la connessione TCP, I<non> necessariamente la direzione del trasferimento \"\n\"dati.)\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\"Virt-v2v stesso non si connette direttamente all'hypervisor ESXi che ospita \"\n\"il guest. Tuttavia, vCenter si connette all'hypervisor e inoltra le \"\n\"informazioni, quindi se hai un firewall tra vCenter e i suoi hypervisor, \"\n\"potrebbe essere necessario aprire porte aggiuntive (consulta la \"\n\"documentazione VMware).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\"Le variabili d'ambiente del proxy (C<https_proxy>, C<all_proxy>, \"\n\"C<no_proxy>, C<HTTPS_PROXY>, C<ALL_PROXY> e C<NO_PROXY>) vengono B<ignorate> \"\n\"durante le conversioni da vCenter.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"vCenter: Problemi certificato SSL/TLS\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"Potresti vedere questo errore:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\"  CURL: Errore nell'apertura del file: SSL: nessun nome soggetto certificato alternativo\\n\"\n\" corrisponde al nome host di destinazione.\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\"(Potrebbe essere necessario abilitare il debug con 'virt-v2v -v -x' per \"\n\"visualizzare questo messaggio).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\"Questo può essere causato dall'utilizzo di un indirizzo IP invece del nome \"\n\"di dominio DNS completo del server vCenter, ad esempio utilizza C<vpx://\"\n\"vcenter.example.com/...> invece di C<vpx://11.22.33.44/...>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\"Un altro problema legato al certificato può essere causato da un server \"\n\"vCenter che presenta un FQDN e un indirizzo IP non corrispondenti, ad \"\n\"esempio se il server ha acquisito un nuovo indirizzo IP tramite DHCP. Per \"\n\"risolvere questo problema, è necessario modificare la configurazione del \"\n\"server DHCP o della rete in modo che il server vCenter ottenga sempre un \"\n\"indirizzo IP stabile. Successivamente, accedi alla console di \"\n\"amministrazione del server vCenter all'indirizzo C<https://vcenter:5480/>. \"\n\"Nella scheda C<Admin>, seleziona C<Certificate regeneration enabled> e \"\n\"quindi riavvialo.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\"VMware vCenter sembra limitare le sessioni HTTP e in alcune circostanze virt-\"\n\"v2v potrebbe superare questo numero. È possibile regolare o rimuovere il \"\n\"limite modificando il file F</etc/vmware-vpx/vpxd.cfg> sul server vCenter. \"\n\"Aumenta il campo C<E<lt>maxSessionCountE<gt>> oppure impostalo su C<0> per \"\n\"renderlo illimitato:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"L<virt-v2v(1)>.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"AUTORE\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"virt-v2v-input-xen - Utilizzo di virt-v2v per convertire guest da Xen\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\"Questa pagina documenta come utilizzare L<virt-v2v(1)> per convertire guest \"\n\"da host Xen di RHEL 5, oppure da host Xen di SLES e OpenSUSE.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"INPUT DA XEN\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"Autenticazione SSH\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\"È possibile utilizzare l'autenticazione tramite password SSH, fornendo il \"\n\"nome di un file contenente la password all'opzione I<-ip> (nota che questa \"\n\"opzione I<non> accetta la password direttamente). Potrebbe essere necessario \"\n\"modificare il file F</etc/ssh/sshd_config> sul server Xen per impostare \"\n\"C<PasswordAuthentication yes>.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\"Se non si utilizza l'autenticazione tramite password, un'alternativa è \"\n\"utilizzare ssh-agent e aggiungere la propria chiave pubblica ssh a F</\"\n\"root/.ssh/authorized_keys> (sull'host Xen). Dopo averlo fatto, è necessario \"\n\"verificare che l'accesso senza password funzioni dal server virt-v2v \"\n\"all'host Xen. Ad esempio:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\"Con alcune implementazioni ssh moderne, gli algoritmi crittografici legacy \"\n\"necessari per interoperare con sshd di RHEL 5 sono disabilitati. Per \"\n\"abilitarli, potrebbe essere necessario aggiungere la seguente direttiva \"\n\"C<Host> al proprio file F<~/.ssh/config>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" virt-v2v [-i* options] -o rhv -os [esd:/path|/path]\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [-i* options] -o rhv -os [esd:/path|/path]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\" /var/tmp/NAME.xml     # l’XML di libvirt (metadati)\\n\"\n\" /var/tmp/NAME-sda     #il primo disco del guest\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"(per C<NAME> sostituisci il nome del guest)\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"Carica il/i disco/i convertito/i nel pool di storage chiamato C<POOL>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\"Modifica /var/tmp/NAME.xml per cambiare /var/tmp/NAME-sda con il nome del \"\n\"pool. In altre parole, individua la seguente parte di XML:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\"e modifica due elementi: l’attributo C<type='file'> deve essere cambiato in \"\n\"C<type='volume'>, e l’elemento C<source> deve essere modificato per \"\n\"includere gli attributi C<pool> e C<volume>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"Definisci il guest finale in libvirt\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\"virt-v2v-output-openstack - Usare virt-v2v per convertire guest in OpenStack\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\n#, fuzzy\n#| msgid \"\"\n#| \"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL \"\n#| \"5 Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\"Questa pagina documenta come utilizzare L<virt-v2v(1)> per convertire guest \"\n\"da host Xen di RHEL 5, oppure da host Xen di SLES e OpenSUSE.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\n#, fuzzy\n#| msgid \"\"\n#| \"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n#| \"OpenStack.  There are two output modes you can select, but only I<-o \"\n#| \"openstack> should be used normally.\"\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\"Questa pagina documenta come usare virt-v2v(1) per convertire guest in modo \"\n\"che possano essere eseguiti su OpenStack. Esistono due modalità di output \"\n\"tra cui puoi scegliere, ma normalmente va usata solo -o openstack.\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"Descrizione completa: L</OUTPUT TO OPENSTACK>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\"Questo è il metodo moderno per caricare su OpenStack tramite l’API REST. I \"\n\"guest possono essere convertiti direttamente in volumi Cinder.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"Descrizione completa: L</OUTPUT TO GLANCE>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\n#, fuzzy\n#| msgid \"\"\n#| \"This is the old method for uploading to Glance.  Unfortunately Glance is \"\n#| \"not well suited to storing converted guests (since virt-v2v deals with \"\n#| \"\\\"pets\\\" not templated \\\"cattle\\\"), so this method is not recommended \"\n#| \"unless you really know what you are doing.\"\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\"Questo è il metodo obsoleto per caricare su Glance. Sfortunatamente, Glance \"\n\"non è molto adatto a memorizzare guest convertiti (poiché virt-v2v gestisce \"\n\"“pets” e non “cattle” template), quindi questo metodo non è raccomandato a \"\n\"meno che tu non sappia davvero cosa stai facendo.\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\"Se usi sudo per avviare virt-v2v e stai usando variabili d’ambiente per \"\n\"l’autenticazione, ricorda di usare l’opzione sudo -E per preservare \"\n\"l’ambiente.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"OpenStack: ID del guest\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\"Puoi opzionalmente specificare -oo guest-id=... sulla riga di comando. L’ID \"\n\"(che può essere qualsiasi stringa) viene salvato su ogni volume Cinder nella \"\n\"proprietà del volume virt_v2v_guest_id.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\"Questo può essere usato per individuare i dischi associati a un guest, \"\n\"oppure per associare quali dischi appartengono a quali guest quando si \"\n\"convertono molti guest.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"OpenStack: Ignora il certificato del server\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\"Usando -oo verify-server-certificate=false puoi dire al client OpenStack di \"\n\"ignorare il certificato del server quando si connette agli endpoint API di \"\n\"OpenStack. Questo ha lo stesso effetto di passare l’opzione --insecure al \"\n\"comando openstack.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"OpenStack: Conversione di un guest\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"Il comando finale per convertire il guest, eseguito come root, sarà:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"Se includi le opzioni di autenticazione sulla riga di comando, allora:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"OpenStack: Avvio del guest\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\"I guest vengono convertiti in volume/i Cinder (un volume per ogni disco del \"\n\"guest originale). Per avviarli, usa l’opzione openstack server create --\"\n\"volume:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"OpenStack: Altre opzioni di conversione\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\"Per specificare il tipo di volume Cinder, usa -os. Se non specificato, non \"\n\"viene usato alcun tipo di volume Cinder.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"OUTPUT SU GLANCE\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\"Nota: questa è un’opzione legacy. Nella maggior parte dei casi dovresti \"\n\"usare L</OUTPUT TO OPENSTACK> invece.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"Per esportare su OpenStack Glance, usa l’opzione -o glance.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\"Questo esegue il programma CLI glance(1), che deve essere installato \"\n\"sull’host di conversione virt-v2v. Perché l’autenticazione funzioni, è \"\n\"necessario impostare le variabili d’ambiente OS_*. Vedi L</OpenStack: \"\n\"Authentication> sopra.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\"Virt-v2v aggiunge metadati del guest a Glance, descrivendo aspetti come il \"\n\"sistema operativo del guest e i driver richiesti. Il comando glance image-\"\n\"show mostrerà i metadati come campi “Property”, ad esempio os_type e \"\n\"hw_disk_bus.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"Glance e sparseness\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\n#, fuzzy\n#| msgid \"\"\n#| \"Glance image upload doesn't appear to correctly handle sparseness.  For \"\n#| \"this reason, using qcow2 will be faster and use less space on the Glance \"\n#| \"server.  Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\"Il caricamento delle immagini in Glance non sembra gestire correttamente la \"\n\"sparseness. Per questo motivo, l’uso di qcow2 sarà più veloce e utilizzerà \"\n\"meno spazio sul server Glance. Usa l’opzione virt-v2v S<I<-of qcow2>>.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"Glance e dischi multipl\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\"Se il guest ha un solo disco, il nome del disco in Glance sarà il nome del \"\n\"guest. Puoi controllare questo comportamento usando l’opzione -on.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\n#, fuzzy\n#| msgid \"\"\n#| \"Glance doesn't have a concept of associating multiple disks with a single \"\n#| \"guest, and Nova doesn't allow you to boot a guest from multiple Glance \"\n#| \"disks either.  If the guest has multiple disks, then the first (assumed \"\n#| \"to be the system disk) will have the name of the guest, and the second \"\n#| \"and subsequent data disks will be called C<I<guestname>-disk2>, \"\n#| \"C<I<guestname>-disk3> etc.  It may be best to leave the system disk in \"\n#| \"Glance, and import the data disks to Cinder.\"\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\"Glance non ha il concetto di associazione di più dischi a un singolo guest, \"\n\"e Nova non consente nemmeno di avviare un guest da più dischi Glance. Se il \"\n\"guest ha più dischi, il primo (che si presume sia il disco di sistema) avrà \"\n\"il nome del guest, mentre il secondo e i successivi dischi dati saranno \"\n\"chiamati C<I<guestname>-disk2>, C<I<guestname>-disk3>, ecc. Potrebbe essere \"\n\"preferibile lasciare il disco di sistema in Glance e importare i dischi dati \"\n\"in Cinder.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\n#, fuzzy\n#| msgid \"\"\n#| \"virt-v2v-output-rhv - Using virt-v2v to convert guests to oVirt or RHV\"\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\"virt-v2v-output-rhv – Usare virt-v2v per convertire guest verso oVirt o RHV\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" virt-v2v [-i* options] -o vdsm\\n\"\n#| \"                        [-oo vdsm-image-uuid=UUID]\\n\"\n#| \"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n#| \"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n#| \"                        [-oo vdsm-ovf-output=DIR]\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" virt-v2v [-i* options] -o rhv -os [esd:/path|/path]\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [-i* options] -o rhv -os [esd:/path|/path]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\n#, fuzzy\n#| msgid \"\"\n#| \"This page documents how to use L<virt-v2v(1)> to convert guests to an \"\n#| \"oVirt or RHV management instance.  There are three output modes that you \"\n#| \"can select, but only I<-o rhv-upload> should be used normally, the other \"\n#| \"two are deprecated:\"\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\"Questa pagina documenta come usare virt-v2v(1) per convertire guest verso \"\n\"un’istanza di gestione oVirt o RHV. Sono disponibili tre modalità di output \"\n\"tra cui scegliere, ma normalmente va usata solo -o rhv-upload; le altre due \"\n\"sono deprecate:\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\n#, fuzzy\n#| msgid \"B<-o rhv-upload> B<-os> STORAGE\"\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"B<-o rhv-upload> B<-os> STORAGE\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\n#, fuzzy\n#| msgid \"Full description: L</OUTPUT TO RHV>\"\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"Descrizione completa: L</OUTPUT TO RHV>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\n#, fuzzy\n#| msgid \"\"\n#| \"This is the modern method for uploading to oVirt/RHV via the REST API.  \"\n#| \"It requires oVirt/RHV E<ge> 4.2.\"\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\"Questo è il metodo moderno per caricare su oVirt/RHV tramite l’API REST. \"\n\"Richiede oVirt/RHV ≥ 4.2.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"Descrizione completa: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\n#, fuzzy\n#| msgid \"\"\n#| \"This is the old method for uploading to oVirt/RHV via the Export Storage \"\n#| \"Domain (ESD).  The ESD can either be accessed over NFS (using the I<-os \"\n#| \"esd:/path> form) or if you have already NFS-mounted it somewhere specify \"\n#| \"the path to the mountpoint as I<-os /path>.\"\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\"Questo è il metodo obsoleto per caricare su oVirt/RHV tramite l’Export \"\n\"Storage Domain (ESD). L’ESD può essere accessibile tramite NFS (usando la \"\n\"forma -os esd:/path) oppure, se l’hai già montato via NFS da qualche parte, \"\n\"specifica il percorso del mountpoint come -os /path.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\"L’Export Storage Domain è stato deprecato in oVirt 4, quindi ci si aspetta \"\n\"che questo metodo smetta di funzionare in futuro\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\n#, fuzzy\n#| msgid \"\"\n#| \"This is the old method used internally by the RHV-M user interface.  It \"\n#| \"is never intended to be used directly by end users.\"\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\"Questo è il metodo obsoleto usato internamente dall’interfaccia utente RHV-\"\n\"M. Non è mai destinato all’uso diretto da parte degli utenti finali.\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\n#, fuzzy\n#| msgid \"OUTPUT TO RHV\"\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"OUTPUT PER RHV\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\n#, fuzzy\n#| msgid \"\"\n#| \"This new method to upload guests to oVirt or RHV directly via the REST \"\n#| \"API requires oVirt/RHV E<ge> 4.2.\"\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\"Questo nuovo metodo per caricare guest su oVirt o RHV direttamente tramite \"\n\"l’API REST richiede oVirt/RHV ≥ 4.2.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\n#, fuzzy\n#| msgid \"\"\n#| \"You need to specify I<-o rhv-upload> as well as the following extra \"\n#| \"parameters:\"\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\"Devi specificare -o rhv-upload insieme ai seguenti parametri aggiuntivi\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\"L’URL dell’API REST, che di solito corrisponde al nome del server con /ovirt-\"\n\"engine/api aggiunto, ma potrebbe essere diverso se hai installato oVirt \"\n\"Engine in un percorso differente.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\"Puoi opzionalmente aggiungere un nome utente e un numero di porta all’URL. \"\n\"Se il nome utente non è specificato, virt-v2v usa per default \"\n\"admin@internal, che è l’account superuser tipico per le istanze oVirt.\\\"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"Attualmente devi usare -of raw e non puoi usare -oa preallocated.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"Queste restrizioni saranno allentate in una versione futura.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\"Un file contenente la password da usare per la connessione a oVirt Engine. \"\n\"Nota che il file deve contenere l’intera password, senza alcun newline \"\n\"finale, e per motivi di sicurezza il file dovrebbe avere i permessi 0600 in \"\n\"modo che altri non possano leggerlo.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"Il dominio di storage.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\"Il file ca.pem (Certificate Authority), copiato da /etc/pki/ovirt-engine/\"\n\"ca.pem sul server oVirt Engine.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\n#, fuzzy\n#| msgid \"VDDK: Debugging VDDK failures\"\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"VDDK: Debug dei fallimenti VDDK\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"Tomáš Golembiovský\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"Mike Latimer\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"Nir Soffer\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"Pino Toscano\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"Ming Xie\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"Laszlo Ersek\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\n#, fuzzy\n#| msgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"Copyright (C) 2009-2025 Red Hat Inc.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"Roman Kagan\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\n#, fuzzy\n#| msgid \"B<--colors>\"\nmsgid \"I<--compressed>\"\nmsgstr \"B<--colori>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\n#, fuzzy\n#| msgid \"B<--no-logfile>\"\nmsgid \"I<--password-file>\"\nmsgstr \"B<--no-logfile>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\n#, fuzzy\n#| msgid \"\"\n#| \"This transport is incompatible with guests that have snapshots; refer to \"\n#| \"L</NOTES>.\"\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\"Questo trasporto non è compatibile con guest che hanno snapshot; fare \"\n\"riferimento a L</NOTE>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"ESEMPI\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\n#, fuzzy\n#| msgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\"Per maggiori informazioni vedere L<https://bugzilla.redhat.com/1614276>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"OPZIONI\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"B<--aiuto>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"Mostra l’aiuto.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"B<-b> ...\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"B<--bridge> ...\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"Vedi I<--network qui sotto.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\n#, fuzzy\n#| msgid \"B<--block-driver> B<virtio-blk>\"\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"B<--block-driver> B<virtio-blk>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\n#, fuzzy\n#| msgid \"B<--block-driver> B<virtio-scsi>\"\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"B<--block-driver> B<virtio-scsi>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"B<--block-driver> B<virtio-scsi>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\"Quando si sceglie un driver di blocco per i guest Windows, preferire \"\n\"C<virtio-blk> o C<virtio-scsi>. L'impostazione predefinita è C<virtio-blk>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\n#, fuzzy\n#| msgid \"\"\n#| \"Note this has no effect for Linux guests at the moment.  That may be \"\n#| \"added in future.\"\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\"Nota: questo non ha alcun effetto per i guest Linux al momento. Questa \"\n\"funzionalità potrebbe essere aggiunta in futuro.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"B<--colori>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"B<--colori>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\"Utilizza sequenze di colori ANSI per colorare i messaggi. Questa è \"\n\"l'impostazione predefinita quando l'output è un tty. Se l'output del \"\n\"programma viene reindirizzato su un file, le sequenze di colori ANSI vengono \"\n\"disabilitate a meno che non si utilizzi questa opzione.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\n#, fuzzy\nmsgid \"B<--echo-keys>\"\nmsgstr \"B<--echo-keys>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\"Quando richiede chiavi o passphrase, virt-v2v normalmente disattiva l'eco \"\n\"dello schermo, impedendo di visualizzare ciò che si sta digitando. Se non si \"\n\"è preoccupati di attacchi Tempest e non c'è nessun altro nella stanza, è \"\n\"possibile specificare questo flag per vedere ciò che si sta digitando.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\"Nota: questa opzione si applica solo alle chiavi e passphrase per \"\n\"dispositivi e partizioni crittografati, non alle password utilizzate per \"\n\"connettersi a server remoti.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"B<-i> B<dischi>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"Imposta il metodo di input su I<disk>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\"In questa modalità è possibile leggere un'immagine disco di una macchina \"\n\"virtuale senza metadati. virt-v2v tenta di dedurre i metadati predefiniti \"\n\"ottimali. Questo di solito è sufficiente, ma è possibile ottenere un \"\n\"controllo più preciso (ad esempio su memoria e vCPU) utilizzando invece I<-i \"\n\"libvirtxml>. Solo i guest che utilizzano un singolo disco possono essere \"\n\"importati in questo modo.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"B<-i> B<libvirt>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\"Imposta il metodo di input su <libvirt>.  Questa è l'impostazione \"\n\"predefinita.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\"In questa modalità è necessario specificare un nome guest o un UUID di \"\n\"libvirt sulla riga di comando. È possibile specificare anche un URI di \"\n\"connessione libvirt (vedere I<-ic>).\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"B<-i> B<libvirtxml>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"Imposta il metodo di input su I<libvirtxml>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\"In questa modalità è necessario passare un file XML di libvirt sulla riga di \"\n\"comando. Questo file viene letto per ottenere i metadati del guest di \"\n\"origine (come nome, quantità di memoria) e per individuare i dischi di \"\n\"input. Consultare L</XML minimale per l'opzione -i libvirtxml> in seguito.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"B<-i> B<local>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"Questo è equivalente a I<-i disk>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"B<-ic> libvirtURI\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\"Specifica un URI di connessione libvirt da utilizzare durante la lettura del \"\n\"guest. Viene utilizzato solo con l'opzione S<I<-i libvirt>>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"B<-if> formato\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\"Per solo I<-i disk>, specifica il formato dell'immagine disco di input. Per \"\n\"altri metodi di input, è necessario specificare il formato di input nei \"\n\"metadati.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"B<-io> OPTION=VALORE\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\"Imposta una o più opzioni di input relative alla modalità di input o al \"\n\"trasporto corrente. Per visualizzare un aiuto breve sulle opzioni \"\n\"disponibili è possibile utilizzare:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"B<-ip> nomefile\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"__INCLUDE:key-option.pod__\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"__INCLUDE:keys-from-stdin-option.pod__\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\"Nota: I<--keys-from-stdin> si applica solo alle chiavi e passphrase per \"\n\"dispositivi e partizioni crittografati, non alle password utilizzate per \"\n\"connettersi a server remoti.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"Mappa l'indirizzo MAC della NIC sorgente a una rete o bridge.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\"Forza un'interfaccia specifica (controllata dal suo indirizzo MAC) ad avere \"\n\"un indirizzo IP statico dopo l'avvio.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"Questa opzione può essere fornita zero o più volte.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\"Questa opzione è necessaria solo per alcuni guest problematici come Windows, \"\n\"che non sono in grado di preservare automaticamente le associazioni MAC - \"\n\"indirizzo IP statico. Non è necessario utilizzarla se Windows impiega il \"\n\"DHCP. Attualmente viene ignorata per i guest Linux, poiché non presentano \"\n\"questo problema.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"B<--machine-readable>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"B<--machine-readable>=formato\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\n#, fuzzy\n#| msgid \"B<--blocksize>\"\nmsgid \"B<--memsize> MB\"\nmsgstr \"B<--blocksize>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"B<-n> in:out\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"B<-n> out\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"B<--network> in:out\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"B<--network> out\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"B<-b> in:out\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"B<-b> out\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"B<--bridge> in:out\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"B<--bridge> out\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\"Mappa la rete (o bridge) chiamata C<in> alla rete (o bridge) chiamata \"\n\"C<out>. Se non viene fornito il prefisso C<in>:, tutte le altre reti (o \"\n\"bridge) vengono mappate su C<out>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\n#, fuzzy\n#| msgid \"B<--no-logfile>\"\nmsgid \"B<--no-fstrim>\"\nmsgstr \"B<--no-logfile>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\n#, fuzzy\n#| msgid \"B<-i> B<local>\"\nmsgid \"B<-o> B<glance>\"\nmsgstr \"B<-i> B<local>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\n#, fuzzy\n#| msgid \"B<-i> B<libvirt>\"\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"B<-i> B<libvirt>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\n#, fuzzy\n#| msgid \"Set the input method to I<libvirtxml>.\"\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"Imposta il metodo di input su I<libvirtxml>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\n#, fuzzy\n#| msgid \"L<virt-v2v(1)>.\"\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"L<virt-v2v(1)>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\n#, fuzzy\n#| msgid \"Set the input method to I<libvirtxml>.\"\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"Imposta il metodo di input su I<libvirtxml>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\n#, fuzzy\n#| msgid \"B<-i> B<disk>\"\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"B<-i> B<dischi>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\n#, fuzzy\n#| msgid \"B<-i> B<disk>\"\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"B<-i> B<dischi>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\n#, fuzzy\n#| msgid \"\"\n#| \"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n#| \"engine/ca.pem> on the oVirt engine.\"\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\"Il file ca.pem (Certificate Authority), copiato da /etc/pki/ovirt-engine/\"\n\"ca.pem sul server oVirt Engine.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"B<--print-source>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"B<-q>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"B<--quiet>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\"Questa opzione disabilita le barre di avanzamento e altri output non \"\n\"necessari.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"B<--root ask>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"B<--root single>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"Sceglie il filesystem root da convertire.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\"Nel caso in cui la macchina virtuale sia dual-boot o multi-boot, o quando la \"\n\"VM ha altri filesystem che assomigliano a sistemi operativi, questa opzione \"\n\"può essere utilizzata per selezionare il filesystem root (noto anche come \"\n\"unità C<C:> o F</>) del sistema operativo da convertire. La Console di \"\n\"ripristino di Windows, alcuni lettori DVD collegati e bug nelle euristiche \"\n\"di ispezione di libguestfs possono far apparire un guest come un sistema \"\n\"operativo multi-boot.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\"L'impostazione predefinita in virt-v2v E<le> 0.7.1 era S<I<--root single>>, \"\n\"che causa l'interruzione di virt-v2v se viene rilevato un sistema operativo \"\n\"multi-boot.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\"A partire da virt-v2v E<ge> 0.7.2, l'impostazione predefinita è ora S<I<--\"\n\"root ask>>: Se viene rilevato che la VM è multi-boot, virt-v2v si \"\n\"interromperà, elencherà i possibili filesystem root e chiederà all'utente \"\n\"quale utilizzare. Ciò richiede che virt-v2v venga eseguito in modalità \"\n\"interattiva.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"B<--root first>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"B<--root> /dev/sdX\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"B<--root> /dev/VG/LV\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\n#, fuzzy\n#| msgid \"\"\n#| \"You can also name a specific root device, eg. S<I<--root /dev/sda2>> \"\n#| \"would mean to use the second partition on the first hard drive.  If the \"\n#| \"named root device does not exist or was not detected as a root device, \"\n#| \"then virt-v2v will fail.\"\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\"È possibile anche specificare un dispositivo root particolare, ad esempio \"\n\"S<I<--root /dev/sda2>> indicherebbe di utilizzare la seconda partizione sul \"\n\"primo disco rigido. Se il dispositivo root specificato non esiste o non è \"\n\"stato rilevato come dispositivo root, virt-v2v terminerà con un errore.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\n#, fuzzy\n#| msgid \"B<--help>\"\nmsgid \"B<--smp> N\"\nmsgstr \"B<--aiuto>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"B<-v>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"B<--verbose>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"Abilita messaggi dettagliati per il debug.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"B<-V>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"B<--version>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"Visualizza il numero di versione ed esce.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"B<--wrap>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\"Avvolge i messaggi di errore, avviso e informativi. Questa è l'impostazione \"\n\"predefinita quando l'output è un tty. Se l'output del programma viene \"\n\"reindirizzato su un file, l'avvolgimento viene disabilitato a meno che non \"\n\"si utilizzi questa opzione.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"B<-x>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"Abilita la traccia delle chiamate API di libguestfs.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\n#, fuzzy\n#| msgid \"If you see an error similar to:\"\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"Se visualizzi un errore simile a:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\n#, fuzzy\n#| msgid \"VMX: Guest must be shut down\"\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"VMX: Il guest deve essere spento\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\n#, fuzzy\n#| msgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\"Per maggiori informazioni vedere L<https://bugzilla.redhat.com/1614276>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"XML minimale per l'opzione -i libvirtxml\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\"Quando si utilizza l'opzione I<-i libvirtxml>, è necessario fornire del \"\n\"codice XML di libvirt. Scriverlo da zero è complesso, quindi il modello \"\n\"seguente è utile.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\"B<Nota: questo dovrebbe essere utilizzato solo per testing e/o quando si sa \"\n\"esattamente cosa si sta facendo!> Se si dispone dei metadati libguestfs per \"\n\"il guest, utilizzare sempre quelli.\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"FILE\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"VARIABILI D'AMBIENTE\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"Matthew Booth\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"Cédric Bosdonnat\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"Shahar Havivi\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"Xiaodai Wang\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"Tingting Zheng\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\"virt-v2v-in-place – Converte un guest per utilizzare KVM direttamente sulla \"\n\"macchina esistente (in-place)\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\"Virt-v2v-in-place converte un singolo guest da un hypervisor esterno per \"\n\"eseguirlo su KVM. La conversione avviene in-place, modificando il disco \"\n\"originale.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\"Questa pagina del manuale documenta solo le differenze tra questo strumento \"\n\"e virt-v2v. È consigliato leggere prima L<virt-v2v(1)>.\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"Selezione del disco di input\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\"Normalmente virt-v2v viene eseguito con una o più opzioni I<-i>* che \"\n\"controllano la modalità di input. Virt-v2v-in-place può convertire solo \"\n\"guest memorizzati in file locali.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"Questo comando eseguirà una conversione in-place di F<filename.img>:\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"Se il guest è stato copiato in libvirt locale, allora:\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"Output XML\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\"Facoltativamente, utilizza l’opzione I<-O> per scrivere i metadati post-\"\n\"conversione del guest in un file XML. Il formato è lo stesso di L<virt-v2v-\"\n\"inspector(1)>. Questo può essere utile, ad esempio, per determinare quale \"\n\"sistema operativo e firmware sono stati rilevati all’interno del guest \"\n\"durante la conversione.\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"Codice d'uscità\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\"Se virt-v2v-in-place fallisce, restituirà un codice di uscita diverso da \"\n\"zero (errore). In questo caso, l’immagine del disco sarà in uno stato \"\n\"sconosciuto, possibilmente corrotto.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\"Se l’immagine contiene informazioni importanti, dovresti assicurarti di \"\n\"avere un backup prima di tentare una conversione con virt-v2v-in-place. \"\n\"Inoltre, dovresti verificare che il codice di uscita sia zero prima di usare \"\n\"l’immagine del disco dopo la conversione.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\"Possono essere utilizzate solo connessioni libvirt locali a dischi \"\n\"memorizzati localmente.\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\"Fornisce un file contenente una password da utilizzare durante la \"\n\"connessione alla sorgente. Se omesso, l'hypervisor di input potrebbe \"\n\"richiedere la password in modo interattivo. Si noti che il file deve \"\n\"contenere l'intera password, B<senza alcun carattere di nuova riga finale>, \"\n\"e per motivi di sicurezza il file dovrebbe avere modalità C<0600> in modo \"\n\"che altri non possano leggerlo.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\n#, fuzzy\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"See L<virt-v2v(1)/Networks and bridges>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\"I campi del parametro sono: `C<ipaddr>` è l'indirizzo IP. `C<gw>` è \"\n\"l'indirizzo IP del gateway (opzionale). `C<len>` è la lunghezza della subnet \"\n\"mask (un numero intero). I parametri finali sono zero o più indirizzi IP dei \"\n\"nameserver.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\"Questa opzione viene utilizzata per rendere l'output più adatto \"\n\"all'elaborazione automatica quando viene analizzato da altri programmi. \"\n\"Consultare L<virt-v2v(1)/Output leggibile dalla macchina>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"B<-O> output.xml\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"B<-O ->\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\"Se questa opzione è presente, scrive i metadati post-conversione del guest \"\n\"nel file XML specificato, o su stdout se viene utilizzato I<-O ->. Il \"\n\"formato è lo stesso di L<virt-v2v-inspector(1)>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\"Stampa informazioni sul guest di origine e si interrompe. Questa opzione è \"\n\"utile durante la configurazione delle mappe di rete e bridge. Consultare \"\n\"L<virt-v2v(1)/Reti e bridge>.\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\n#, fuzzy\n#| msgid \"Choose the root filesystem to be converted.\"\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"Sceglie il filesystem root da convertire.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"Checksum del disco\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\"Il campo opzionale `E<lt>checksumE<gt>` specifica l'hash previsto del disco \"\n\"corrispondente. Può essere specificato dagli strumenti di gestione per \"\n\"eseguire controlli di integrità dei dati end-to-end.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\"Si noti che questo è il checksum del contenuto in formato raw del disco. Se \"\n\"il disco è in un formato contenitore (ad esempio qcow2), si tratta del \"\n\"checksum del contenuto, `I<non>` del contenitore.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\"L'attributo del metodo di checksum può essere C<md5>, C<sha256> o C<sha512>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\"L'attributo fail può essere C<error> per interrompere la conversione se il \"\n\"checksum non corrisponde; C<warn> per stampare un avviso ma continuare; \"\n\"C<ignore> per ignorare il checksum senza nemmeno calcolarlo; o C<print> per \"\n\"stampare il checksum effettivo e continuare. L'impostazione predefinita è \"\n\"C<fail=warn>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\"Il calcolo del checksum di una sorgente remota (ad esempio HTTP) può essere \"\n\"lento e oneroso.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\"I file utilizzati sono gli stessi di virt-v2v. Vedere L<virt-v2v(1)/FILE>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\"Le variabili d'ambiente utilizzate sono le stesse di virt-v2v. Vedere L<virt-\"\n\"v2v(1)/VARIABILI D'AMBIENTE>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\n#, fuzzy\n#| msgid \"\"\n#| \"This manual page only documents the differences between this tool and \"\n#| \"virt-v2v.  You should read L<virt-v2v(1)> first.\"\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\"Questa pagina del manuale documenta solo le differenze tra questo strumento \"\n\"e virt-v2v. È consigliato leggere prima L<virt-v2v(1)>.\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\n#, fuzzy\n#| msgid \"B<--run> SCRIPT\"\nmsgid \"B<--run> COMMAND\"\nmsgstr \"B<--run> SCRIPT\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\n#, fuzzy\n#| msgid \"\"\n#| \"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n#| \"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\n\n#~ msgid \"B<\\\"osinfo\\\">\"\n#~ msgstr \"B<\\\"osinfo\\\">\"\n\n#~ msgid \"\"\n#~ \"The literal string C<\\\"osinfo\\\"> means to use the libosinfo database to \"\n#~ \"locate the drivers.  (See L<osinfo-query(1)>.\"\n#~ msgstr \"\"\n#~ \"La stringa letterale C<\\\"osinfo\\\"> significa usare il database libosinfo \"\n#~ \"per localizzare i driver. (Vedi L<osinfo-query(1)>.\"\n\n#~ msgid \"B<--sm-attach> SELECTOR\"\n#~ msgstr \"B<--sm-attach> SELECTOR\"\n\n#~ msgid \"Attach to a pool using C<subscription-manager>.\"\n#~ msgstr \"Collegati a un pool utilizzando C<subscription-manager>.\"\n\n#~ msgid \"\"\n#~ \"See L<virt-builder(1)/SUBSCRIPTION-MANAGER> for the format of the \"\n#~ \"C<SELECTOR> field.\"\n#~ msgstr \"\"\n#~ \"Vedi L<virt-builder(1)/SUBSCRIPTION-MANAGER> per il formato del campo \"\n#~ \"C<SELECTOR>.\"\n\n#~ msgid \"B<--sm-credentials> SELECTOR\"\n#~ msgstr \"B<--sm-credentials> SELECTOR\"\n\n#~ msgid \"Set the credentials for C<subscription-manager>.\"\n#~ msgstr \"Imposta le credenziali per C<subscription-manager>.\"\n\n#~ msgid \"B<--sm-register>\"\n#~ msgstr \"B<--sm-register>\"\n\n#~ msgid \"Register the guest using C<subscription-manager>.\"\n#~ msgstr \"Registra il guest utilizzando C<subscription-manager>.\"\n\n#~ msgid \"This requires credentials being set using I<--sm-credentials>.\"\n#~ msgstr \"\"\n#~ \"Questo richiede che le credenziali siano impostate usando I<--sm-\"\n#~ \"credentials>.\"\n\n#~ msgid \"B<--sm-remove>\"\n#~ msgstr \"B<--sm-remove>\"\n\n#~ msgid \"\"\n#~ \"Remove all the subscriptions from the guest using C<subscription-manager>.\"\n#~ msgstr \"\"\n#~ \"Rimuove tutte le sottoscrizioni dal guest utilizzando C<subscription-\"\n#~ \"manager>.\"\n\n#~ msgid \"B<--sm-unregister>\"\n#~ msgstr \"B<--sm-unregister>\"\n\n#~ msgid \"Unregister the guest using C<subscription-manager>.\"\n#~ msgstr \"\"\n#~ \"Annulla la registrazione del guest utilizzando C<subscription-manager>.\"\n\n#~ msgid \"\"\n#~ \"S<I<--root first>> means to choose the first root device in the case of a \"\n#~ \"multi-boot operating system.  Since this is a heuristic, it may sometimes \"\n#~ \"choose the wrong one.\"\n#~ msgstr \"\"\n#~ \"S<I<--root first>> significa scegliere il primo dispositivo root nel caso \"\n#~ \"di un sistema operativo multi-boot. Poiché si tratta di un'euristica, \"\n#~ \"potrebbe talvolta selezionare quello errato.\"\n\n#~ msgid \"\"\n#~ \"Note that there is a bug in grub which prevents it from successfully \"\n#~ \"booting a multiboot system if virtio is enabled.  Grub is only able to \"\n#~ \"boot an operating system from the first virtio disk.  Specifically, F</\"\n#~ \"boot> must be on the first virtio disk, and it cannot chainload an OS \"\n#~ \"which is not in the first virtio disk.\"\n#~ msgstr \"\"\n#~ \"Si noti che esiste un bug in grub che gli impedisce di avviare \"\n#~ \"correttamente un sistema multiboot se virtio è abilitato. Grub può \"\n#~ \"avviare un sistema operativo solo dal primo disco virtio. Nello \"\n#~ \"specifico, F</boot> deve trovarsi sul primo disco virtio e non può \"\n#~ \"eseguire il chainload di un sistema operativo che non risiede nel primo \"\n#~ \"disco virtio.\"\n\n#~ msgid \"\"\n#~ \"You must find the SSL \\\"thumbprint\\\" of your VMware server.  How to do \"\n#~ \"this is explained in L<nbdkit-vddk-plugin(1)>, also available at the link \"\n#~ \"above.\"\n#~ msgstr \"\"\n#~ \"Devi trovare il thumbprint SSL del tuo server VMware. Come fare è \"\n#~ \"spiegato in nbdkit-vddk-plugin(1), disponibile anche al link sopra.\"\n\n#~ msgid \"5.\"\n#~ msgstr \"5.\"\n"
  },
  {
    "path": "po-docs/ja/Makefile.am",
    "content": "# libguestfs translations of man pages and POD files\n# Copyright (C) 2010-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Note that each Makefile.am in po-docs/$lang/Makefile.am should be\n# identical.  If you create a new $lang.po, create the $lang/\n# subdirectory and copy the Makefile.am from an existing language.\n# All the actual logic should be in language.mk.\n\ninclude $(srcdir)/../language.mk\n"
  },
  {
    "path": "po-docs/ja.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the libguestfs package.\n#\n# Translators:\n# Hajime Taira <htaira@redhat.com>, 2012\n# rjones <rjones@redhat.com>, 2011\n# Tomoyuki KATO <tomo@dream.daynight.jp>, 2012-2013\n# carrotsoft <www.carrotsoft@gmail.com>, 2011\n# carrotsoft <www.carrotsoft@gmail.com>, 2011\n# Richard Jones <rjones@redhat.com>, 2017. #zanata\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2017-02-24 07:33+0000\\n\"\n\"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\\n\"\n\"Language-Team: Japanese (http://www.transifex.com/projects/p/libguestfs/\"\n\"language/ja/)\\n\"\n\"Language: ja\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"コメント\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"*\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"例:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\"表現がシェルにより変更されるのを防ぐために、適切に引用符でくくるよう注意して\"\n\"ください。\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\"このオプションは Perl 5 がインストールされているときのみ利用可能であることに\"\n\"注意してください。\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\n#, fuzzy\n#| msgid \"B<--selinux-relabel>\"\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"B<--selinux-relabel>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"B<--selinux-relabel>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\n#, fuzzy\n#| msgid \"C<blocksize>\"\nmsgid \"B<--blocksize=512>\"\nmsgstr \"C<blocksize>\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\n#, fuzzy\n#| msgid \"C<blocksize>\"\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"C<blocksize>\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\n#, fuzzy\n#| msgid \"C<blocksize>\"\nmsgid \"B<--blocksize>\"\nmsgstr \"C<blocksize>\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"B<--keys-from-stdin>\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"名前\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"説明\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"関連項目\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"著者\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"Richard W.M. Jones\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"COPYRIGHT\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"書式\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"注記\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"1.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"2.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\n#, fuzzy\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"L<https://bugzilla.redhat.com/1001876>\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"3.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"4.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"著者\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"または:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\n#, fuzzy\n#| msgid \"OUTPUT MODES\"\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"出力モード\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\n#, fuzzy\n#| msgid \"OUTPUT MODES\"\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"出力モード\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"guestfs-release-notes - libguestfs リリースノート\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\n#, fuzzy\n#| msgid \"C<features>\"\nmsgid \"New features\"\nmsgstr \"C<特徴>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\n#, fuzzy\n#| msgid \"Other Linux distro\"\nmsgid \"Other fixes\"\nmsgstr \"他の Linux ディストリビューション\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"内部\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"バグ修正\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh 1.20.0..\"\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"./bugs-in-changelog.sh 1.20.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\n#, fuzzy\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"L<https://bugzilla.redhat.com/1001876>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981683>\"\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"L<https://bugzilla.redhat.com/981683>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981663>\"\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"L<https://bugzilla.redhat.com/981663>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/916780>\"\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"L<https://bugzilla.redhat.com/916780>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\n#, fuzzy\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"L<https://bugzilla.redhat.com/998513>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858696>\"\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"L<https://bugzilla.redhat.com/858696>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\n#, fuzzy\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"L<https://bugzilla.redhat.com/957380>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"guestfs-release-notes - libguestfs リリースノート\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh 1.20.0..\"\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"./bugs-in-changelog.sh 1.20.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\n#, fuzzy\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"L<https://bugzilla.redhat.com/957380>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\n#, fuzzy\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"L<https://bugzilla.redhat.com/998513>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981663>\"\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"L<https://bugzilla.redhat.com/981663>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\n#, fuzzy\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"L<https://bugzilla.redhat.com/998513>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\n#, fuzzy\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"L<https://bugzilla.redhat.com/1001876>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981683>\"\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"L<https://bugzilla.redhat.com/981683>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981683>\"\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"L<https://bugzilla.redhat.com/981683>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\n#, fuzzy\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"L<https://bugzilla.redhat.com/957380>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/916780>\"\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"L<https://bugzilla.redhat.com/916780>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\n#, fuzzy\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"L<https://bugzilla.redhat.com/1001876>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858696>\"\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"L<https://bugzilla.redhat.com/858696>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858696>\"\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"L<https://bugzilla.redhat.com/858696>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"guestfs-release-notes - libguestfs リリースノート\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh 1.20.0..\"\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"./bugs-in-changelog.sh 1.20.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\n#, fuzzy\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"L<https://bugzilla.redhat.com/957380>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"guestfs-release-notes - libguestfs リリースノート\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh 1.20.0..\"\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"./bugs-in-changelog.sh 1.20.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981663>\"\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"L<https://bugzilla.redhat.com/981663>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/916780>\"\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"L<https://bugzilla.redhat.com/916780>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981663>\"\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"L<https://bugzilla.redhat.com/981663>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981663>\"\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"L<https://bugzilla.redhat.com/981663>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981663>\"\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"L<https://bugzilla.redhat.com/981663>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981663>\"\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"L<https://bugzilla.redhat.com/981663>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981663>\"\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"L<https://bugzilla.redhat.com/981663>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981663>\"\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"L<https://bugzilla.redhat.com/981663>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\n#, fuzzy\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"L<https://bugzilla.redhat.com/1001876>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981663>\"\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"L<https://bugzilla.redhat.com/981663>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\n#, fuzzy\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"L<https://bugzilla.redhat.com/1001876>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"guestfs-release-notes - libguestfs リリースノート\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh 1.20.0..\"\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"./bugs-in-changelog.sh 1.20.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981683>\"\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"L<https://bugzilla.redhat.com/981683>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981683>\"\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"L<https://bugzilla.redhat.com/981683>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981683>\"\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"L<https://bugzilla.redhat.com/981683>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\n#, fuzzy\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"L<https://bugzilla.redhat.com/998513>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/752375>\"\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"L<https://bugzilla.redhat.com/752375>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981683>\"\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"L<https://bugzilla.redhat.com/981683>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"guestfs-release-notes - libguestfs リリースノート\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh 1.20.0..\"\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"./bugs-in-changelog.sh 1.20.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\n#, fuzzy\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"L<https://bugzilla.redhat.com/957380>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\n#, fuzzy\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"L<https://bugzilla.redhat.com/957380>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858696>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"L<https://bugzilla.redhat.com/858696>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981683>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"L<https://bugzilla.redhat.com/981683>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"guestfs-release-notes - libguestfs リリースノート\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh 1.20.0..\"\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"./bugs-in-changelog.sh 1.20.0..\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/912499>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"L<https://bugzilla.redhat.com/912499>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\n#, fuzzy\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"L<https://bugzilla.redhat.com/957380>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981683>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"L<https://bugzilla.redhat.com/981683>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/811649>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"L<https://bugzilla.redhat.com/811649>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858696>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"L<https://bugzilla.redhat.com/858696>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981683>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"L<https://bugzilla.redhat.com/981683>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858128>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"L<https://bugzilla.redhat.com/858128>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981683>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"L<https://bugzilla.redhat.com/981683>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/981715>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"L<https://bugzilla.redhat.com/981715>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/858696>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"L<https://bugzilla.redhat.com/858696>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\n#, fuzzy\nmsgid \"RHEL 5 Xen\"\nmsgstr \"RHEL 5\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\n#, fuzzy\nmsgid \"Direct from disk images\"\nmsgstr \"空のディスクイメージを作成します\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\n#, fuzzy\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"L<virt-ls(1)> を使用します。\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\n#, fuzzy\nmsgid \"Local libvirt\"\nmsgstr \"C<libvirt>\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\n#, fuzzy\nmsgid \"Guests\"\nmsgstr \"テストします。\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\n#, fuzzy\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"Red Hat Enterprise Linux\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\n#, fuzzy\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"Scientific Linux.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\n#, fuzzy\nmsgid \"Oracle Linux\"\nmsgstr \"Arch Linux.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\n#, fuzzy\nmsgid \"Fedora\"\nmsgstr \"Fedora.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"guestfs-release-notes - libguestfs リリースノート\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"guestfs-release-notes - libguestfs リリースノート\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"guestfs-release-notes - libguestfs リリースノート\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"guestfs-release-notes - libguestfs リリースノート\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"guestfs-release-notes - libguestfs リリースノート\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"guestfs-release-notes - libguestfs リリースノート\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\n#, fuzzy\n#| msgid \"guestfs-release-notes - libguestfs Release Notes\"\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"guestfs-release-notes - libguestfs リリースノート\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"例\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"オプション\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"B<--help>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"ヘルプを表示します。\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\n#, fuzzy\n#| msgid \"B<--add> URI\"\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"B<--add> URI\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\n#, fuzzy\n#| msgid \"B<--add> file\"\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"B<--add> file\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"B<--echo-keys>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"B<--machine-readable>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\n#, fuzzy\n#| msgid \"C<blocksize>\"\nmsgid \"B<--memsize> MB\"\nmsgstr \"C<blocksize>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"B<-q>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"B<--quiet>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\n#, fuzzy\n#| msgid \"B<--help>\"\nmsgid \"B<--smp> N\"\nmsgstr \"B<--help>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"B<-v>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"B<--verbose>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"デバッグ用の冗長なメッセージを有効にします。\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"B<-V>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"B<--version>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"バージョン番号を表示して、終了します。\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\n#, fuzzy\n#| msgid \"B<--help>\"\nmsgid \"B<--wrap>\"\nmsgstr \"B<--help>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"B<-x>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"libguestfs API 呼び出しのトレースを有効にします。\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\n#, fuzzy\nmsgid \"Linux root filesystem\"\nmsgstr \"これはマウントされたファイルシステムをすべてアンマウントします。\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\n#, fuzzy\nmsgid \"Any other mountable filesystem\"\nmsgstr \"これはマウントされたファイルシステムをすべてアンマウントします。\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"2\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\n#, fuzzy\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"L<https://bugzilla.redhat.com/1001876>\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/713678>\"\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"L<https://bugzilla.redhat.com/713678>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"このオプションを使用するには 2 通りの方法があります。\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/978302>\"\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"L<https://bugzilla.redhat.com/978302>\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"ファイル\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"環境変数\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\n#, fuzzy\n#| msgid \"LIBGUESTFS_CACHEDIR\"\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"LIBGUESTFS_CACHEDIR\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"他の環境変数は L<guestfs(3)/環境変数> を参照してください。\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\n#, fuzzy\n#| msgid \"\"\n#| \"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"他の環境変数は L<guestfs(3)/環境変数> を参照してください。\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\n#, fuzzy\n#| msgid \"B<--echo-keys>\"\nmsgid \"B<--key> ...\"\nmsgstr \"B<--echo-keys>\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#~ msgid \"Debian and Ubuntu\"\n#~ msgstr \"Debian および Ubuntu\"\n\n#~ msgid \"Richard W.M. Jones L<http://people.redhat.com/~rjones/>\"\n#~ msgstr \"Richard W.M. Jones L<http://people.redhat.com/~rjones/>\"\n\n#, fuzzy\n#~| msgid \"The index of this device within the array.\"\n#~ msgid \"The index of the disk, starting from 1.\"\n#~ msgstr \"配列の中にあるこのデバイスのインデックスです。\"\n\n#, fuzzy\n#~| msgid \"The name of the MD device.\"\n#~ msgid \"The name of the guest.\"\n#~ msgstr \"MD デバイスの名前。\"\n"
  },
  {
    "path": "po-docs/ka.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2026-03-31 11:58+0000\\n\"\n\"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\\n\"\n\"Language-Team: Georgian <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-docs-master/ka/>\\n\"\n\"Language: ka\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Generator: Weblate 5.16.2\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"კომენტარი\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"საქ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"სახელი\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"მოკლე აღწერა\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/kn.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: kn\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n > 1;\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/language.mk",
    "content": "# libguestfs translations of man pages and POD files\n# Copyright (C) 2010-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Common logic for generating translated documentation.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nLINGUA = $(shell basename -- `pwd`)\n\n# Before 1.23.23, the old Perl tools were called *.pl.\nCLEANFILES += *.pl *.pod\n\nMANPAGES = \\\n\tvirt-v2v.1 \\\n\tvirt-v2v-hacking.1 \\\n\tvirt-v2v-input-vmware.1 \\\n\tvirt-v2v-input-xen.1 \\\n\tvirt-v2v-output-local.1 \\\n\tvirt-v2v-output-openstack.1 \\\n\tvirt-v2v-output-ovirt.1 \\\n\tvirt-v2v-release-notes-1.42.1 \\\n\tvirt-v2v-release-notes-2.0.1 \\\n\tvirt-v2v-release-notes-2.2.1 \\\n\tvirt-v2v-release-notes-2.4.1 \\\n\tvirt-v2v-release-notes-2.6.1 \\\n\tvirt-v2v-release-notes-2.8.1 \\\n\tvirt-v2v-release-notes-2.10.1 \\\n\tvirt-v2v-support.1\n\npodfiles := $(shell for f in `cat $(top_srcdir)/po-docs/podfiles`; do echo `basename $$f .pod`.pod; done)\n\n# Ship the POD files and the translated manpages in the tarball.  This\n# just simplifies building from the tarball, at a small cost in extra\n# size.\nEXTRA_DIST = \\\n\t$(MANPAGES) \\\n\t$(podfiles)\n\nall-local: $(MANPAGES)\n\n# Some man pages are preprocessed with m4 for conditional sections.\nPP_M4 = \\\n\tm4 \\\n\t-D ENABLE_BLOCK_DRIVER=$(ENABLE_BLOCK_DRIVER) \\\n\t-D ENABLE_XEN=$(ENABLE_XEN) \\\n\t-D ENABLE_GLANCE=$(ENABLE_GLANCE) \\\n\t-D ENABLE_OVIRT=$(ENABLE_OVIRT) \\\n\t$(NULL)\n\nvirt-v2v.1: virt-v2v.pod key-option.pod keys-from-stdin-option.pod\n\t$(PODWRAPPER) \\\n\t  --pp \"$(PP_M4)\" \\\n\t  --no-strict-checks \\\n\t  --man $@ \\\n\t  $<\n\nvirt-v2v-output-openstack.1: virt-v2v-output-openstack.pod\n\t$(PODWRAPPER) \\\n\t  --pp \"$(PP_M4)\" \\\n\t  --no-strict-checks \\\n\t  --man $@ \\\n\t  $<\n\nvirt-v2v-in-place.1: virt-v2v-in-place.pod\n\t$(PODWRAPPER) \\\n\t  --pp \"$(PP_M4)\" \\\n\t  --no-strict-checks \\\n\t  --man $@ \\\n\t  $<\n\n# Default rule for files that don't need preprocessing\n%.1: %.pod\n\t$(PODWRAPPER) \\\n\t  --no-strict-checks \\\n\t  --man $@ \\\n\t  $<\n\n# Note: po4a puts the following junk at the top of every POD file it\n# generates:\n#  - a warning\n#  - a probably bogus =encoding line\n# Remove both.\n# XXX Fix po4a so it doesn't do this.\n%.pod: $(srcdir)/../$(LINGUA).po\n\t$(guestfs_am_v_po4a_translate)$(PO4A_TRANSLATE) \\\n\t  --no-deprecation \\\n\t  -o no-warn-simple \\\n\t  -f pod \\\n\t  -M utf-8 -L utf-8 \\\n\t  -k 0 \\\n\t  -m $(top_srcdir)/$(shell grep '/$(notdir $@)$$' $(top_srcdir)/po-docs/podfiles) \\\n\t  -p $< \\\n\t  -l $@\n\t  $(AM_V_at) $(SED) -i -e '0,/^=encoding/d' $@\n\n# XXX Can automake do this properly?\ninstall-data-hook:\n\t$(MKDIR_P) $(DESTDIR)$(mandir)/$(LINGUA)/man1\n\t$(INSTALL) -m 0644 $(srcdir)/*.1 $(DESTDIR)$(mandir)/$(LINGUA)/man1\n"
  },
  {
    "path": "po-docs/ml.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: ml\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/mr.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: mr\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/nl.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the libguestfs package.\n#\n# Translators:\n# Geert Warrink <geert.warrink@onsnet.nu>, 2011\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2015-02-21 10:33+0000\\n\"\n\"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\\n\"\n\"Language-Team: Dutch (http://www.transifex.com/projects/p/libguestfs/\"\n\"language/nl/)\\n\"\n\"Language: nl\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"NAAM\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"BESCHRIJVING\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"SYNOPSIS\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/or.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: or\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/pa.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: pa\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n > 1;\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/pl.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: pl\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 \"\n\"|| n%100>=20) ? 1 : 2;\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/podfiles",
    "content": "common/mlcustomize/customize-options.pod\ncommon/mlcustomize/customize-synopsis.pod\ncommon/mlcustomize/v2v-customize-options.pod\ncommon/mlcustomize/v2v-customize-synopsis.pod\ncommon/options/blocksize-option.pod\ncommon/options/key-option.pod\ncommon/options/keys-from-stdin-option.pod\ndocs/virt-v2v-hacking.pod\ndocs/virt-v2v-input-vmware.pod\ndocs/virt-v2v-input-xen.pod\ndocs/virt-v2v-output-local.pod\ndocs/virt-v2v-output-openstack.pod\ndocs/virt-v2v-output-ovirt.pod\ndocs/virt-v2v-release-notes-1.42.pod\ndocs/virt-v2v-release-notes-2.0.pod\ndocs/virt-v2v-release-notes-2.10.pod\ndocs/virt-v2v-release-notes-2.2.pod\ndocs/virt-v2v-release-notes-2.4.pod\ndocs/virt-v2v-release-notes-2.6.pod\ndocs/virt-v2v-release-notes-2.8.pod\ndocs/virt-v2v-support.pod\ndocs/virt-v2v.pod\nin-place/virt-v2v-in-place.pod\ninspector/virt-v2v-inspector.pod\nopen/virt-v2v-open.pod\n"
  },
  {
    "path": "po-docs/pt_BR.po",
    "content": "# Marco Aurélio Krause <ouesten@me.com>, 2015. #zanata\n# Rodrigo de Araujo Sousa Fonseca <rodrigodearaujo@fedoraproject.org>, 2017. #zanata\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2026-03-06 12:58+0000\\n\"\n\"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\\n\"\n\"Language-Team: Portuguese (Brazil) <https://translate.fedoraproject.org/\"\n\"projects/libguestfs/virt-v2v-docs-master/pt_BR/>\\n\"\n\"Language: pt_BR\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Weblate 5.16.1\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"comentário\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\"Arquivo gerado pelo libguestfs\\n\"\n\" AVISO: ESTE ARQUIVO FOI GERADO A PARTIR DOS SEGUINTES ARQUIVOS:\\n\"\n\"          generator/customize.ml\\n\"\n\"          e do código no subdiretório generator/.\\n\"\n\" QUALQUER ALTERAÇÃO FEITA NESTE ARQUIVO SERÁ PERDIDA.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Este programa é um software livre; você pode redistribuí-lo e/ou\\n\"\n\" modificá-lo sob os termos da Licença Pública Geral GNU, conforme\\n\"\n\" publicado pela Free Software Foundation, seja a versão 2 da Licença\\n\"\n\" ou (a seu critério) qualquer versão posterior.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Este programa é distribuído na esperança de que seja útil,\\n\"\n\" mas SEM QUALQUER GARANTIA; sem a garantia implícita de\\n\"\n\" COMERCIALIZAÇÃO OU ADEQUAÇÃO A UM DETERMINADO PROPÓSITO.\\n\"\n\" Veja a Licença Pública Geral GNU para obter mais detalhes.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Você deve ter recebido uma cópia da Licença Pública Geral GNU\\n\"\n\" junto com este programa. Se não, escreva para a Free Software\\n\"\n\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\\n\"\n\"\\n\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"B<--append-line> ARQUIVO:LINHA\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\"Acrescenta uma única linha de texto ao C<ARQUIVO>. Se o arquivo não terminar \"\n\"com uma nova linha, uma será adicionada antes da linha acrescentada. Uma \"\n\"nova linha também será adicionada automaticamente ao final da string \"\n\"C<LINHA>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"Por exemplo (presumindo aspas comuns no shell) este comando:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\"vai adicionar C<10.0.0.1 foo⏎> ou C<⏎10.0.0.1 foo⏎> para o arquivo, sendo \"\n\"que o último somente se o arquivo existente não já terminar com uma nova \"\n\"linha.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\"C<⏎> representa um caractere de nova linha, que é inferido observando o \"\n\"conteúdo existente do arquivo; portanto, este comando funciona corretamente \"\n\"para arquivos que usam finais de linha Unix ou Windows. Ele também funciona \"\n\"para arquivos vazios ou inexistentes.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"Para inserir várias linhas, use a mesma opção várias vezes:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"Para inserir uma linha em branco antes da linha anexada, faça:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"B<--chmod> PERMISSÕES:ARQUIVO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"Altera as permissões de C<ARQUIVO> para C<PERMISSÕES>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\"I<Note>: C<PERMISSÕES> por padrão seriam um decimal, a menos que você o \"\n\"prefixe com C<0> para obter um octal (isto é usar C<0700>, não C<700>).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"B<--chown> UID:GID:CAMINHO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\"Altera o ID de usuário e de dono de um arquivo ou diretório no convidado. \"\n\"Note:\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"*\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\"Somente UIDs e GIDs numéricos funcionarão, e estes podem não ser os mesmos \"\n\"dentro do convidado e no sistema operacional do host.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"Por exemplo:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"NOME\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"DESCRIÇÃO\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"VEJA TAMBÉM\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"SINOPSE\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\"B<Se os discos do convidado estão localizados em um dispositivo de bloco do \"\n\"host>, a conversão vai falhar. Veja L</Conversões de Xen ou SSH de \"\n\"dispositivos de bloco> abaixo para uma solução de contorno.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"Conversões de Xen ou SSH de dispositivos de bloco\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\n#, fuzzy\n#| msgid \"OUTPUT TO OVIRT\"\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"SAÍDA PARA OVIRT\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"SAÍDA PARA OVIRT\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"Documentação\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"Alan Alberghini\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"Cole Robinson\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"Fco. Javier F. Serrador\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"Ricky Tigg\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"Vadim Rozenfeld\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"Yuri Chornoivan\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"Copyright (C) 2006-2026 Red Hat Inc.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"virt-v2v-release-notes - Notas de lançamento do virt-v2v para 2.2\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"OPÇÕES\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"Exibir o número da versão e sai.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"Activar o rastreio de libguestfs chamadas de API.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"Veja também L</ Verificação de espaço livre mínimo no host> abaixo.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"Verificação de espaço livre mínimo no host\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/ru.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: ru\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && \"\n\"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/si.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 1.43.1\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2021-08-19 07:04+0000\\n\"\n\"Last-Translator: Hela Basa <r45xveza@pm.me>\\n\"\n\"Language-Team: Sinhala <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-docs-master/si/>\\n\"\n\"Language: si\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n > 1;\\n\"\n\"X-Generator: Weblate 4.7.2\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"නම\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/ta.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: ta\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/te.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.7.7\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: Automatically generated\\n\"\n\"Language-Team: none\\n\"\n\"Language: te\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/tg.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the libguestfs package.\n#\n# Translators:\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2015-02-21 10:34+0000\\n\"\n\"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\\n\"\n\"Language-Team: Tajik (http://www.transifex.com/projects/p/libguestfs/\"\n\"language/tg/)\\n\"\n\"Language: tg\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"шарҳ\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"*\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"Барои мисол:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"НОМ\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"ШАРҲ\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"МУАЛЛИФ\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"ҚАЙДҲО\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"1.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"2.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"3.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"4.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"МУАЛЛИФ\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"ё:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\n#, fuzzy\n#| msgid \"OUTPUT\"\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"БАРОРИШ\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\n#, fuzzy\n#| msgid \"OUTPUT\"\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"БАРОРИШ\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"НАМУНАҲО\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"ИМКОНОТҲО\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"2\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"ФАЙЛҲО\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/uk/Makefile.am",
    "content": "# libguestfs translations of man pages and POD files\n# Copyright (C) 2010-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Note that each Makefile.am in po-docs/$lang/Makefile.am should be\n# identical.  If you create a new $lang.po, create the $lang/\n# subdirectory and copy the Makefile.am from an existing language.\n# All the actual logic should be in language.mk.\n\ninclude $(srcdir)/../language.mk\n"
  },
  {
    "path": "po-docs/uk.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the libguestfs package.\n#\n# Translators:\n# Yuri Chornoivan <yurchor@ukr.net>, 2011-2014\n# Yuri Chornoivan <yurchor@ukr.net>, 2013\n# Yuri Chornoivan <yurchor@ukr.net>, 2011-2014.\n# Yuri Chornoivan <yurchor@ukr.net>, 2013, 2015.\n# Yuri Chornoivan <yurchor@ukr.net>, 2015. #zanata\n# Yuri Chornoivan <yurchor@ukr.net>, 2016. #zanata\n# Yuri Chornoivan <yurchor@ukr.net>, 2017. #zanata\n# Yuri Chornoivan <yurchor@ukr.net>, 2018. #zanata\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2026-02-19 19:39+0000\\n\"\n\"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\\n\"\n\"Language-Team: Ukrainian <https://translate.fedoraproject.org/projects/\"\n\"libguestfs/virt-v2v-docs-master/uk/>\\n\"\n\"Language: uk\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && \"\n\"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\\n\"\n\"X-Generator: Weblate 5.16\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"коментар\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" © Red Hat Inc., 2009–2025\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Ця програма є вільним програмним забезпеченням; ви можете поширювати та/або\\n\"\n\" змінювати її за умов дотримання GNU General Public License утому вигляді, що\\n\"\n\" оприлюднений Free Software Foundation; версії 2 цієї Ліцензії, або (якщо\\n\"\n\" забажаєте) будь-якої випущеної пізніше.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Ця програма поширюється у сподіванні, що вона буде корисною, але БЕЗ\\n\"\n\" БУДЬ-ЯКИХ ГАРАНТІЙНИХ ЗОБОВ’ЯЗАНЬ; навіть без очевидної гарантії\\n\"\n\" ПРАЦЕЗДАТНОСТІ або ПРИДАТНОСТІ ДЛЯ ВИКОРИСТАННЯ З ПЕВНОЮ МЕТОЮ. Докладніше\\n\"\n\" про це можна дізнатися з GNU General Public License.\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Ви маєте отримати копію GNU General Public License разом з цією програмою;\\n\"\n\" якщо це не так, повідомте про факт за адресою Free Software Foundation, Inc.,\\n\"\n\" Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\\n\"\n\"\\n\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"B<--append-line> ФАЙЛ:РЯДОК\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\"Дописати один рядок тексту до файла C<ФАЙЛ>. Якщо файл ще не завершується \"\n\"порожнім рядком, такий рядок буде додано перед дописаним. Крім того, \"\n\"автоматично буде дописано символ нового рядка наприкінці рядка C<РЯДОК>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\"Наприклад, (припускаємо, що у командній оболонці використовуються звичайні \"\n\"лапки) така команда:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\"додасть C<10.0.0.1 foo⏎> або C<⏎10.0.0.1 foo⏎> до файла; останній запис буде \"\n\"додано, лише якщо наявний файл ще не закінчується символом нового рядка.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\"C<⏎> позначає символ нового рядка, конкретне значення якого визначається за \"\n\"наявним вмістом файла, отже, команда обробляє файли однаково правильно для \"\n\"варіантів із завершеннями рядка у форматах  Unix і Windows. Це працює і для \"\n\"порожніх і ще не створених файлів.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\"Щоб додати декілька рядків, скористайтеся тим самим параметром декілька \"\n\"разів:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\"Щоб додати порожній рядок перед дописаним рядком, скористайтеся такою \"\n\"конструкцією:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"B<--chmod> ПРАВА_ДОСТУПУ:ФАЙЛ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"Змінити права доступу до файла C<ФАЙЛ> на C<ПРАВА_ДОСТУПУ>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\"I<Зауваження>: типово C<ПРАВА_ДОСТУПУ> записуються у десятковому форматі, \"\n\"якщо ви не додасте початковий C<0> , щоб вказати вісімкове число, тобто \"\n\"скористаєтеся C<0700>, а не C<700>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"B<--chown> UID:GID:ШЛЯХ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\"Змінити користувача і ідентифікатор групи власника для файла або каталогу у \"\n\"гостьовій системі. Зауваження:\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"*\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\"Можна використовувати лише числові ідентифікатори користувача і групи, ці \"\n\"ідентифікатори у гостьовій системі можуть не збігатися з ідентифікаторами в \"\n\"основній.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"Це не працюватиме у гостьових системах Windows.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"Приклад:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"Див. також I<--upload>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"B<--commands-from-file> НАЗВА_ФАЙЛА\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\"Прочитати команди налаштовування з файла, по одній (разом із аргументами) на \"\n\"рядок.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"Кожен рядок містить команду налаштовування та її аргументи, наприклад:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\" delete /якийсь/файл\\n\"\n\" install якийсь_пакунок\\n\"\n\" password якийсь-користувач:password:його-новий-пароль\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\"Порожні рядки ігноруються, а рядки, що починаються з C<#>, є коментарями і \"\n\"також ігноруються. Крім того, аргументи можна розділити на декілька рядків \"\n\"додаванням C<\\\\> (символу продовження) наприкінці рядка. Приклад:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\" edit /якийсь/файл:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\"Команди обробляються у тому самому порядку, у якому їх вказано у файлі, так, \"\n\"наче їх вказано як I<--delete /якийсь/файл> у рядку команди.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"B<--copy> ДЖЕРЕЛО:ПРИЗНАЧЕННЯ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"Копіювати файли або каталоги рекурсивно у межах гостьової системи.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"Не можна використовувати символи-замінники.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"B<--copy-in> ЛОКАЛЬНИЙ_ШЛЯХ:ВІДДАЛЕНИЙ_КАТАЛОГ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\"Скопіювати локальні файли або каталоги рекурсивно до образу диска, \"\n\"розташувавши його у каталозі C<ВІДДАЛЕНИЙ_КАТАЛОГ> (який має існувати).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"B<--delete> ШЛЯХ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\"Вилучити файл з гостьової системи. Або вилучити каталог (і увесь його вміст, \"\n\"рекурсивно).\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\"Ви можете скористатися символами-замінниками у вказаному шляху. Не забудьте \"\n\"екранувати символи-замінники у командній оболонці основної системи, якщо це \"\n\"потрібно. Приклад:\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"Див. також I<--upload>, I<--scrub>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"B<--edit> ФАЙЛ:ВИРАЗ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"Редагувати C<ФАЙЛ> з використанням виразу Perl C<ВИРАЗ>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\"Слід подбати про належне розставлення лапок у виразі, щоб запобігти його \"\n\"зміні у командній оболонці.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\"Зауважте, що цим параметром можна буде скористатися, лише якщо встановлено \"\n\"Perl 5.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"Див. L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"B<--firstboot> СКРИПТ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\"Встановити C<СКРИПТ> у гостьовій системі і запустити його під час першого \"\n\"завантаження гостьової системи (від імені root, у останній частині процесу \"\n\"завантаження).\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\"До скрипту, після встановлення до гостьової системи, буде автоматично \"\n\"застосовано команду chmod +x.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\"Альтернативна версія I<--firstboot-command> є такою самою, але зручно \"\n\"включає команду у однорядковому скрипті.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\"Можна вказати декілька параметрів I<--firstboot>. Їх буде виконано у тому \"\n\"самому порядку, у якому їх вказано у рядку команди.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\"Будь ласка, зверніться до розділу L<virt-builder(1)/СКРИПТИ ПЕРШОГО \"\n\"ЗАВАНТАЖЕННЯ>, щоб ознайомитися із відомостями щодо скриптів першого \"\n\"завантаження і проблемами у їх використанні.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"Див. також I<--run>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"B<--firstboot-command> 'КОМАНДА+ПАРАМЕТРИ'\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\"Виконати команду (разом із аргументами) у гостьовій системі під час першого \"\n\"завантаження гостьової системи (від імені root, у останній частині процесу \"\n\"завантаження).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"B<--firstboot-install> ПАКУНОК,ПАКУНОК..\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\"Встановити іменовані пакунки (список значень, відокремлених комами). Ці \"\n\"пакунки буде встановлено під час першого завантаження гостьової системи за \"\n\"допомогою програми для керування пакунків гостьової системи (наприклад, apt, \"\n\"yum тощо) і з'єднання із мережею гостьової системи.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\"Огляд різних способів встановлення пакунків наведено у розділі L<virt-\"\n\"builder(1)/ВСТАНОВЛЕННЯ ПАКУНКІВ>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"B<--hostname> НАЗВА_ВУЗЛА\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\"Встановити як назву вузла гостьової системи значення C<НАЗВА_ВУЗЛА>. Якщо \"\n\"потрібно, можете скористатися форматом із крапкою, \"\n\"«назва_вузла.назва_домену» (FQDN).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"B<--inject-blnsvr> МЕТОД\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\"Вставити Balloon Server (F<blnsvr.exe>) до гостьової системи Windows. У \"\n\"результаті цієї дії також буде вставлено скрипт першого завантаження, щоб \"\n\"Balloon Server було встановлено при завантаженні гостьової системи.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"Параметр збігається із використаним у дії I<--inject-virtio-win>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\"Зауважте, що для виконання повного перетворення гостьової системи Windows зі \"\n\"стороннього гіпервізора, подібного до VMware (що потребує виконання багатьох \"\n\"інших дій), вам слід скористатися замість цього інструментом L<virt-v2v(1)>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"B<--inject-qemu-ga> МЕТОД\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\"Зауважте, що для повного перетворення гостьової системи Windows зі \"\n\"стороннього гіпервізора, подібного до VMware (що потребує багатьох інших \"\n\"дій) вам слід скористатися замість цього інструментом L<virt-v2v(1)>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"B<--inject-virtio-win> МЕТОД\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\"Вставити драйвери virtio-win до гостьової системи Windows. Ці драйвери \"\n\"додають прискорені драйвери virtio придатні при запуску на основі \"\n\"гіпервізора, у якому передбачено підтримку virtio (зокрема qemu/KVM). У \"\n\"результаті дії буде також скориговано регістр Windows, щоб драйвери було \"\n\"встановлено при завантаженні гостьової системи.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"Можливі значення параметра:\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"ISO\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\"Шлях до образу ISO, що містить драйвери virtio-win (наприклад F</usr/share/\"\n\"virtio-win/virtio-win.iso>).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"КАТ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\"Каталог, де зберігаються розпаковані драйвери virtio-win (наприклад F</usr/\"\n\"share/virtio-win>).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"B<--install> ПАКУНОК,ПАКУНОК..\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\"Встановити іменовані пакунки (список значень, відокремлених комами). Ці \"\n\"пакунки буде встановлено під час збирання образу за допомогою програми для \"\n\"керування пакунків гостьової системи (наприклад, apt, yum тощо) і з'єднання \"\n\"із мережею основної системи.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"Див. також I<--update>, I<--uninstall>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"B<--link> ПРИЗНАЧЕННЯ:ПОСИЛАННЯ[:ПОСИЛАННЯ..]\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\"Створити символічне посилання або декілька посилань у гостьовій системі так, \"\n\"щоб вони з C<ПОСИЛАННЯ> вказували на C<ПРИЗНАЧЕННЯ>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"B<--mkdir> КАТАЛОГ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"Створити каталог у гостьовій системі.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\"Використовується S<C<mkdir -p>>, отже буде створено усі проміжні каталоги. \"\n\"Також команда працює, якщо каталог вже існує.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"B<--move> ДЖЕРЕЛО:ПРИЗНАЧЕННЯ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"Пересунути файли або каталоги у межах гостьової системи.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"B<--no-logfile>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\"Витерти C<builder.log> (файл журналу із командами збирання) з образу після \"\n\"завершення збирання. Якщо ви не хочете явним чином показувати, як було \"\n\"зібрано образ, скористайтеся цим параметром.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"Див. також L</LOG FILE>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"B<--no-selinux-relabel>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"Не намагатися виправити мітки SELinux файлів у гостьовій системі.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\"У гостьових системах, де передбачено підтримку SELinux, під час \"\n\"налаштовування буде автоматично змінено мітки файлів так, щоб вони мали \"\n\"належні мітки SELinux. Зміну міток буде виконано негайно, але якщо цього \"\n\"зробити не вдасться, вона змінить часову мітку файла F</.autorelabel> на \"\n\"образі, щоб дію зі зміни міток було заплановано на наступне завантаження \"\n\"образу. Цей параметр вимикає автоматичну зміну міток.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\"Параметр ні на що не вплине у гостьових системах, де не передбачено \"\n\"підтримки SELinux.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"B<--password> КОРИСТУВАЧ:ВАРІАНТ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\"Встановити пароль для користувача C<КОРИСТУВАЧ>. (Зауважте, що за допомогою \"\n\"цього параметра I<не можна> створювати облікові записи користувачів.)\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\"Формат поля C<ВАРІАНТ> та способи налаштовування облікових записів \"\n\"користувачів описано у розділі L<virt-builder(1)/КОРИСТУВАЧІ І ПАРОЛІ>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"B<--password-crypto> md5|sha256|sha512\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\"Якщо змінюється чи встановлюється пароль для гостьової системи, за допомогою \"\n\"цього параметра можна встановити шифрування для цього пароля у значення \"\n\"C<md5>, C<sha256> або C<sha512>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\"Для використання значень C<sha256> та C<sha512> має бути встановлено glibc \"\n\"E<ge> 2.7 (перевірте у crypt(3) всередині гостьової системи).\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\"C<md5> працюватиме з відносно давніми гостьовими системами Linux \"\n\"(наприкладRHEL 3), але є незахищеним щодо новітніх способів атак.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\"Типовим способом шифрування є C<sha512>. Він використовується, якщо \"\n\"libguestfs вдасться виявити у гостьовій системі підтримку SHA-512. Якщо \"\n\"такої підтримки не буде виявлено, використовуватиметься C<md5>. За допомогою \"\n\"цього параметра ви можете перевизначити автоматично визначений libguestfs \"\n\"спосіб шифрування.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\"Зауважте, що це не змінить типового шифрування, яке використовується \"\n\"гостьовою системою, коли ви створюєте у ній нові облікові записи \"\n\"користувачів. Якщо ви хочете змінити це шифрування, вам слід скористатися \"\n\"параметром I<--edit> для внесення змін до C</etc/sysconfig/authconfig> \"\n\"(Fedora, RHEL) або C</etc/pam.d/common-password> (Debian, Ubuntu).\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"B<--root-password> ВАРІАНТ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"Встановити пароль користувача root.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\"Зауваження: якщо у virt-builder ви I<не встановите> I<--root-password>, для \"\n\"гостьової системи буде використано I<випадковий> пароль root.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"B<--run> СКРИПТ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\"Виконати скрипт оболонки (або будь-яку програму), яка називається C<СКРИПТ> \"\n\"у образі диска. Скрипт буде запущено у віртуалізованому режимі у малій \"\n\"допоміжній системі, у пісочниці гостьової файлової системи.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"Для скрипту буде автоматично використано команду chmod +x.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\"Якщо у libguestfs передбачено підтримку цього, буде доступним обмежене \"\n\"мережеве з'єднання, але лише для вихідних з'єднань. Ви також можете долучати \"\n\"диски з даними (наприклад, файли ISO), як ще один спосіб надання даних \"\n\"(наприклад, пакунків із програмним забезпеченням) для скрипту без потреби у \"\n\"з'єднанні із мережею (I<--attach>). Також ви можете вивантажувати файли з \"\n\"даними (I<--upload>).\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\"Можна вказати декілька параметрів I<--run>. Їх буде виконано у тому самому \"\n\"порядку, у якому їх вказано у рядку команди.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"Див. також I<--firstboot>, I<--attach>, I<--upload>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"B<--run-command> 'КОМАНДА+ПАРАМЕТРИ'\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\"Виконати команду із аргументами у образі диска. Команду буде виконано у \"\n\"віртуалізованому режимі у малій допоміжній системі, у пісочниці гостьової \"\n\"файлової системи.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\"Можна вказати декілька параметрів I<--run-command>. Їх буде виконано у тому \"\n\"самому порядку, у якому їх вказано у рядку команди.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"B<--scrub> ФАЙЛ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\"Витерти файл з гостьової системи. Подібне до I<--delete>, окрім того, що:\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"Витирає дані так, що їх не можна буде відновити з гостьової системи.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"Не може вилучати каталоги, лише звичайні файли.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"B<--selinux-relabel>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"Це параметр, який залишено для сумісності. Він ні на що не впливає.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"B<--ssh-inject> КОРИСТУВАЧ[:ВАРІАНТ]\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\"Вставити ключ ssh так, щоб вказаний C<КОРИСТУВАЧ> зміг увійти до системи з \"\n\"використанням ssh без потреби у визначенні пароля. Запис користувача \"\n\"C<КОРИСТУВАЧ> має вже існувати у гостьовій системі.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"Формат поля C<ВАРІАНТ> описано у розділі L<virt-builder(1)/КЛЮЧІ SSH>.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\"Ви можете додати декілька параметрів I<--ssh-inject> для різних \"\n\"користувачів, а також для додавання декількох ключів для кожного з \"\n\"користувачів.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"B<--tar-in> ФАЙЛ-TAR:ВІДДАЛЕНИЙ-КАТАЛОГ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\"Скопіювати локальні файли або каталоги з локального файла tar із назвою \"\n\"C<ФАЙЛ-TAR> рекурсивно до образу диска, розташувавши його у каталозі \"\n\"C<ВІДДАЛЕНИЙ_КАТАЛОГ> (який має існувати). Зауважте, що файл tar має бути не \"\n\"стиснуто (файли F<.tar.gz> не працюватимуть)\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"B<--timezone> ЧАСОВИЙ_ПОЯС\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\"Встановити типовий часовий пояс гостьової системи у значення \"\n\"C<ЧАСОВИЙ_ПОЯС>. Скористайтеся рядком місця у форматі C<Europe/London>\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"B<--touch> ФАЙЛ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"Ця команда виконує подібну до L<touch(1)> дію над файлом C<ФАЙЛ>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"B<--truncate> ФАЙЛ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\"Ця команда обрізає файл C<ФАЙЛ> до нульової довжини. Для її успішного \"\n\"виконання файл має існувати.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"B<--truncate-recursive> ШЛЯХ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\"Ця команда рекурсивно обрізає усі файли у каталозі C<ШЛЯХ> до нульової \"\n\"довжини.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"B<--uninstall> ПАКУНОК,ПАКУНОК..\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\"Вилучити іменовані пакунки (список значень, відокремлених комами). Ці \"\n\"пакунки буде вилучено під час збирання образу за допомогою програми для \"\n\"керування пакунків гостьової системи (наприклад, apt, yum тощо). З метою \"\n\"виконання запиту також може бути вилучено пакунки, залежні від вилучених \"\n\"пакунків.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"Див. також I<--install>, I<--update>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"B<--update>\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\"Виконує еквівалент C<yum update>, C<apt-get upgrade> або якоїсь іншої \"\n\"команди, яка потрібна для оновлення пакунків, які вже встановлено у шаблоні, \"\n\"до найсвіжіших версій.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"Див. також I<--install>, I<--uninstall>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"B<--upload> ФАЙЛ:ПРИЗНАЧЕННЯ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\"Вивантажити локальний файл C<ФАЙЛ> до призначення C<ПРИЗНАЧЕННЯ> на образі \"\n\"диска. Буде збережено власника і права доступу, отже вам слід вказати такі \"\n\"значення для цих параметрів, які мають бути на остаточному образі диска.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\"Значенням параметра C<ПРИЗНАЧЕННЯ> може бути назва остаточного файла. Цим \"\n\"можна скористатися для перейменовування файла під час вивантаження.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\"Якщо значенням параметра C<ПРИЗНАЧЕННЯ> є назва каталогу (який вже має \"\n\"існувати у гостьовій системі), файл буде вивантажено до вказаного каталогу, \"\n\"назву файла з локальної файлової системи буде збережено.\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"Див. також I<--mkdir>, I<--delete>, I<--scrub>.\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"B<--write> ФАЙЛ:ДАНІ\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"Записати C<ДАНІ> до файла C<ФАЙЛ>.\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"B<--blocksize=512>\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"B<--blocksize=4096>\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"B<--blocksize>\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\"Цей параметр встановлює розмір сектора образу диска. Ви стосується усіх \"\n\"явним чином доданих після цього параметра дисків. Використання I<--\"\n\"blocksize> без аргументів перемикає розмір сектора диска на типове значення, \"\n\"яким, зазвичай, є 512 байтів. Див. також L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"B<--key> ВАРІАНТ\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\"Вказати ключ для LUKS для автоматичного відкриття пристрою LUKS при \"\n\"використанні інспектування.\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"B<--key> НАЗВАB<:key:>РЯДОК_КЛЮЧА\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"B<--key> UUIDB<:key:>РЯДОК_КЛЮЧА\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"B<--key> B<all:key:>РЯДОК_КЛЮЧА\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\"C<НАЗВА> є назвою пристрою у libguestfs (наприклад C</dev/sda1>). C<UUID> — \"\n\"UUID пристрою. C<all> означає «спробувати ключ для шифрованого пристрою».\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"Використовувати вказаний C<РЯДОК_КЛЮЧА> як пароль.\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"B<--key> НАЗВАB<:file:>НАЗВА-ФАЙЛА\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"B<--key> UUIDB<:file:>НАЗВА-ФАЙЛА\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"B<--key> B<all:file:>НАЗВА-ФАЙЛА\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"Прочитати пароль з файла F<НАЗВА_ФАЙЛА>.\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"B<--key> НАЗВАB<:clevis>\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"B<--key> UUIDB<:clevis>\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"B<--key> B<all:clevis>\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\"Спробувати розблокувати пристрій без пароля за допомогою Clevis, з мережі. \"\n\"Будь ласка, зверніться до розділу L<guestfs(3)/ШИФРОВАНІ ДИСКИ>. щоб \"\n\"дізнатися більше про пов'язане з мережею шифрування дисків (NBDE).\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\"Зауважте, що якщо у рядку команди буде будь-який з цих параметрів, буде \"\n\"автоматично увімкнено роботу у мережі QEMU для користувача для екземпляра \"\n\"libguestfs.\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"B<--keys-from-stdin>\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\"Прочитати параметри ключа або пароля із джерела стандартного введення. \"\n\"Типово програма намагається читати паролі від користувача відкриттям F</dev/\"\n\"tty>.\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\"Якщо зашифрованих пристроїв декілька, вам слід вказати декілька ключів у \"\n\"stdin, по одному у рядку.\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"НАЗВА\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"virt-v2v-hacking -\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"ОПИС\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\"Спочатку трохи історії. Протягом свого існування програма virt-v2v зазнала \"\n\"принаймні двох повних переписувань, тому поточна версія є принаймні третьою \"\n\"(ми не маємо планів переписувати її ще раз). Попередню версію було написано \"\n\"мовою Perl. Її код і досі зберігається тут: L<https://git.fedorahosted.org/\"\n\"git/virt-v2v.git>\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\"Поточну версію було започатковано як майже порядково переписану з Perl на \"\n\"OCaml + C, і вона все ще зберігає повністю подібну структуру. Тому, якщо ви \"\n\"не розумієте якихось подробиць щодо коду (особливо подробиць щодо \"\n\"перетворення гостьових систем), вам може допомогти читання коду мовою Perl.\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"Ось файли, з яких варто розпочати читання цього коду:\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"F<types.mli>\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"F<v2v.ml>\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\"У F<types.mli> визначаються усі структури, які використовуються і \"\n\"передаються під час обміну даними між різними частинами програми. У \"\n\"F<v2v.ml> реалізовано керування роботою програми на різних етапах.\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\"Після вивчення цих файлів ви можете перейти до вивчення модулів вхідних \"\n\"даних (F<input_*>), модулів вихідних даних (F<output_*>) або модулів \"\n\"перетворення (F<convert_*>). Модулі вхідних і вихідних даних визначають \"\n\"перелік варіантів для параметрів I<-i> та I<-o> (див. підручник). Модулі \"\n\"перетворення визначають, із якими типами гостьових систем ми можемо \"\n\"працювати і які конкретно кроки слід виконати для їхнього перетворення.\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\"Усі інші файли у цьому каталозі є певним чином супровідними модулями або \"\n\"бібліотеками. Частину коду написано мовою C, особливо там, де ми хотіли \"\n\"використати зовнішні бібліотеки C, зокрема libxml2.\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"ТАКОЖ ПЕРЕГЛЯНЬТЕ\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"АВТОРИ\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"Richard W.M. Jones\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"АВТОРСЬКІ ПРАВА\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\n#, fuzzy\n#| msgid \"Copyright (C) 2009-2020 Red Hat Inc.\"\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"© Red Hat Inc., 2009–2020\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\"virt-v2v-input-vmware — використання virt-v2v для перетворення гостьових \"\n\"систем з VMware\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"КОРОТКИЙ ОПИС\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -i vmx ГОСТЬОВА_СИСТЕМА.vmx [-o* параметри]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip файл_пароля\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* параметри]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" virt-v2v\\n\"\n#| \"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n#| \"    -it vddk\\n\"\n#| \"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n#| \"    -io vddk-thumbprint=xx:xx:xx:...\\n\"\n#| \"    \\\"GUEST NAME\\\"\\n\"\n#| \"    [-o* options]\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    -io vddk-thumbprint=xx:xx:xx:...\\n\"\n\"    \\\"НАЗВА ГОСТЬОВОЇ СИСТЕМИ\\\"\\n\"\n\"    [-o* параметри]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -i ova ДИСК.ova [-o* параметри]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip файл-паролів\\n\"\n\"    \\\"НАЗВА ГОСТЬОВОЇ СИСТЕМИ\\\" [-o* параметри]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\"На цій сторінці наведено документацію щодо використання L<virt-v2v(1)> для \"\n\"перетворення гостьових систем, які походять з VMware. Загалом, на сьогодні \"\n\"існує п'ять різних методів доступу до даних гостьових систем VMware:\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"B<-i vmx> GUESTB<.vmx>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"Повна документація: L</ВХІДНІ ДАНІ З VMX VMWARE>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\"Якщо у вас є файл F<GUEST.vmx> і один або декілька файлів образів дисків \"\n\"F<GUEST.vmdk> або якщо ви можете монтувати за допомогою NFS сховище даних \"\n\"VMware, ви можете скористатися методом I<-i vmx> для читання даних \"\n\"початкової гостьової системи.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"B<-i vmx> B<-it ssh> ssh://...\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\"Те саме, що і описаний вище метод, але використовується з'єднання SSH із \"\n\"ESXi для читання файла F<GUEST.vmx> і пов'язаних із ним дисків. Це потребує \"\n\"вмикання доступу за допомогою SSH до гіпервізора ESXi VMware — за типових \"\n\"налаштувань цей доступ вимкнено.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\"Цей канал передавання даних є несумісним із гостьовими системами, для яких \"\n\"передбачено знімки; див. L</НОТАТКИ>.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"B<-ic vpx://...> B<-it vddk>\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"B<-ic esx://...> B<-it vddk>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"Повна документація: L</ВХІДНІ ДАНІ З VDDK>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\"У цьому методі для доступу до сервера vCenter VMware або гіпервізора ESXi \"\n\"VMware використовується закрита бібліотека VDDK (або VixDiskLib).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\"Якщо у вас є ця бібліотека із закритим кодом, цей метод, зазвичай, є \"\n\"найшвидшим і найгнучкішим. Якщо у вас немає доступу до цього закритого \"\n\"програмного забезпечення або ви не хочете ним користуватися, найліпші \"\n\"результати можна отримати за допомогою описаних вище методів із VMX або SSH.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"B<-i ova> DISKB<.ova>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"Повна документація: L</ВХІДНІ ДАНІ З OVA VMWARE>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\"Використовуючи цей метод, ви маєте спочатку експортувати гостьову систему \"\n\"(наприклад з vSphere) у форматі файла F<.ova>, який virt-v2v потім зможе \"\n\"прочитати безпосередньо. Зауважте, що цей метод працює лише з файлами, які \"\n\"експортовано з VMware, а не файлами OVA, які походять із інших гіпервізорів \"\n\"або систем керування, оскільки OVA лише приблизно дотримується стандартів і \"\n\"не є сумісним і придатним до безпроблемного використання на продуктах інших \"\n\"виробників програмного забезпечення.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"B<-ic vpx://...> \\\"НАЗВА ГОСТЬОВОЇ СИСТЕМИ\\\"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"Повна документація: L</ВХІДНІ ДАНІ З СЕРВЕРА VCENTER VMWARE>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\"Якщо ви не можете скористатися жодним із описаних вище методів, \"\n\"скористайтеся цим методом для імпортування гостьової системи із vCenter \"\n\"VMware. Це найповільніший метод.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"ПРИМІТКИ\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\"Якщо доступ до файла F<I<гостьова_система>.vmx> на ESXi здійснюєються через \"\n\"з’єднання SSH (тобто при використанні параметрів I<-i vmx> I<-it ssh>), \"\n\"перетворення не працюватиме, якщо гостьова система має знімки (файли під \"\n\"назвою F<I<guest>-000001.vmdk> тощо). Або згорніть знімки для гостьової \"\n\"системи і повторіть перетворення з тими самими параметрами I<-i vmx> I<-it \"\n\"ssh>, або залиште знімки без змін і використовуйте канал передавання даних, \"\n\"відмінний від SSH: просто I<-i vmx>, або I<-ic vpx://...> I<-it vddk> або I<-\"\n\"ic esx://...> I<-it vddk>. Зверніться до звіту L<https://bugzilla.redhat.com/\"\n\"1774386>.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"ВХІДНІ ДАНІ З VMX VMWARE\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"Virt-v2v також може імпортувати гостьові системи з файлів vmx VMware.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"Це корисно у двох випадках:\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"1.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\"Віртуальні машини VMware зберігаються на окремому сервері NFS і ви можете \"\n\"монтувати сховище NFS безпосередньо.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"2.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\"Вами уможливлено доступ SSH до гіпервізору ESXi VMware ESXi і у вас є тека \"\n\"C</vmfs/volumes>, яка містить віртуальні машини.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\"Якщо вами виявлено теку або файли із назвами F<I<гостьова_система>.vmx>, \"\n\"F<I<гостьова_система>.vmxf>, F<I<гостьова_система>.nvram> і один або \"\n\"декілька образів дисків F<.vmdk>, ви можете скористатися цим методом. \"\n\"Каналом передавання даних SSH не можна буде скористатися, якщо гостьова \"\n\"система має знімки; зверніться до розділу L</НОТАТКИ>.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"VMX: Гостьову систему слід вимкнути\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\n#, fuzzy\n#| msgid \"\"\n#| \"B<The guest must be shut down before conversion starts>.  If you don't \"\n#| \"shut it down, you will end up with a corrupted VM disk on the target.  \"\n#| \"With other methods, virt-v2v tries to prevent concurrent access, but \"\n#| \"because the I<-i vmx> method works directly against the storage, checking \"\n#| \"for concurrent access is not possible.\"\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\"B<Перш ніж буде розпочато перетворення, роботу гостьової системи слід \"\n\"зупинити>. Якщо ви не вимкнете гостьову систему, результатом буде \"\n\"пошкоджений диск віртуальної машини у гіпервізорі призначення. За допомогою \"\n\"інших методів virt-v2v намагається запобігти конкурентному доступу до даних, \"\n\"але оскільки метод I<-i vmx> працює безпосередньо зі сховищем даних, \"\n\"перевірка конкурентного доступу неможлива.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"VMX: Доступ до сховища, у якому містяться файли VMX і VMDK\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\"Якщо файли vmx і vmdk не доступні локально, вам слід I<або> змонтувати \"\n\"сховище даних NFS на сервері перетворення I<або> уможливити безпарольний \"\n\"доступ SSH на гіпервізорі ESXi.\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"VMX: Розпізнавання за допомогою SSH\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\"Ви можете скористатися розпізнаванням за допомогою SSH за паролем, вказавши \"\n\"назву файла, який містить пароль, як аргумент параметра I<-ip> (зауважте, що \"\n\"цей параметр I<не> приймає пароль безпосередньо). Вам слід скоригувати F</\"\n\"etc/ssh/sshd_config> на сервері VMware, встановивши C<PasswordAuthentication \"\n\"yes>.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\"Якщо ви не використовуєте розпізнавання за паролем, альтернативою є \"\n\"використання ssh-agent і додавання вашого відкритого ключа ssh до F</etc/ssh/\"\n\"keys-root/authorized_keys> (у гіпервізорі ESXi). Після виконання цих дій вам \"\n\"слід перевірити, чи працює доступ без пароля з сервера virt-v2v до \"\n\"гіпервізора ESXi. Приклад:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ журналювання безпосередньо до оболонки, пароль не потрібен ]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\"Зауважте, що підтримка неінтерактивного розпізнавання за допомогою параметра \"\n\"I<-ip> є неповною. Деякі дії все ще вимагають від користувача введення \"\n\"пароля вручну. Тому рекомендуємо скористатися ssh-agent замість параметра I<-\"\n\"ip>. Див. L<https://bugzilla.redhat.com/1854275>.\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"VMX: побудова адреси SSH\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\"При використанні вхідного каналу передавання даних SSH вам слід вказати \"\n\"віддалену адресу C<ssh://...>, яка вказуватиме на файл VMX. Типова адреса \"\n\"виглядає так:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\"Ім'я користувача можна не вказувати, якщо воно збігається із назвою вашого \"\n\"локального облікового запису користувача.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\"Крім того, ви можете вказати номер порту після назви вузла, якщо сервер SSH \"\n\"працює на нетиповому порту (не на порту 22).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\"Щоб визначити компонент шляху адреси, увійдіть на сервер ESXi за допомогою \"\n\"SSH інтерактивно і визначте абсолютний шлях до файла VMX на сервері ESXi, \"\n\"приклад:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\"Згодом у командному рядку virt-v2v L<закодуйте з використанням відсоток-\"\n\"кодування будь-які зарезервовані символи|https://en.wikipedia.org/wiki/\"\n\"Percent-encoding#Reserved_characters>, які ви знайдете в окремих компонентах \"\n\"шляху. Наприклад, слід вказувати як C<%20>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"Див. L<https://bugzilla.redhat.com/1938954>.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"VMX: Імпортування гостьової системи\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\"Щоб імпортувати файл vmx з локального файла або NFS, віддайте таку команду:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\"Щоб імпортувати файл vmx за допомогою SSH, додайте I<-it ssh>, щоб вибрати \"\n\"канал передавання даних SSH і вказати віддалену адресу SSH:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\"Virt-v2v обробляє файл vmx і використовує отримані дані для встановлення \"\n\"розташування усіх дисків vmdk.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"ВХІДНІ ДАНІ З VDDK\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\"Virt-v2v може імпортувати гостьові системи за допомогою пропрієтарної \"\n\"бібліотеки VDDK (або VixDiskLib) VMware.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"VDDK: Попередні вимоги\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\"Оскільки бібліотека VDDK не є вільним програмним забезпеченням, а умови \"\n\"ліцензування на бібліотеку не дозволяють її повторного розповсюдження або \"\n\"комерційного використання, вам доведеться отримати VDDK самостійно і \"\n\"переконатися, що її використання не порушує умов ліцензування.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\"Рекомендуємо скористатися nbdkit E<ge> 1.6, оскільки ці версії постачаються \"\n\"із безумовно увімкненим додатком VDDK.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"3.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\"Імпортування VDDK потребує можливості, яку було додано у libvirt E<ge> 3.7.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"4.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"Сервер VMware не повинен перебувати у режимі супроводу.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"VDDK: Обмеження пам'яті для служби NFC ESXi\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\"У докладному журналі буде наведено повідомлення щодо помилок, подібні до \"\n\"такого:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\"Така ситуація є типовою, якщо із сервером VMware відкрито декілька \"\n\"паралельних з'єднань.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\"Такі з'єднання можуть призвести до перевищення обмежень на використання \"\n\"ресурсів, встановлених на сервері VMware. Ви можете зменшити строгість \"\n\"обмежень для служби NFC редагуванням файла F</etc/vmware/hostd/config.xml>, \"\n\"змінивши у ньому значення параметра C<E<lt>maxMemoryE<gt>>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"із наступним перезапуском служби C<hostd>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\"Докладніший опис можна знайти тут: L<https://bugzilla.redhat.com/1614276>.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"Якщо ви бачите повідомлення про помилку, подібне до такого:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\"тоді причиною є вада у VDDK E<le> 6.7. Пропонуємо позбутися її встановленням \"\n\"найсвіжішої версії VDDK. Див. також L<https://bugzilla.redhat.com/1684075>\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"VDDK: АДРЕСА\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\"Побудуйте правильну адресу C<vpx://> (для vCenter) або C<esx://> (для ESXi). \"\n\"Вона виглядає якось так:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\"Щоб перевірити, що у вас правильна адреса, скористайтеся командою \"\n\"L<virsh(1)> для отримання списку гостьових систем на сервері vCenter, ось \"\n\"так:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Введіть пароль root до vcenter.example.com: ***\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\"Якщо ви отримуєте повідомлення про помилку «Сертифікат вузла не може бути \"\n\"уповноважено за допомогою вказаних сертифікатів CA» або подібне, ви можете \"\n\"або імпортувати сертифікат вузла vCenter, або обійти перевірку підписів \"\n\"додаванням прапорця C<?no_verify=1>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\"Крім того, вам слід спробувати створити дамп метаданих з будь-якої гостьової \"\n\"системи на вашому сервері, ось так:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\"Якщо у метаданих немає C<E<lt>vmware:morefE<gt>>, вам слід оновити libvirt.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\"B<Якщо наведені вище команди не дають бажаного результату, virt-v2v також не \"\n\"працюватиме>.  Перш ніж продовжувати, виправте вашу адресу і/або сервера \"\n\"vCenter VMware.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"VDDK: Імпортування гостьової системи\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\"Параметр I<-it vddk> визначає VDDK як вхідний канал передавання даних для \"\n\"дисків.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\n#, fuzzy\n#| msgid \"\"\n#| \"To import a particular guest from vCenter server or ESXi hypervisor, use \"\n#| \"a command like the following, substituting the URI, guest name and SSL \"\n#| \"thumbprint:\"\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\"Щоб імпортувати певну гостьову систему з сервера vCenter або гіпервізору \"\n\"ESXi, скористайтеся командою, подібною до наведеної нижче, замінивши адресу, \"\n\"назву гостьової системи та відбиток SSL:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" $ virt-v2v \\\\\\n\"\n#| \"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n#| \"     -it vddk \\\\\\n\"\n#| \"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n#| \"     -io vddk-thumbprint=xx:xx:xx:... \\\\\\n\"\n#| \"     \\\"Windows 2003\\\" \\\\\\n\"\n#| \"     -o local -os /var/tmp\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     -io vddk-thumbprint=xx:xx:xx:... \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\n#, fuzzy\n#| msgid \"\"\n#| \"Other options that you might need to add in rare circumstances include I<-\"\n#| \"io vddk-config>, I<-io vddk-cookie>, I<-io vddk-nfchostport>, I<-io vddk-\"\n#| \"port>, I<-io vddk-snapshot>, and I<-io vddk-transports>, which are all \"\n#| \"explained in the L<nbdkit-vddk-plugin(1)> documentation.  Do not use \"\n#| \"these options unless you know what you are doing.\"\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\"Серед інших параметрів, які можуть знадобитися вам у рідкісних випадках, I<-\"\n\"io vddk-config>, I<-io vddk-cookie>, I<-io vddk-nfchostport>, I<-io vddk-\"\n\"port>, I<-io vddk-snapshot> та I<-io vddk-transports>. Опис усіх цих \"\n\"параметрів можна знайти у документації до L<nbdkit-vddk-plugin(1)>. Не \"\n\"використовуйте ці параметри, якщо не впевнені у результатах їхнього \"\n\"застосування.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\n#, fuzzy\n#| msgid \"VDDK: Importing a guest\"\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"VDDK: Імпортування гостьової системи\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"VDDK: Діагностування помилок VDDK\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\"З бібліотекою VDDK можна працювати у режимі докладних повідомлень, у якому \"\n\"бібліотека (дуже) докладно повідомляє про свої дії. Скористайтеся командою \"\n\"«virt-v2v -v -x» у звичний спосіб, щоб увімкнути режим докладних повідомлень.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"VDDK: повільне імпортування і повторювані повідомлення NBD_ClientOpen\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\"Якщо імпортування за допомогою VDDK є повільними, а у відповідь на «virt-v2v \"\n\"-v -x» система показує багато повідомлень C<NBD_ClientOpen>, ви зіткнулися \"\n\"із видимою вадою у S<VDDK 6.7> (https://bugzilla.redhat.com/1901489). \"\n\"Оновлення до S<VDDK 7> має усунути причину вади.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"ВХІДНІ ДАНІ З OVA VMWARE\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\"Virt-v2v може імпортувати гостьові системи з файлів OVA (Open Virtualization \"\n\"Appliance) VMware. Програма може працювати лише з файлами OVA, які \"\n\"експортовано з vSphere VMware.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"OVA: Створення OVA\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\"Щоб створити OVA у vSphere, скористайтеся параметром «Export OVF Template» \"\n\"(з контекстного меню віртуальної машини або з меню «File»). Можна вибрати \"\n\"варіант «Folder of files» (OVF) або «Single file» (OVA), втім, працювати з \"\n\"OVA, ймовірно простіше. Файли OVA є просто стиснутими файлами tar, тому ви \"\n\"можете користуватися командами, подібними до C<tar tf VM.ova>, для перегляду \"\n\"їхнього вмісту.\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"Створення OVA за допомогою ovftool\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\"Ви також можете скористатися пропрієтарною програмою C<ovftool> з VMware:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://КОРИСТУВАЧ:ПАРОЛЬ@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"Для встановлення з'єднання із vCenter:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://КОРИСТУВАЧ:ПАРОЛЬ@vcenter.example.com/НАЗВА-ДАТАЦЕНТРУ/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\"Для проходження розпізнавання Active Directory з використанням назв записів \"\n\"нижнього рівня (C<ДОМЕН\\\\КОРИСТУВАЧ>) вам слід замінити символ C<\\\\> його \"\n\"шістнадцятковим кодом у ascii — (C<%5c>):\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\" vi://ДОМЕН%5cКОРИСТУВАЧ:ПАРОЛЬ@...\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"OVA: Імпортування гостьової системи\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"Щоб імпортувати файл OVA із назвою F<VM.ova>, віддайте таку команду:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\"Якщо ви експортували гостьову систему як «Folder of files» (теку з файлами), \"\n\"I<або> якщо ви розпакували власноруч архів tar OVA, ви можете вказати virt-\"\n\"v2v каталог, у якому містяться файли:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v -i ova /шлях/до/файлів -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\n#, fuzzy\n#| msgid \"OVA: Permissions issues with oVirt/RHV import\"\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"OVA: вади з правами доступу при імпортуванні oVirt/RHV\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\n#, fuzzy\n#| msgid \"\"\n#| \"oVirt/RHV provides a graphical user interface for importing from OVA \"\n#| \"files which uses this method.  It requires that RHV is able to access the \"\n#| \"OVA file which can be a problem if the file is owned by root (RHV runs as \"\n#| \"a non-root user).\"\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\"У oVirt/RHV передбачено графічний інтерфейс користувача для імпортування з \"\n\"файлів OVA, який використовує цей метод. Він потребує, щоб RHV могла \"\n\"отримувати доступ до файла OVA, що може бути проблемою, якщо власником файла \"\n\"є root (RHV запускається не від імені користувача root).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\"Пропонованим обхідним маневром є копіювання OVA до загальнодоступного \"\n\"каталогу, зокрема F</var/tmp>, до виконання імпортування і, можливо, змінити \"\n\"користувача і групу власника файла.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"Докладніші відомості за цими посиланнями:\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"ВХІДНІ ДАНІ З СЕРВЕРА VCENTER VMWARE\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"Virt-v2v може імпортувати гостьові системи з сервера vCenter VMware.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\"Потрібен vCenter E<ge> 5.0. Якщо vCenter не встановлено, рекомендуємо \"\n\"користуватися OVA або VMX (див. L</ВХІДНІ ДАНІ З OVA VMWARE> і/або L</ВХІДНІ \"\n\"ДАНІ З VMX VMWARE>).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\"Virt-v2v використовує для доступу до  vCenter libvirt, тому режимом вхідних \"\n\"даних має бути I<-i libvirt>. Оскільки цей режим є типовим, немає потреби \"\n\"вказувати його у рядку команди.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"vCenter: АДРЕСА\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"Адреса libvirt сервера vCenter виглядає десь так:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\" vpx://користувач@сервер/Datacenter/esxi\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"де\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"C<користувач@>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\"є необов'язковим, але рекомендованим записом користувача, для якого слід \"\n\"встановити з'єднання.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\"Якщо ім'я користувача містить символ зворотної похилої риски (наприклад \"\n\"C<DOMAIN\\\\USER>), вам доведеться скористатися маскуванням символу у адресі \"\n\"за допомогою послідовності C<%5c>: C<DOMAIN%5cUSER> (5c — шістнадцятковий \"\n\"код ASCII символу зворотної похилої риски). Ймовірно, інші символи \"\n\"пунктуації також доведеться маскувати.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\"Пароль користувача має бути надано у локальному файлів за допомогою \"\n\"параметра I<-ip>.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"C<server>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"це сервер vCenter (I<не> гіпервізор).\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"C<Datacenter>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"це назва датацентру.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\"Якщо у назві міститься пробіл, замініть його екранованим кодом адрес, C<%20>.\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"C<esxi>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"назва гіпервізору ESXi, на якому запущено гостьову систему.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\"Якщо при розгортанні VMware використано підтеки, може виникнути потреба у \"\n\"додаванні їх до адреси. Приклад:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\" vpx://користувач@сервер/Тека/Датацентр/esxi\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\"Повний опис адрес libvirt наведено тут: L<http://libvirt.org/drvesx.html>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\"Типовими помилками, про які повідомляє libvirt / virsh, якщо адреса є \"\n\"помилковою, є такі:\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"Не вдалося знайти датацентр, вказаний у «...»\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"Не вдалося знайти обчислювальний ресурс, вказаний у «...»\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"Шлях «...» не визначає обчислювального ресурсу\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"Шлях «...» не визначає основну систему\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"Не вдалося знайти основну систему, вказану у «...»\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"vCenter: Перевірка з'єднання libvirt з vCenter\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\"Скористайтеся командою L<virsh(1)> для отримання списку гостьових систем на \"\n\"сервері vCenter, ось так:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\"B<Якщо наведені вище команди не дають бажаного результату, virt-v2v також не \"\n\"працюватиме>.  Перш ніж продовжувати, виправте ваші налаштування libvirt і/\"\n\"або сервера vCenter VMware.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"vCenter: надання пароля\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\"Пароль vCenter (зазвичай для облікового запису root або облікового запису, \"\n\"який визначено C<user@> в адресі vpx) має бути записано до локального файла, \"\n\"і назву цього файла вказано у рядку команди virt-v2v за допомогою параметра \"\n\"I<-ip файл_пароля>.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"vCenter: Імпортування гостьової системи\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\"Щоб імпортувати певну гостьову систему з сервера vCenter, віддайте таку \"\n\"команду:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"      -ip файл_пароля \\\\\\n\"\n\"      \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"де C<Windows 2003> — назва гостьової системи (яку має бути вимкнено).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\"У цьому випадку прапорці виведення встановлено так, щоб перетворена гостьова \"\n\"система записувалася до тимчасового каталогу, оскільки це лише приклад, але \"\n\"ви також можете записати перетворену систему до libvirt або будь-якого \"\n\"іншого підтримуваного призначення.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"vCenter: Неадміністративна роль\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\"Замість використання ролі адміністратора vCenter, ви можете створити \"\n\"нетипову неадміністративну роль для виконання перетворення. Втім, вам \"\n\"доведеться увімкнути такі права доступу (або, доки це буде доступним, \"\n\"старіші версії VMware, де не було деяких з цих параметрів):\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"Створіть нетипову роль у vCenter.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"Увімкніть (позначте) такі об'єкти:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\" Віртуальна машина:\\n\"\n\"   Взаємодія:\\n\"\n\"     - Керування гостьовими віртуальними машинами за допомогою програмного інтерфейсу VIX\\n\"\n\"   Приготування:\\n\"\n\"     - Дозволити доступ до дисків\\n\"\n\"     - Дозволити доступ до дисків лише для читання\\n\"\n\"     - Дозволити отримання віртуальної машини\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Криптографічні дії:\\n\"\n\"  - Розшифрування\\n\"\n\"  - Безпосередній доступ\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"vCenter: Параметри брандмауера і проксі\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"vCenter: Порти\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\"Якщо між сервером перетворення virt-v2v і сервером vCenter працює \"\n\"брандмауер, вам потрібно відкрити у ньому порт 443 (https) і порт 5480.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\"Порт 443 використовується для копіювання образів дисків гостьової системи. \"\n\"Порт 5480 використовується для опитування vCenter щодо метаданих гостьової \"\n\"системи.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\"Це лише типові номери портів. Ви можете змінити налаштування vCenter так, \"\n\"щоб використовувалися порти із іншими номерами. У цьому випадку вам слід \"\n\"вказати ці порти у адресі C<vpx://>. Див. L</vCenter: АДРЕСА> вище.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\"Ці порти стосуються лише перетворень virt-v2v. Ви можете відкрити інші порти \"\n\"для користування іншими можливостями vCenter, наприклад для інтернет-\"\n\"інтерфейсу користувача. Відповідні номери для vCenter наведено у інтернет-\"\n\"документації до VMware.\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ┌────────────┐   порт 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │   сервер   │────────────▶ сервер     │────────▶ гіпервізор │\\n\"\n\" │перетворення│────────────▶ vCenter    │        │ ESXi       │\\n\"\n\" │ virt-v2v   │  порт 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │гість│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\"(На наведеній вище діаграмі стрілки показують напрям, у якому ініціюється \"\n\"з'єднання TCP, I<не> обов'язково напрям передавання даних.)\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\"Сама програма virt-v2v не з'єднується безпосередньо із гіпервізором ESXi, де \"\n\"міститься гостьова система. Втім, з гіпервізором з'єднується vCenter і \"\n\"переспрямовує дані, тому, якщо між vCenter і його гіпервізорами працює \"\n\"брандмауер (мережевий екран), ймовірно, вам слід відкрити у ньому додаткові \"\n\"порти (визначити їхні номери вам допоможе документація щодо VMware).\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\"Під час перетворень з vCenter пов'язані із проксі-сервером змінні середовища \"\n\"(C<https_proxy>, C<all_proxy>, C<no_proxy>, C<HTTPS_PROXY>, C<ALL_PROXY> і \"\n\"C<NO_PROXY>) буде B<проігноровано>.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"vCenter: Проблеми із сертифікатами SSL/TLS\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"Ви можете побачити таке повідомлення про помилку:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\"(Щоб побачити це повідомлення, вам слід увімкнути діагностичні повідомлення \"\n\"за допомогою команди «virt-v2v -v -x».)\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\"Причиною може бути використання IP-адреси замість повноцінної назви у домені \"\n\"DNS для сервера vCenter, тобто використання C<vpx://vcenter.example.com/...> \"\n\"замість, скажімо, C<vpx://11.22.33.44/...>\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\"Ще однією причиною проблем із сертифікатами може бути те, що FQDN сервера \"\n\"vCenter не відповідає IP-адресі, наприклад, якщо сервер отримав нову IP-\"\n\"адресу з DHCP. Щоб усунути цю проблему, вам слід змінити налаштування вашого \"\n\"сервера DHCP або мережі так, щоб сервер vCenter завжди отримував незмінну IP-\"\n\"адресу. Після цього, увійдіть до консолі адміністрування сервера vCenter за \"\n\"адресою C<https://vcenter:5480/>. На вкладці C<Admin> позначте пункт \"\n\"C<Certificate regeneration enabled> і перезавантажте сервер.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\"Здається, vCenter VMware обмежує кількість сеансів HTTP і за певних обставин \"\n\"virt-v2v може перевищувати це значення. Ви можете скоригувати або вилучити \"\n\"обмеження редагуванням файла F</etc/vmware-vpx/vpxd.cfg> на сервері vCenter. \"\n\"Збільште значення поля C<E<lt>maxSessionCountE<gt>> або встановіть значення \"\n\"C<0>, щоб зняти обмеження:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"L<virt-v2v(1)>.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"АВТОР\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\"virt-v2v-input-xen — використання virt-v2v для перетворення гостьових систем \"\n\"з Xen\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\"На цій сторінці викладено документацію щодо використання L<virt-v2v(1)> для \"\n\"перетворення гостьових систем з Xen основних систем під керуванням RHEL 5, \"\n\"SLES та OpenSUSE.\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"ВХІДНІ ДАНІ З XEN\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"Розпізнавання за допомогою SSH\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\"Ви можете скористатися розпізнаванням за допомогою SSH за паролем, вказавши \"\n\"назву файла, який містить пароль, як аргумент параметра I<-ip> (зауважте, що \"\n\"цей параметр I<не> приймає пароль безпосередньо). Вам слід скоригувати F</\"\n\"etc/ssh/sshd_config> на сервері Xen, встановивши C<PasswordAuthentication \"\n\"yes>.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\"Якщо ви не використовуєте розпізнавання за паролем, альтернативою є \"\n\"використання ssh-agent і додавання вашого відкритого ключа ssh до F</\"\n\"root/.ssh/authorized_keys> (у основній системі Xen). Після виконання цих дій \"\n\"вам слід перевірити, чи працює доступ без пароля з сервера virt-v2v до \"\n\"основної системи Xen. Приклад:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ журналювання безпосередньо до оболонки, пароль не потрібен ]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\"У деяких сучасних реалізаціях ssh застарілі алгоритми шифрування, потрібні \"\n\"для взаємодії із sshd RHEL 5 вимкнено. Щоб увімкнути ці алгоритми, вам, \"\n\"можливо, слід додати таку інструкцію C<Host> до вашого F<~/.ssh/config>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\"(C<PubkeyAcceptedKeyTypes> і C<PubkeyAcceptedAlgorithms> означають те саме; \"\n\"перша назва є назвою застарілого параметра, друга — нового. Virt-v2v \"\n\"використовує C<libssh> і C<ssh> при перетворенні з Xen, і у деяких \"\n\"операційних системах C<libssh> і C<ssh> можуть одразу приймати той самий \"\n\"варіант параметра.)\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\"При встановленні з'єднання з sshd RHEL 5 з RHEL 9, використання алгоритму \"\n\"SHA1 у підписах має бути повторно увімкнено на рівні OpenSSL на додачу до \"\n\"наведених вище налаштувань SSH. Створіть файл з назвою F<$HOME/openssl-\"\n\"sha1.cnf> і таким вмістом:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"і експортуйте таку змінну до середовища процесу C<virt-v2v>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\"Зауважте, що змінна середовища C<OPENSSL_CONF> працюватиме лише тоді, коли а \"\n\"клієнтська бібліотека libvirt, використана virt-v2v, має версію принаймні \"\n\"8.6.0.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"Перевірка з'єднання libvirt із віддаленою основною системою Xen\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\"Скористайтеся командою L<virsh(1)> для отримання списку гостьових систем на \"\n\"віддаленому вузлі Xen:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\"B<Якщо наведені вище команди не дають бажаного результату, virt-v2v також не \"\n\"працюватиме>.  Перш ніж продовжувати, виправте ваші налаштування на \"\n\"віддаленому сервері.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\"B<Якщо диски гостьової системи розташовано на блоковому пристрої основної \"\n\"системи>, перетворення виконати не вдасться. Обійти цю незручність можна за \"\n\"допомогою методики, яку викладено у розділі L</Перетворення Xen або ssh з \"\n\"блокових пристроїв> нижче.\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"Імпортування гостьової системи\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\"Щоб імпортувати певну гостьову систему з сервера Xen, віддайте такі команди:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\"де C<rhel49-x86_64-pv> — назва гостьової системи (яку має бути вимкнено).\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"Перетворення Xen або ssh з блокових пристроїв\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\"У поточній версії virt-v2v не може безпосередньо отримувати доступ до \"\n\"гостьової системи Xen (або будь-якої іншої гостьової системи, доступ до якої \"\n\"здійснюється віддалено за допомогою ssh), якщо диски цієї гостьової системи \"\n\"розташовано на блокових пристроях основної системи.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\"Щоб визначити, чи використовує гостьова система Xen блокові пристрої \"\n\"основної системи, зверніться до вмісту XML гостьової системи. Там ви \"\n\"побачите таке:\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\"де C<type='block'>, C<source dev=> і C</dev/...> усі вказують на тек, що \"\n\"диск розташовано на блоковому пристрої основної системи.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\"Причиною проблем є те, що драйвер блокових пристроїв із доступом за \"\n\"допомогою ssh у qemu, яким ми користуємося для доступу до віддалених дисків, \"\n\"використовує протокол sftp ssh, а цей протокол не може правильно визначати \"\n\"розмір блокових пристроїв основної системи.\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\"Обійти цю проблему можна копіюванням блокового пристрою з віддаленого \"\n\"сервера Xen до звичайного локального файла, копіюванням XML гостьової \"\n\"системи libvirt, коригуванням елемента C<disk> так, щоб він вказував на \"\n\"локальний файл і заміною режиму на C<-i libvirtxml>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\"virt-v2v-output-local — використання virt-v2v для перетворення гостьових \"\n\"систем із виведенням даних до локальних файлів або libvirt\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [параметри -i*] [-o libvirt] -os БУФЕР\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [параметри -i*] -o local -os КАТАЛОГ\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" virt-v2v [-i* options] -o qemu -os DIRECTORY [--qemu-boot]\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [параметри -i*] -o qemu -os КАТАЛОГ [--qemu-boot]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [параметри -i*] -o null\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\"Цю сторінку підручника присвячено використанню L<virt-v2v(1)> для \"\n\"перетворення гостьових систем із виведенням даних до локальних файлів або до \"\n\"запущеного локально екземпляра libvirt. Ви можете вибрати один з чотирьох \"\n\"режимів виведення за допомогою рядка команди virt-v2v:\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"B<-o libvirt -os> C<БУФЕР>\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"B<-os> C<БУФЕР>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\"Ця команда перетворює гостьову систему на буфер-каталог libvirt із назвою \"\n\"C<БУФЕР> і створює екземпляр гостьової системи у libvirt (але не запускає \"\n\"його). Див. L</ВИВЕДЕННЯ ДО LIBVIRT> нижче.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\"I<-o libvirt> є типовим варіантом, якщо не вказано параметра I<-o>, тому цю \"\n\"частину команди можна не вказувати.\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"B<-o local -os> C<КАТАЛОГ>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\"Як команда перетворює гостьову систему на файли у каталозі C<КАТАЛОГ>. Також \"\n\"буде створено файл XML libvirt, але на відміну від I<-o libvirt>, не буде \"\n\"створено екземпляр гостьової системи у libvirt, буде створено лише файли.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"Буде викликано ці файли:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" НАЗВА-sda, НАЗВА-sdb, тощо    Гостьові диски.\\n\"\n\" НАЗВА.xml                     XML Libvirt.\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"де C<НАЗВА> — назва гостьвої системи.\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"B<-o qemu -os> C<КАТАЛОГ>\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\n#, fuzzy\n#| msgid \"B<-o qemu -os> C<DIRECTORY> B<--qemu-boot>\"\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"B<-o qemu -os> C<КАТАЛОГ> B<--qemu-boot>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\n#, fuzzy\n#| msgid \"\"\n#| \"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> \"\n#| \"above, a shell script is created which contains the raw qemu command you \"\n#| \"would need to boot the guest.  However the shell script is not run, \"\n#| \"I<unless> you also add the I<--qemu-boot> option.\"\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\"За допомогою цього параметра гостьову систему можна перетворити на файли у \"\n\"каталозі C<КАТАЛОГ>. На відміну від варіанта I<-o local>, який наведено \"\n\"вище, буде створено скрипт оболонки, який міститиме просту команду qemu, яка \"\n\"потрібна для завантаження гостьової системи. Втім, цей скрипт оболонки не \"\n\"буде запущено, I<якщо> ви додатково не вкажете параметр I<--qemu-boot>.\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"B<-o null>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\"Програма створює гостьову систему, але результат відкидається, а метадані не \"\n\"записуються. В основному, корисно для тестування.\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"ВИВЕДЕННЯ ДО LIBVIRT\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\"За допомогою параметра I<-o libvirt> ви можете вивантажувати перетворені \"\n\"гостьові системи на основу систему під керуванням libvirt. Існує декілька \"\n\"обмежень:\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\"Ви можете використовувати лише локальне з'єднання libvirt [див. нижче \"\n\"способи обійти це обмеження].\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\"Параметр I<-os pool> має вказувати на буфер-каталог, а не щось екзотичніше, \"\n\"наприклад iSCSI [втім, див. нижче].\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"Вивантаження можливе лише до гіпервізору KVM.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\"Обхідний маневр для виведення до віддаленого екземпляра libvirt і/або буфера \"\n\"даних, який не є каталогом\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\"Скористайтеся virt-v2v у режимі I<-o local> для перетворення дисків і \"\n\"метаданих гостьової системи до локального тимчасового каталогу:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\"Ця команда створює два (або більше) файли у F</var/tmp> із такими назвами:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\" /var/tmp/НАЗВА.xml     # XML libvirt (метадані)\\n\"\n\" /var/tmp/НАЗВА-sda     # перший диск гостьової системи\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"(замість слова C<НАЗВА> має бути назва гостьової системи).\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"Вивантаження перетворених дисків до буфера сховища із назвою C<POOL>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\" size=$(stat -c%s /var/tmp/НАЗВА-sda)\\n\"\n\" virsh vol-create-as POOL НАЗВА-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL НАЗВА-sda /var/tmp/НАЗВА-sda\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\"Внесіть зміни до F</var/tmp/НАЗВА.xml>, щоб замінити F</var/tmp/НАЗВА-sda> \"\n\"на назву буфера. Іншими словами, знайдіть такий фрагмент у XML:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\"і змініть дві речі: атрибут C<type='file'> слід замінити на \"\n\"C<type='volume'>, а елемент C<E<lt>sourceE<gt>> слід змінити так, щоб у \"\n\"ньому були атрибути C<pool> і C<volume>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"Визначте остаточну гостьову систему у libvirt:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\"virt-v2v-output-openstack — використання virt-v2v для перетворення гостьових \"\n\"систем із виведенням даних до OpenStack\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [параметри -i*] -o openstack\\n\"\n\"                        -oo server-id=СЕРВЕР\\n\"\n\"                        [-oo guest-id=ГОСТЬОВА_СИСТЕМА]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" virt-v2v [-i* options] -o glance\\n\"\n#| \"\\n\"\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [параметри -i*] -o glance\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\n#, fuzzy\n#| msgid \"\"\n#| \"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL \"\n#| \"5 Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\"На цій сторінці викладено документацію щодо використання L<virt-v2v(1)> для \"\n\"перетворення гостьових систем з Xen основних систем під керуванням RHEL 5, \"\n\"SLES та OpenSUSE.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\n#, fuzzy\n#| msgid \"\"\n#| \"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n#| \"OpenStack.  There are two output modes you can select, but only I<-o \"\n#| \"openstack> should be used normally.\"\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\"На цій сторінці наведено документацію щодо використання L<virt-v2v(1)> для \"\n\"перетворення гостьових систем на формат, придатний до запуску в OpenStack. \"\n\"Існує два режими виведення даних, якими ви можете скористатися, але, \"\n\"зазвичай, слід використовувати лише I<-o openstack>.\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"B<-o openstack> B<-oo server-id=>СЕРВЕР [...]\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"Повний опис: L</ВИВЕДЕННЯ ДО OPENSTACK>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\"Це сучасний метод для вивантаження даних до OpenStack за допомогою \"\n\"програмного інтерфейсу REST. Гостьові системи можна безпосередньо \"\n\"перетворити на томи Cinder.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"B<-o glance>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"Повний опис: L</ВИВЕДЕННЯ ДО GLANCE>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\n#, fuzzy\n#| msgid \"\"\n#| \"This is the old method for uploading to Glance.  Unfortunately Glance is \"\n#| \"not well suited to storing converted guests (since virt-v2v deals with \"\n#| \"\\\"pets\\\" not templated \\\"cattle\\\"), so this method is not recommended \"\n#| \"unless you really know what you are doing.\"\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\"Це застарілий метод вивантаження до Glance. На жаль, Glance не дуже \"\n\"пристосовано для зберігання перетворених гостьових систем (оскільки virt-v2v \"\n\"працює з «домашніми тваринками», а не шаблонною «худобою»), тому не \"\n\"рекомендуємо користуватися цим методом, якщо ви не зовсім впевнені у \"\n\"наслідках своїх дій.\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"ВИВЕДЕННЯ ДО OPENSTACK\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\"Щоб вивести дані до OpenStack, скористайтеся параметром I<-o openstack>.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"OpenStack: Налаштовування базової системи для перетворення\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\"При перетворенні за допомогою virt-v2v до формату OpenStack незвичною \"\n\"особливістю є те, що virt-v2v B<має> бути запущено у віртуальній машині, яка \"\n\"працює на «хмарі» OpenStack. Ця віртуальна машина називається «базовою \"\n\"системою перетворення» («conversion appliance»). Зауважте, що ця віртуальна \"\n\"машина не пов'язана із гостьовою системою, перетворення якої виконується.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\"Це спричинено тим, що для створення томів Cinder, які міститимуть дані \"\n\"гостьової системи (перетвореної програмою) нам доведеться долучити ці томи \"\n\"Cinder до якоїсь віртуальної машини OpenStack.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\"У базовій системі слід ініціалізувати команду C<openstack>. Ми \"\n\"використовуємо цю команду для обміну даними з OpenStack.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\"Коли virt-v2v працюватиме у базовій системі перетворення, вам слід вказати \"\n\"назву або UUID цієї базової системи перетворення virt-v2v. Приклад:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"або:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\"Якщо потрібно, ви можете запустити декілька паралельних перетворень у одній \"\n\"базовій системі перетворення, якщо у ній достатньо для цього ресурсів. Втім, \"\n\"сам OpenStack накладає обмеження, які слід враховувати: OpenStack не здатен \"\n\"долучати більше за приблизно 25 дисків [точна кількість залежить від \"\n\"конфігурації системи] до однієї базової системи. Це обмежує кількість \"\n\"гостьових систем, які можна перетворювати паралельно, оскільки на час \"\n\"копіювання кожен з дисків гостьової системи слід долучити до базової системи.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"OpenStack: Розпізнавання\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\"Перетворювання до формату OpenStack потребує доступу до тимчасових \"\n\"(неадміністративних) точок доступу до програмного інтерфейсу. Вам доведеться \"\n\"або налаштувати ваші змінні середовища C<$OS_*>, або скористатися \"\n\"параметрами виведення у рядку команди virt-v2v для проходження розпізнавання \"\n\"на OpenStack.\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\"дають той самий результат і працюють так само, як I<--os-username> у рядку \"\n\"команди програмних інструментів OpenStack.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\"Зазвичай, має бути файл, який називається F<overcloudrc> або \"\n\"F<keystonerc_admin>, яким ви C<можете скористатися> для налаштовування.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\"Якщо вам потрібно скопіювати F<overcloudrc> на інший комп'ютер, перевіте, чи \"\n\"посилається він на змінну середовища C<OS_CLOUD>. Якщо це так, можливо, вам \"\n\"доведеться також скопіювати файл F<clouds.yaml> з F</etc/openstack/> або \"\n\"F<$HOME/.config/openstack/> на інший комп'ютер. Див. розділ \\\"CLOUD \"\n\"CONFIGURATION\\\" у підручнику з командного інтерфейсу openstack.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"OpenStack: Запуск від імені root\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\"Оскільки virt-v2v має отримувати доступ до томів Cinder, які представляються \"\n\"як пристрої F</dev> у базовій системі перетворення, зазвичай у режимі I<-o \"\n\"openstack> virt-v2v слід запускати від імені користувача root.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\"Якщо ви використовуєте C<sudo> для запуску virt-v2v і використовуєте змінні \"\n\"середовища для розпізнавання, не забудьте скористатися параметром C<sudo -E> \"\n\"для того, щоб зберігати середовище.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"OpenStack: Ідентифікатор гостьової системи\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\"Крім того, ви можете додатково вказати у рядку команди I<-oo guest-id=...>. \"\n\"Цей ідентифікатор (який може бути довільним рядком) зберігається на кожному \"\n\"томі Cinder у властивості тому C<virt_v2v_guest_id>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\"Цим можна скористатися для пошуку дисків, які пов'язано із гостьовою \"\n\"системою, або встановлення взаємної відповідності дисків із гостьовими \"\n\"системами при одночасному перетворенні декількох гостьових систем.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"OpenStack: Ігнорування сертифіката сервера\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\"За допомогою I<-oo verify-server-certificate=false> ви можете повідомити \"\n\"клієнту openstack про те, що слід ігнорувати сертифікат сервера при \"\n\"з'єднанні із кінцевими точками програмного інтерфейсу OpenStack. Це матиме \"\n\"такі самі наслідки, як додавання параметра I<--insecure> до команди \"\n\"C<openstack>.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"OpenStack: Перетворення гостьової системи\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\"Остаточною командою для перетворення гостьової системи, яку слід віддавати \"\n\"від імені користувача root, є такою:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" # virt-v2v [-i параметри ...] \\\\\\n\"\n\"       -o openstack -oo server-id=НАЗВА|UUID [-oo guest-id=ІДЕНТИФІКАТОР]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\"Якщо ви хочете включити параметри розпізнавання до рядка команди, команда \"\n\"буде такою:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" # virt-v2v [-i параметри ...] \\\\\\n\"\n\"       -o openstack -oo server-id=НАЗВА|UUID -oo os-username=admin [тощо]\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"OpenStack: Завантаження гостьової системи\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\"Гостьові системи перетворюються як томи Cinder (один том на диск початкової \"\n\"гостьової системи). Щоб завантажити з них систему, скористайтеся параметром \"\n\"C<openstack server create --volume>:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"OpenStack: Інші параметри перетворення\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\"Для визначення типу тому Cinder скористайтеся параметром I<-os>. Якщо \"\n\"параметр не буде вказано, припускатиметься, що немає ніякого типу тому \"\n\"Cinder.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\"Підтримки таких параметрів для OpenStack B<не> передбачено: I<-oa>, I<-of>.\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"ВИВЕДЕННЯ ДО GLANCE\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\"Зауважте, що цей варіант вважається застарілим. У більшості випадків вам \"\n\"слід використовувати L</ВИВЕДЕННЯ ДО OPENSTACK>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\"Щоб вивести дані до OpenStack Glance, скористайтеся параметром I<-o glance>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\"Команда запустить керовану з командного рядка програму L<glance(1)>, яку має \"\n\"бути встановлено на сервері перетворення virt-v2v. Щоб спрацювало \"\n\"розпізнавання, вам слід встановити змінні середовища C<OS_*>. Див. L</\"\n\"OpenStack: Розпізнавання> вище.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\"Virt-v2v додає метадані щодо гостьової системи до Glance, описуючи такі \"\n\"речі, як назва гостьової операційної системи і список потрібних їй \"\n\"драйверів. Команда C<glance image-show> покаже метадані як поля «Property», \"\n\"зокрема C<os_type> і C<hw_disk_bus>.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"Glance і розрідженість\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\n#, fuzzy\n#| msgid \"\"\n#| \"Glance image upload doesn't appear to correctly handle sparseness.  For \"\n#| \"this reason, using qcow2 will be faster and use less space on the Glance \"\n#| \"server.  Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\"Засоби вивантаження образів до Glance неправильно працюють із розрідженістю. \"\n\"З цієї причини, використання qcow2 буде швидшим і потребуватиме менше місця \"\n\"на сервері Glance. Скористайтеся параметром virt-v2v S<I<-of qcow2>>.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"Glance і робота з декількома дисками\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\"Якщо у гостьовій системі єдиний диск, назва цього диску у Glance буде назвою \"\n\"гостьової системи. Керувати назвою можна за допомогою параметра I<-on>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\n#, fuzzy\n#| msgid \"\"\n#| \"Glance doesn't have a concept of associating multiple disks with a single \"\n#| \"guest, and Nova doesn't allow you to boot a guest from multiple Glance \"\n#| \"disks either.  If the guest has multiple disks, then the first (assumed \"\n#| \"to be the system disk) will have the name of the guest, and the second \"\n#| \"and subsequent data disks will be called C<I<guestname>-disk2>, \"\n#| \"C<I<guestname>-disk3> etc.  It may be best to leave the system disk in \"\n#| \"Glance, and import the data disks to Cinder.\"\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\"У Glance не передбачено прив'язки декількох дисків до однієї гостьової \"\n\"системи, у Nova також заборонено завантаження гостьової системи з декількох \"\n\"дисків Glance. Якщо у гостьовій системі декілька дисків, перший (який \"\n\"вважається системним диском) називатиметься так, як і гостьова система, \"\n\"другий і наступні диски із даними називатимуться \"\n\"C<I<назва_гостьової_системи>-disk2>, C<I<назва_гостьової_системи>-disk3> \"\n\"тощо. Ймовірно, найкраще лишити системний диск у Glance, а важливі диски із \"\n\"даними передати до Cinder.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\n#, fuzzy\n#| msgid \"\"\n#| \"L<virt-v2v(1)>, L<https://docs.openstack.org/python-openstackclient/\"\n#| \"latest/cli/man/openstack.html>, L<glance(1)>.\"\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\"L<virt-v2v(1)>, L<https://docs.openstack.org/python-openstackclient/latest/\"\n\"cli/man/openstack.html>, L<glance(1)>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\n#, fuzzy\n#| msgid \"\"\n#| \"virt-v2v-output-rhv - Using virt-v2v to convert guests to oVirt or RHV\"\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\"virt-v2v-output-rhv — використання virt-v2v для перетворення гостьових \"\n\"систем із виведенням даних до oVirt або RHV\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" virt-v2v [-i* options] -o rhv-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n#| \"                        [-op PASSWORD] [-of raw]\\n\"\n#| \"                        [-oo rhv-cafile=FILE]\\n\"\n#| \"                        [-oo rhv-cluster=CLUSTER]\\n\"\n#| \"                        [-oo rhv-proxy]\\n\"\n#| \"                        [-oo rhv-disk-uuid=UUID ...]\\n\"\n#| \"                        [-oo rhv-verifypeer]\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [-i* параметри] -o rhv-upload [-oc АДРЕСА_РУШІЯ] -os СХОВИЩЕ\\n\"\n\"                        [-op ПАРОЛЬ] [-of raw]\\n\"\n\"                        [-oo rhv-cafile=ФАЙЛ]\\n\"\n\"                        [-oo rhv-cluster=КЛАСТЕР]\\n\"\n\"                        [-oo rhv-proxy]\\n\"\n\"                        [-oo rhv-disk-uuid=UUID ...]\\n\"\n\"                        [-oo rhv-verifypeer]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" virt-v2v [-i* options] -o rhv -os [esd:/path|/path]\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [параметри -i*] -o rhv -os [esd:/шлях|/шлях]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [параметри -i*] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=КАТАЛОГ]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\n#, fuzzy\n#| msgid \"\"\n#| \"This page documents how to use L<virt-v2v(1)> to convert guests to an \"\n#| \"oVirt or RHV management instance.  There are three output modes that you \"\n#| \"can select, but only I<-o rhv-upload> should be used normally, the other \"\n#| \"two are deprecated:\"\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\"На цій сторінці наведено документацію щодо використання L<virt-v2v(1)> для \"\n\"перетворення гостьових систем на керований екземпляр системи oVirt або RHV. \"\n\"Передбачено три режими виведення даних, одним з яких ви можете скористатися, \"\n\"але, зазвичай, слід користуватися лише I<-o rhv-upload>. Два інших режими \"\n\"вважаються застарілими:\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\n#, fuzzy\n#| msgid \"B<-o rhv-upload> B<-os> STORAGE\"\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"B<-o rhv-upload> B<-os> СХОВИЩЕ\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\n#, fuzzy\n#| msgid \"Full description: L</OUTPUT TO RHV>\"\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"Повний опис: L</ВИВЕДЕННЯ ДО RHV>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\n#, fuzzy\n#| msgid \"\"\n#| \"This is the modern method for uploading to oVirt/RHV via the REST API.  \"\n#| \"It requires oVirt/RHV E<ge> 4.2.\"\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\"Це сучасний метод вивантаження до oVirt/RHV за допомогою програмного \"\n\"інтерфейсу REST. Потребує oVirt/RHV E<ge> 4.2.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\n#, fuzzy\n#| msgid \"B<-o rhv> B<-os> esd:/path\"\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"B<-o rhv> B<-os> esd:/шлях\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\n#, fuzzy\n#| msgid \"B<-o rhv> B<-os> /path\"\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"B<-o rhv> B<-os> /шлях\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"Повний опис: L</ВИВЕДЕННЯ ДО ДОМЕНУ СХОВИЩА ЕКСПОРТУВАННЯ>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\n#, fuzzy\n#| msgid \"\"\n#| \"This is the old method for uploading to oVirt/RHV via the Export Storage \"\n#| \"Domain (ESD).  The ESD can either be accessed over NFS (using the I<-os \"\n#| \"esd:/path> form) or if you have already NFS-mounted it somewhere specify \"\n#| \"the path to the mountpoint as I<-os /path>.\"\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\"Це застарілий метод вивантаження даних до oVirt/RHV за допомогою домену \"\n\"сховища експортування (ESD). Доступ до ESD можна здійснювати або за \"\n\"допомогою NFS (використовуючи формат I<-os esd:/шлях>), або, якщо сховище у \"\n\"вас вже змонтовано за допомогою NFS, визначенням шляху до точки монтування \"\n\"як I<-os /шлях>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\"Домен сховища експортування вважається застарілим з часу oVirt 4, тому у \"\n\"певний момент у майбутньому цей спосіб вже не працюватиме.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"B<-o vdsm>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\n#, fuzzy\n#| msgid \"\"\n#| \"This is the old method used internally by the RHV-M user interface.  It \"\n#| \"is never intended to be used directly by end users.\"\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\"Це застарілий метод, який використовувався на внутрішньому рівні інтерфейсом \"\n\"користувача RHV-M. Його використання ніколи не призначалося для кінцевих \"\n\"користувачів.\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\n#, fuzzy\n#| msgid \"OUTPUT TO LIBVIRT\"\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"ВИВЕДЕННЯ ДО LIBVIRT\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\n#, fuzzy\n#| msgid \"\"\n#| \"This new method to upload guests to oVirt or RHV directly via the REST \"\n#| \"API requires oVirt/RHV E<ge> 4.2.\"\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\"Це новий метод вивантаження гостьових систем до oVirt або RHV безпосередньо \"\n\"за допомогою програмного інтерфейсу REST, потребує oVirt/RHV E<ge> 4.2.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\n#, fuzzy\n#| msgid \"\"\n#| \"You need to specify I<-o rhv-upload> as well as the following extra \"\n#| \"parameters:\"\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"Вам слід вказати I<-o rhv-upload>, а також такі додаткові параметри:\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\"Адреса програмного інтерфейсу REST, яка, зазвичай, складається із назви \"\n\"сервера із дописуванням рядка C</ovirt-engine/api>, але може бути іншою, \"\n\"якщо ви вибрали інший каталог для встановлення рушія oVirt.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\"Крім того, ви можете додати до адреси ім'я користувача і порт. Якщо ім'я \"\n\"користувача не вказано, virt-v2v типово використовуватиме комбінацію \"\n\"C<admin@internal>, яка задає типові параметри облікового запису \"\n\"суперкористувача для екземплярів систем oVirt.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"I<-of raw>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\"У поточній версії, вам слід використовувати I<-of raw>, і ви не можете \"\n\"використовувати I<-oa preallocated>.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"Ці обмеження буде знято у майбутніх версіях.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"I<-op> F<файл-пароля>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\"Файл, який містить пароль, яким слід скористатися для з'єднання із рушієм \"\n\"oVirt. Зауважте, що файл має містити увесь пароль, B<без завершального \"\n\"символу нового рядка>, і, з міркувань безпеки, для файла має бути \"\n\"встановлено режим доступу C<0600>, щоб інші користувачі не змогли його \"\n\"читати.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"I<-os> C<дані-ovirt>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"Домен сховища.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\n#, fuzzy\n#| msgid \"I<-oo rhv-cafile=>F<ca.pem>\"\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"I<-oo rhv-cafile=>F<ca.pem>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\"Файл F<ca.pem> (служби сертифікації), скопійований з F</etc/pki/ovirt-engine/\"\n\"ca.pem> у рушії oVirt.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\n#, fuzzy\n#| msgid \"\"\n#| \"If I<-oo rhv-verifypeer> is enabled then this option can be used to \"\n#| \"control which CA is used to verify the client’s identity.  If this option \"\n#| \"is not used then the system’s global trust store is used.\"\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\"Якщо увімкнено I<-oo rhv-verifypeer>, цим параметром можна скористатися для \"\n\"керування тим, яка служба сертифікації використовуватиметься для перевірки \"\n\"ідентичності клієнта. Якщо цей параметр не використано, буде використано \"\n\"загальносистемне сховище довірених сертифікатів.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\n#, fuzzy\n#| msgid \"I<-oo rhv-cluster=>C<CLUSTERNAME>\"\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"I<-oo rhv-cluster=>C<НАЗВА_КЛАСТЕРА>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\n#, fuzzy\n#| msgid \"Set the RHV Cluster Name.  If not given it uses C<Default>.\"\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\"Встановити назву кластера RHV. Якщо не вказано, буде використано назву \"\n\"C<Default>.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\n#, fuzzy\n#| msgid \"I<-oo rhv-disk-uuid=>C<UUID>\"\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"I<-oo rhv-disk-uuid=>C<UUID>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\"Цим параметром можна скористатися для визначення UUID вручну для дисків при \"\n\"створенні віртуальної машини. Якщо не вказано, рушій oVirt створить \"\n\"випадкові UUID для дисків. Будь ласка, зауважте, що:\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\n#, fuzzy\n#| msgid \"\"\n#| \"you B<must> pass as many I<-oo rhv-disk-uuid=UUID> options as the amount \"\n#| \"of disks in the guest\"\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\"вам B<слід> передати стільки параметрів I<-oo rhv-disk-uuid=UUID>, скільки \"\n\"дисків є у гостьовій системі;\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"вказані UUID не повинні суперечити UUID наявних дисків\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\n#, fuzzy\n#| msgid \"I<-oo rhv-proxy>\"\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"I<-oo rhv-proxy>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\"Пропустити вивантажені дані крізь рушій oVirt. Процес буде повільнішим за \"\n\"вивантаження безпосередньо на вузол oVirt, але може бути потрібним, якщо у \"\n\"вас немає безпосереднього доступу з мережі до вузлів.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\n#, fuzzy\n#| msgid \"I<-oo rhv-verifypeer>\"\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"I<-oo rhv-verifypeer>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\n#, fuzzy\n#| msgid \"\"\n#| \"Verify the oVirt/RHV server’s identity by checking the server‘s \"\n#| \"certificate against the Certificate Authority.\"\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\"Перевірити автентичність сервера oVirt/RHV шляхом перевірки сертифіката \"\n\"сервера за допомогою служби сертифікації.\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"ВИВЕДЕННЯ ДО ДОМЕНУ СХОВИЩА ЕКСПОРТУВАННЯ\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\n#, fuzzy\n#| msgid \"\"\n#| \"This section only applies to the I<-o rhv> output mode.  If you use virt-\"\n#| \"v2v from the RHV-M user interface, then behind the scenes the import is \"\n#| \"managed by VDSM using the I<-o vdsm> output mode (which end users should \"\n#| \"not try to use directly).\"\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\"Вміст цього розділу стосується лише режиму виведення I<-o rhv>. Якщо ви \"\n\"використовуєте virt-v2v з інтерфейсу користувача RHV-M, за сценою \"\n\"імпортування керується VDSM з використанням режиму виведення I<-o vdsm> \"\n\"(режиму, яким кінцеві користувачі не повинні користуватися безпосередньо).\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\n#, fuzzy\n#| msgid \"\"\n#| \"You have to specify I<-o rhv> and an I<-os> option that points to the RHV-\"\n#| \"M Export Storage Domain.  You can either specify the NFS server and \"\n#| \"mountpoint, eg. S<C<-os rhv-storage:/rhv/export>>, or you can mount that \"\n#| \"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n#| \"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n#| \"that will not work.\"\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\"Вам слід вказати I<-o rhv> і параметр I<-os>, який вказує на домен сховища \"\n\"експортування RHV-M. Ви можете або вказати сервер NFS і точку монтування, \"\n\"наприклад S<C<-os rhv-storage:/rhv/export>>, або можете спочатку змонтувати \"\n\"домен і вказати каталог, до якого його змонтовано, наприклад S<C<-os /tmp/\"\n\"mnt>>. Будьте обережні: не слід вказувати домен сховища даних (Data Storage \"\n\"Domain), оскільки це не спрацює.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\n#, fuzzy\n#| msgid \"\"\n#| \"On successful completion virt-v2v will have written the new guest to the \"\n#| \"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n#| \"imported into RHV using the UI before it can be used.\"\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\"Якщо усі дії вдасться виконати успішно, virt-v2v запише нову гостьову \"\n\"систему до домену сховища експортування, але ця система ще не буде готова до \"\n\"запуску. Перш ніж нею можна буде скористатися, її слід імпортувати до RHV за \"\n\"допомогою інтерфейсу користувача.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\n#, fuzzy\n#| msgid \"\"\n#| \"In RHV E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n#| \"domain the guest was written to.  A pane will appear underneath the \"\n#| \"storage domain list displaying several tabs, one of which is \\\"VM \"\n#| \"Import\\\".  The converted guest will be listed here.  Select the \"\n#| \"appropriate guest an click \\\"Import\\\".  See the RHV documentation for \"\n#| \"additional details.\"\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\"У RHV E<ge> 2.2 зробити це можна за допомогою вкладки «Storage» («Сховище»). \"\n\"Виберіть домен експортування, до якого було записано гостьову систему. У \"\n\"відповідь під списком доменів збереження буде показано панель із декількома \"\n\"вкладками, одна з яких називатиметься «VM Import». У списку буде пункт \"\n\"перетвореної гостьової системи. Позначте його і натисніть кнопку «Import». \"\n\"Докладніший опис можна знайти у документації з RHV.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\"Якщо ви експортуєте декілька гостьових систем, потім ви зможете усі їх \"\n\"імпортувати одночасно за допомогою інтерфейсу користувача.\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\n#, fuzzy\n#| msgid \"Testing RHV conversions\"\nmsgid \"Testing oVirt conversions\"\nmsgstr \"Тестування перетворених даних RHV\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\n#, fuzzy\n#| msgid \"\"\n#| \"If you do not have an oVirt or RHV instance to test against, then you can \"\n#| \"test conversions by creating a directory structure which looks enough \"\n#| \"like a RHV-M Export Storage Domain to trick virt-v2v:\"\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\"Якщо у вас немає екземпляра oVirt або RHV для тестування, ви можете виконати \"\n\"тестування перетворення, створивши структуру каталогів, яка подібна до \"\n\"структури каталогів домену сховища експортування RHV-M, щоб «надурити» virt-\"\n\"v2v:\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" uuid=`uuidgen`\\n\"\n#| \" mkdir /tmp/rhv\\n\"\n#| \" mkdir /tmp/rhv/$uuid\\n\"\n#| \" mkdir /tmp/rhv/$uuid/images\\n\"\n#| \" mkdir /tmp/rhv/$uuid/master\\n\"\n#| \" mkdir /tmp/rhv/$uuid/master/vms\\n\"\n#| \" touch /tmp/rhv/$uuid/dom_md\\n\"\n#| \" virt-v2v [...] -o rhv -os /tmp/rhv\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/rhv\\n\"\n\" mkdir /tmp/rhv/$uuid\\n\"\n\" mkdir /tmp/rhv/$uuid/images\\n\"\n\" mkdir /tmp/rhv/$uuid/master\\n\"\n\" mkdir /tmp/rhv/$uuid/master/vms\\n\"\n\" touch /tmp/rhv/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o rhv -os /tmp/rhv\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\n#, fuzzy\n#| msgid \"Debugging RHV-M import failures\"\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"Діагностування помилок імпортування RHV-M\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\n#, fuzzy\n#| msgid \"\"\n#| \"When you export to the RHV-M Export Storage Domain, and then import that \"\n#| \"guest through the RHV-M UI, you may encounter an import failure.  \"\n#| \"Diagnosing these failures is infuriatingly difficult as the UI generally \"\n#| \"hides the true reason for the failure.\"\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\"Коли ви експортуєте дані до домену сховища експортування RHV-M, а потім \"\n\"імпортуєте гостьову систему за допомогою інтерфейсу користувача RHV-M, ви \"\n\"можете зіткнутися із помилками при імпортуванні. Діагностування причини цих \"\n\"помилок — справа дуже складна, оскільки, зазвичай, інтерфейс користувача \"\n\"приховує справжню причину помилки.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"Цікавими з цієї точки зору є такі файли журналів:\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"F</var/log/vdsm/import/>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\"У oVirt E<ge> 4.1.0 VDSM зберігає файл журналу virt-v2v у цьому каталозі \"\n\"протягом 30 днів.\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\"Цей каталог розташовано на вузлі, де виконується перетворення. Цей вузол \"\n\"можна вибрати за допомогою діалогового вікна імпортування або може бути \"\n\"знайдено за допомогою вкладки C<Events> в адміністративному інтерфейсі oVirt.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"F</var/log/vdsm/vdsm.log>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\"Як і вище, цей файл зберігається на вузлі, де виконується перетворення. У \"\n\"ньому містяться докладні повідомлення про помилки, пов'язані із \"\n\"низькорівневими операціями, які виконує VDSM. Він корисний, якщо помилку \"\n\"було пов'язано не з virt-v2v, а з VDSM.\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"F</var/log/ovirt-engine/engine.log>\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\n#, fuzzy\n#| msgid \"\"\n#| \"This log file is stored on the RHV-M server.  It contains more detail for \"\n#| \"any errors caused by the oVirt GUI.\"\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\"Цей файл журналу зберігається на сервері RHV-M. У цьому містяться докладніші \"\n\"дані щодо усіх помилок, які було пов'язано із графічним інтерфейсом \"\n\"користувача oVirt.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"virt-v2v-release-notes — нотатки щодо випуску virt-v2v для версії 1.42\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\"Це нотатки щодо випуску для S<B<virt-v2v 1.42>>, випущеного S<B<16 квітня \"\n\"2020 року>>.\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"Нові можливості\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\"Це перший випуск, у якому virt-v2v живе в окремому від libguestfs сховищі. \"\n\"Два проєкти тепер від'єднано один від одного.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\"Додано новий режим виведення I<-o json>. В основному, цей режим \"\n\"використовується для перетворень до KubeVirt (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\"Використано нову можливість libvirt C<E<lt>firmwareE<gt>> для отримання \"\n\"початкового коду мікропрограми гостьової системи (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\"Новий параметр virt-v2v I<-o rhv-upload> I<-oo rhv-disk-uuid>, який \"\n\"уможливлює визначення UUID дисків. Крім того, I<-oo rhv-cafile> тепер є \"\n\"необов'язковим (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\"У перетвореннях за ssh тепер використовується L<nbdkit-ssh-plugin(1)> \"\n\"замість драйвера ssh QEMU. Так само, L<nbdkit-curl-plugin(1)> \"\n\"використовується замість драйвера curl QEMU.  Це надало нам змогу додати \"\n\"багато гнучких можливостей, зокрема розпізнавання за паролем, дроселювання \"\n\"ширини каналу зв'язку (новий параметр I<--bandwidth>), випереджувальне \"\n\"читання та автоматичне відновлення з'єднання при помилках мережі.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\"Для гостьових систем Windows тепер може бути встановлено агент гостьової \"\n\"системи QEMU від MSI (Tomáš Golembiovský).\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"Інші виправлення\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\"У режимі I<-o libvirt> реалізовано підтримку Windows Server 2019 (Pino \"\n\"Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"Виправлено перетворення Ubuntu Server (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\"Виправлено встановлення qemu-ga встановленням лише специфічних для \"\n\"архітектури файлів у гостьовій системі (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\"Реалізовано затримку встановлення qemu-ga до моменту після встановлення \"\n\"драйверів virtio-win і перезавантажено систему (Tomáš Golembiovský).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\"Реалізовано збереження журналу запуску засобу встановлення RHEV-APT для \"\n\"уможливлення діагностики (Tomáš Golembiovský).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\"Реалізовано перевірку існування кластера RHV перед спробою перетворення при \"\n\"використанні режиму I<-o rhv-upload>. Це також надало нам змогу виявляти і \"\n\"обробляти різні інші умови на ранньому етапі. (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\"Реалізовано правильне позначення сокетів nbdkit для SELinux/sVirt (Martin \"\n\"Kletzander).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\"Ви можете скористатися блоковим пристроєм як драйвером virtio ISO Windows.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\"Декілька виправлень у вивантаженні RHV: належним чином встановлено значення \"\n\"поля C<DISKTYPE> при перетворенні до RHV і VDSM. Реалізоване належне чищення \"\n\"системи при помилках. Реалізовано показ ідентифікатора диска у повідомленнях \"\n\"про помилку і параметрах скрипту журналювання — це допоможе у діагностиці. \"\n\"Декілька чищень у коді. (Nir Soffer).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\"Реалізовано підтримку перетворення до RHV у форматі qcow2 (Nir Soffer).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\"Виправлено виявлення стану диска та помилок після перетворення до RHV \"\n\"(Daniel Erez).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\"Реалізовано скасовування перенесення дисків і вилучення вивантажених дисків \"\n\"при помилці перетворення до RHV (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\"Образи, які містять малі прогалини (розріджені області) тепер мають \"\n\"перетворюватися швидше (Nir Soffer).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\"L<nbdkit-cacheextents-filter(1)> використовується для прискорення джерел, \"\n\"які мають повільне виявлення розрідженості. В основному, це означає, що \"\n\"джерела VMware використовують VDDK (Martin Kletzander).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\"Реалізовано вимогу щодо принаймні 100 вільних inode у кожній гостьовій \"\n\"файловій системі до виконання перетворення, оскільки нестача inode може \"\n\"призвести до помилок при перетворенні (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"Виправлено результат osinfo для перетворень CentOS 8 (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\"Інструменти VMware у новій версії у більшості випадків автоматично \"\n\"вилучаються із гостьових систем Windows (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\"У режимі I<-i ova> програма більше не читає усі вхідні дані OVF до пам'яті, \"\n\"а обробляє їх з диска (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\"При перетворенні до OpenStack ми тепер чекаємо аж до 5 хвилин (замість 60 \"\n\"секунд) на долучення тому Cinder до базової системи перетворення, оскільки у \"\n\"деяких випадках процедура тривала надто довго.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\"Якщо використано достатньо нову версію nbdkit, журнали virt-v2v мають бути \"\n\"набагато менш багатослівними.\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"Безпека\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"У цьому випуску вад, які було пов'язано із захистом, не виявлено.\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"Зміни у збиранні\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\"Підвищено вимоги для libguestfs E<ge> 1.40. Бібліотека тепер пакується і \"\n\"поширюється окремо від virt-v2v. Для розробників: ви можете скористатися \"\n\"локально зібраною (і не встановленою) копією libguestfs.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\"Для збирання virt-v2v тепер потрібна libvirt. Крім того, вам знадобляться \"\n\"прив'язки OCaml до libvirt (L<https://libvirt.org/ocaml/>), хоча поки копію \"\n\"додано до пакунка (пізніше її буде вилучено). (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\"Для збирання virt-v2v потрібна libosinfo. Ця бібліотека використовується для \"\n\"отримання даних щодо драйверів гостьової системи. (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\"Виправлення для OCaml E<ge> 4.10. Мінімальною потрібною версією OCaml все ще \"\n\"є 4.01, але її може бути підвищено до 4.05 у майбутньому.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"Тестові перетворення Debian 9 і Fedora 29 (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\"Різноманітні виправлення для випадку srcdir != builddir (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\"Вилучено модулі gnulib, які не було використано virt-v2v (Pino Toscano).\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"Внутрішня частина роботи програми\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\"При перетворенні гостьових систем SUSE нова версія програми завжди \"\n\"намагається встановити драйвер QXL (Mike Latimer).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\"Два нових модулі (Nbdkit and Nbdkit_sources) розподіляють загальні дії \"\n\"nbdkit і дії з джерелом nbdkit, відповідно.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\"Форматовано код Python для встановлення сумісності із PEP 8 / pycodestyle \"\n\"(Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\"Тести пересунуто до підкаталогу F<tests/>, підручники — до підкаталогу \"\n\"F<docs/>.\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"Виправлені вади\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"L<https://bugzilla.redhat.com/1791802>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\"Нова версія virt-v2v більше не встановлює qemu-ga до гостьових систем EL8\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"L<https://bugzilla.redhat.com/1791257>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\"Виправлено неправильний приклад команди update-crypto-policies у virt-v2v-\"\n\"input-xen\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"L<https://bugzilla.redhat.com/1791240>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"[RFE] rhv-cafile зроблено необов'язковим\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"L<https://bugzilla.redhat.com/1785528>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\"Має бути вилучено відомості щодо «Вилучення інструментів VMware з гостьових \"\n\"систем Windows» на сторінці підручника щодо virt-v2v-input-vmware\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"L<https://bugzilla.redhat.com/1746699>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\"Неможливо імпортувати гостьову систему з експортованого домену до домену \"\n\"даних на rhv4.3 через помилку «Invalid parameter: 'DiskType=1'»\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"L<https://bugzilla.redhat.com/1733168>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"virt-v2v: використання scp -T у режимі -i vmx -it ssh\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"L<https://bugzilla.redhat.com/1723305>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\"Вилучено дані щодо «export PATH=/шлях/до/nbdkit-1.1.x:$PATH» зі сторінки \"\n\"підручника virt-v2v-input-vmware\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"L<https://bugzilla.redhat.com/1691659>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\"virt-v2v має показувати повідомлення, якщо у гостьовій системі успішно \"\n\"встановлено qemu-guest-agent під час перетворення\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"L<https://bugzilla.redhat.com/1690574>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\"virt-v2v не може імпортувати гостьову систему, оскільки не може знайти \"\n\"`file_architecture` для файла\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"L<https://bugzilla.redhat.com/1680361>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\"[v2v][RHV][Scale] v2v Перенесення на RHV завершувалося помилкою щодо \"\n\"перевищення часу очікування при очікуванні завершення передавання даних\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"L<https://bugzilla.redhat.com/1626503>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\"Неможливо використовувати конфігурацію із статичною IP-адресою після \"\n\"перенесення віртуальної машини\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"L<https://bugzilla.redhat.com/1612653>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\"Гостьова система не має дисків після перетворення rhv-upload, якщо домен \"\n\"даних призначення має подібну назву із іншим доменом даних у rhv4.2\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"L<https://bugzilla.redhat.com/1605242>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\"Оновлено відомості щодо nbdkit для vddk на сторінці підручника щодо v2v\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"L<https://bugzilla.redhat.com/1584678>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\"На W2K12r2 rhev-apt не запускається у неінтерактивному режимі, що спричиняє \"\n\"конкуренцію при запуску служби rhev-apt з командного рядка\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"L<https://bugzilla.redhat.com/1518539>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"Мережу Macvtap буде втрачено під час перетворення v2v\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\"Попередні нотатки щодо випуску для virt-v2v можна знайти у проєкті \"\n\"libguestfs: L<guestfs-release-notes-1.40(1)>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"Daniel Erez\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"Tomáš Golembiovský\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"Martin Kletzander\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"Mike Latimer\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"Nir Soffer\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"Pino Toscano\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"Ming Xie\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"virt-v2v-release-notes — нотатки щодо випуску virt-v2v для версії 2.0\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\"Це нотатки щодо випуску для S<B<virt-v2v 2.0>>. Описано основні зміни з часу \"\n\"випуску 1.42.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\"Нотаток щодо випуску 1.44 не було оприлюднено, тому нотатки щодо цього \"\n\"випуску наведено тут.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"Virt-v2v 2.0.0 було випущено S<B<14 березня 2022 року>>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\"Virt-v2v було модернізовано так, щоб уможливити для зовнішніх програм \"\n\"перевірку стану перетворення і вставляти власний крок копіювання. Подальші \"\n\"удосконалення з метою адаптації цієї архітектури буде реалізовано у \"\n\"майбутніх випусках.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\"Інтерфейс командного рядка майже не змінився, окрім декількох діагностичних \"\n\"можливостей, які було вилучено (див. нижче). Єдиною значною відмінністю є \"\n\"те, що формат виведення (I<-of>) у новій версії має бути вказано явно, якщо \"\n\"він відрізняється від формату вхідних даних, оскільки у попередніх версіях \"\n\"virt-v2v автоматично використовувався б формат вхідних даних.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\"Багато часу було витрачено на удосконалення швидкодії virt-v2v у типових \"\n\"випадках.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"Реалізовано перетворення гостьових систем ALT Linux (Міхаїл Гордєєв).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\"Багато виправлень вад і удосконалень швидкодії у виведенні imageio oVirt \"\n\"(Nir Soffer).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\"Реалізовано новий інструмент L<virt-v2v-in-place(1)>, який замінив собою \"\n\"наявний параметр virt-v2v I<--in-place>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\"Нова версія virt-v2v може перетворювати гостьові системи, у яких використано \"\n\"шифровані LUKS логічні томи (Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\"Параметр I<-oo rhv-direct> замінено на I<-oo rhv-proxy>, і безпосередній \"\n\"режим (що є швидшим) у новій версії є типовим при запису до oVirt, а режим \"\n\"проксі доступний для обмежених конфігурацій мережі (дякуємо Nir Soffer).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\"Було вилучено такі параметри командного рядка: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\"Нова версія virt-v2v більше не встановлює засоби RHEV-APT у гостьових \"\n\"системах Windows. Цей засіб застарів, і його було вилучено в oVirt 4.3.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\"Було вилучено застарілий засіб virt-v2v-copy-to-local. Застарівання засобу \"\n\"було визначено у листопаді 2018 року.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\"Вилучено посилання на драйвер prl_strg у гостьових системах Windows, щоб \"\n\"запобігти синьому екрану смерті (Denis Plotnikov).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\"Виправлено перетворення гостьових систем UEFI Linux, які не надають власних \"\n\"резервних засобів завантаження (Denis Plotnikov).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\"Вилучено використання L<nbdkit-readahead-filter(1)>. У цьому фільтрі \"\n\"використано наївну стратегію, і його використання призводило до декількох \"\n\"негативних наслідків при перетворенні.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\"Вилучено запити щодо інтерактивних паролів. Зазвичай, вам слід спробувати \"\n\"скористатися параметрами I<-ip> і/або I<-op> для надання паролів.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\"Для гостьових систем Windows нами вставлено команду schtasks. Втім, \"\n\"параметри цієї команди залежать від часового поясу і не працюють у часових \"\n\"поясах, відмінних від європейських. (Подяки: Dinesh Herath, Tomáš \"\n\"Golembiovský, Bryan Kinney, Mark Zealey, Xiaodai Wang)\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\"Реалізовано періодичне повторне розпізнавання у virt-v2v для серверів \"\n\"vCenter при копіюванні гостьових систем за допомогою HTTPS, що усуває \"\n\"можливість помилки при понад 30 хвилинах для великих гостьових систем і/або \"\n\"при повільному копіюванні.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\"Нова версія virt-v2v встановлює режим багатопроцесорної обробки libguestfs \"\n\"за кількістю фізичних процесорів основної системи, що удосконалює швидкодію \"\n\"певних кроків перетворення.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\"При виведенні virt-v2v до oVirt реалізовано спробу встановити належним чином \"\n\"архітектуру і мікропрограму. Зауважте, що точна прив'язка не завжди можлива, \"\n\"і oVirt може іноді ігнорувати (некоректно) наші рекомендації.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\"Нова версія virt-v2v створює пристрій virtio-vsock для гостьових систем, де \"\n\"передбачено його підтримку (Valeriy Vdovin).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\"У новій версії для усіх гостьових систем потрібно принаймні 100 МБ вільного \"\n\"місця для успішного перетворення (Ming Xie).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\"Реалізовано використання стандартного VGA замість QXL як типу відео для \"\n\"перетворених гостьових систем (Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\"Для старих гостьових систем (наприклад RHEL 6) використовуватиметься модель \"\n\"з перехідною virtio після перетворення. Значення для цієї можливості і \"\n\"архітектуру машини у новій версії, зазвичай, визначатимуться на основі бази \"\n\"даних libosinfo з резервним переходом на запрограмовані значення, якщо \"\n\"libosinfo є недоступною (Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\"При виведенні virt-v2v повідомлень до каналу передавання даних або файла \"\n\"програма більше не переносить рядки, що робить обробку тексту простішою. \"\n\"Увімкнути перенесення рядків у цьому режимі можна за допомогою параметра I<--\"\n\"wrap> (Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\"У новій версії скрипти першого завантаження для гостьових систем Windows, \"\n\"які встановлено virt-v2v, запускаються у правильному порядку, що призводить \"\n\"до швидшого налаштовування мережі (Laszlo Ersek).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"Новій версії потрібна libguestfs E<ge> 1.44.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\"У новій версії потрібні L<nbdcopy(1)> і прив'язки NBD до OCaml NBD, обидва з \"\n\"libnbd E<ge> 1.10.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"У новій версії потрібен nbdkit E<ge> 1.22 (Nir Soffer).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"У новій версії потрібен pcre2 (замість pcre).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"gnulib більше не є частиною пакунка і не використовується virt-v2v.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\"У новій версії потрібен OCaml E<ge> 4.04. У цьому випуску додано підтримку \"\n\"OCaml 4.13.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\"У новій версії потрібен OpenSSH scp E<ge> 8.8. Скористатися попередніми \"\n\"версіями не вдасться, оскільки втрачено сумісність синтаксису командного \"\n\"рядка.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\"Для перекладів тепер використовуємо Weblate замість Zanata (Pino Toscano).\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"L<https://bugzilla.redhat.com/2051394>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\"Додано пропущене повідомлення про помилку «недостатньо вільного місця у \"\n\"тимчасовому каталозі на сервері перетворення»\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"L<https://bugzilla.redhat.com/2044922>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\"nbdinfo виводила дані до stdout замість stderr під час перетворення virt-v2v\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"L<https://bugzilla.redhat.com/2044911>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"Перетворення virt-p2v повисало з virt-v2v з RHEL9\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"L<https://bugzilla.redhat.com/2043333>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\"'model='virtio-transitional' було помилкового додано при перетворенні \"\n\"гостьової системи windows на локальну за допомогою v2v з rhel9\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"L<https://bugzilla.redhat.com/2041886>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\"virt-v2v повисала на декілька хвилин при використанні -ic vpx://... -it vddk \"\n\"з неправильною IP-адресою\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"L<https://bugzilla.redhat.com/2041852>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\"Удосконалено незрозуміле повідомлення про помилку оцінки для input_xen_ssh.ml\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"L<https://bugzilla.redhat.com/2041850>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"Не можна було вказувати '-oo json-disks-pattern' у режимі '-o json'\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"L<https://bugzilla.redhat.com/2039597>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\"Критична помилка при імпортуванні ВМ, якщо вибрано OVA як джерело в \"\n\"адміністративному інтерфейсі RHV\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"L<https://bugzilla.redhat.com/2039255>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\"Удосконалено швидкодію перетворення при перетворенні гостьової системи за \"\n\"допомогою модульного virt-v2v\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"L<https://bugzilla.redhat.com/2034240>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\"Виклик \\\"get_disk_allocated\\\" у \\\"create_ovf\\\" призводив до непрацездатності \"\n\"додатка для виведення rhv-upload\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"L<https://bugzilla.redhat.com/2033096>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"RFE: вилучено параметр -oo rhv-direct і додано параметр -oo rhv-proxy\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"L<https://bugzilla.redhat.com/2032324>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"L<https://bugzilla.redhat.com/2032112>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"L<https://bugzilla.redhat.com/2027673>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"L<https://bugzilla.redhat.com/2027598>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"L<https://bugzilla.redhat.com/1994984>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"L<https://bugzilla.redhat.com/1977681>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"L<https://bugzilla.redhat.com/1976607>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"L<https://bugzilla.redhat.com/1976024>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"L<https://bugzilla.redhat.com/1972125>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"L<https://bugzilla.redhat.com/1967941>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\"virt-v2v не могла встановлювати qemu-guest-agent для гостьових систем rhel9 \"\n\"під час перетворення\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"L<https://bugzilla.redhat.com/1964324>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"L<https://bugzilla.redhat.com/1961107>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"Change video type from qxl to vga after v2v conversion\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"L<https://bugzilla.redhat.com/1960087>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"L<https://bugzilla.redhat.com/1949147>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"L<https://bugzilla.redhat.com/1945549>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"L<https://bugzilla.redhat.com/1942325>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"L<https://bugzilla.redhat.com/1926102>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"L<https://bugzilla.redhat.com/1917760>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"L<https://bugzilla.redhat.com/1903960>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"L<https://bugzilla.redhat.com/1901489>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"L<https://bugzilla.redhat.com/1895323>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"L<https://bugzilla.redhat.com/1872100>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"L<https://bugzilla.redhat.com/1872094>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"L<https://bugzilla.redhat.com/1871754>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"L<https://bugzilla.redhat.com/1868690>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"L<https://bugzilla.redhat.com/1858775>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"L<https://bugzilla.redhat.com/1858765>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"L<https://bugzilla.redhat.com/1854275>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"L<https://bugzilla.redhat.com/1842440>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"L<https://bugzilla.redhat.com/1841096>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"L<https://bugzilla.redhat.com/1839917>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"L<https://bugzilla.redhat.com/1838425>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"L<https://bugzilla.redhat.com/1837453>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"L<https://bugzilla.redhat.com/1837328>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"L<https://bugzilla.redhat.com/1832805>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"L<https://bugzilla.redhat.com/1789279>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"L<https://bugzilla.redhat.com/1788823>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"L<https://bugzilla.redhat.com/1764569>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"L<https://bugzilla.redhat.com/1658126>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\"Virt-v2v не могла перетворювати гостьові системи з використанням LUKS-on-LV\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"L<https://bugzilla.redhat.com/1637857>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"L<https://bugzilla.redhat.com/1581428>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"L<https://bugzilla.redhat.com/1534644>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"Laszlo Ersek\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\n#, fuzzy\n#| msgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"virt-v2v-release-notes — нотатки щодо випуску virt-v2v для версії 2.0\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\n#, fuzzy\n#| msgid \"\"\n#| \"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n#| \"major changes since 2.0.\"\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\"Це нотатки щодо випуску для S<B<virt-v2v 2.2>>. Тут описано значні зміни з \"\n\"часу випуску версії 2.0.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\n#, fuzzy\n#| msgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"Virt-v2v 2.0.0 було випущено S<B<14 березня 2022 року>>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\n#, fuzzy\n#| msgid \"B<-io vddk-port=>PORT\"\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"B<-io vddk-port=>ПОРТ\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\n#, fuzzy\n#| msgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"Новій версії потрібна libguestfs E<ge> 1.44.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\n#, fuzzy\n#| msgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"Новій версії потрібна libguestfs E<ge> 1.44.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"./bugs-in-changelog.sh v2.4.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-21365>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-45992>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-50731>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\n#, fuzzy\n#| msgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\"Virt-v2v не могла перетворювати гостьові системи rhel8.6 з VMware у rhel8.6\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-21365>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-28197>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-28197>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-28197>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-21365>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-28197>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\n#, fuzzy\n#| msgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\"Virt-v2v не могла перетворювати гостьові системи з використанням LUKS-on-LV\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-45992>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-51169>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-55763>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-21365>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-49761>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-21365>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-28197>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\n#, fuzzy\n#| msgid \"Authors of virt-v2v 2.2:\"\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"Автори virt-v2v 2.2:\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\n#, fuzzy\n#| msgid \"git shortlog -s v2.0.0..\"\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"git shortlog -s v2.0.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"Ricky Tigg\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"Юрій Чорноіван\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\n#, fuzzy\n#| msgid \"Copyright (C) 2009-2020 Red Hat Inc.\"\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"© Red Hat Inc., 2009–2020\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"virt-v2v-release-notes — нотатки щодо випуску virt-v2v версії 2.2\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\"Це нотатки щодо випуску для S<B<virt-v2v 2.2>>. Тут описано значні зміни з \"\n\"часу випуску версії 2.0.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"L<https://bugzilla.redhat.com/2152465>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"L<https://bugzilla.redhat.com/2151752>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"L<https://bugzilla.redhat.com/2149863>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"L<https://bugzilla.redhat.com/2149811>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"L<https://bugzilla.redhat.com/2149629>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"L<https://bugzilla.redhat.com/2131123>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"L<https://bugzilla.redhat.com/2116811>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"L<https://bugzilla.redhat.com/2112801>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"L<https://bugzilla.redhat.com/2107503>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"L<https://bugzilla.redhat.com/2101665>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"L<https://bugzilla.redhat.com/2089623>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\"Virt-v2v не могла перетворювати гостьові системи rhel8.6 з VMware у rhel8.6\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"L<https://bugzilla.redhat.com/2082603>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"L<https://bugzilla.redhat.com/2076013>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"L<https://bugzilla.redhat.com/2074805>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"L<https://bugzilla.redhat.com/2074801>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"L<https://bugzilla.redhat.com/2070530>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"L<https://bugzilla.redhat.com/2070186>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"L<https://bugzilla.redhat.com/2069768>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"L<https://bugzilla.redhat.com/2066773>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"L<https://bugzilla.redhat.com/2062360>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"L<https://bugzilla.redhat.com/2059287>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"L<https://bugzilla.redhat.com/2051564>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"L<https://bugzilla.redhat.com/2047660>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"L<https://bugzilla.redhat.com/2028764>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"L<https://bugzilla.redhat.com/2003503>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"L<https://bugzilla.redhat.com/1985827>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"L<https://bugzilla.redhat.com/1953286>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\"Програма не показувала повідомлення про помилку при використанні virt-v2v -o \"\n\"rhv для перетворення гостьової системи до домену даних\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"L<https://bugzilla.redhat.com/1938954>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"L<https://bugzilla.redhat.com/1883802>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"L<https://bugzilla.redhat.com/1817050>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"L<https://bugzilla.redhat.com/1774386>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"Автори virt-v2v 2.2:\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"git shortlog -s v2.0.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"Andrey Drobyshev\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"Emilio Herrera\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"Ettore Atalan\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"Hela Basa\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"Jan Kuparinen\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"Marcin Stanclik\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"Pavel Borecki\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"Piotr Drąg\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"Temuri Doghonadze\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"Tim Kent\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"virt-v2v-release-notes - нотатки щодо випуску virt-v2v версії 2.4\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\"Це нотатки щодо випуску для S<B<virt-v2v 2.4>>. Тут описано значні зміни з \"\n\"часу випуску версії 2.2.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"L<https://bugzilla.redhat.com/2182024>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"L<https://bugzilla.redhat.com/2175703>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"L<https://bugzilla.redhat.com/2172075>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"L<https://bugzilla.redhat.com/2168506>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"L<https://bugzilla.redhat.com/2168082>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"L<https://bugzilla.redhat.com/2166619>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"L<https://bugzilla.redhat.com/2166618>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"L<https://bugzilla.redhat.com/2162444>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"L<https://bugzilla.redhat.com/2162332>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"L<https://bugzilla.redhat.com/1986386>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"Roman Kagan\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"virt-v2v-release-notes - нотатки щодо випуску virt-v2v версії 2.6\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\"Це нотатки щодо випуску для S<B<virt-v2v 2.6>>. Тут описано значні зміни з \"\n\"часу випуску версії 2.4.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"./bugs-in-changelog.sh v2.4.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-21365>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-28197>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-33699>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-36591>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-45527>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-45992>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-49761>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-50731>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-51169>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-53990>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-55763>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-55837>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-56784>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-58065>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\n#, fuzzy\n#| msgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"virt-v2v-release-notes — нотатки щодо випуску virt-v2v для версії 2.0\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\n#, fuzzy\n#| msgid \"\"\n#| \"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n#| \"major changes since 2.4.\"\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\"Це нотатки щодо випуску для S<B<virt-v2v 2.6>>. Тут описано значні зміни з \"\n\"часу випуску версії 2.4.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\n#, fuzzy\n#| msgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"Virt-v2v 2.0.0 було випущено S<B<14 березня 2022 року>>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\n#, fuzzy\n#| msgid \"B<--compressed>\"\nmsgid \"I<--compressed>\"\nmsgstr \"B<--compressed>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\n#, fuzzy\n#| msgid \"B<-oo compressed>\"\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"B<-oo compressed>\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\n#, fuzzy\n#| msgid \"I<-op> F<password-file>\"\nmsgid \"I<--password-file>\"\nmsgstr \"I<-op> F<файл-пароля>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\n#, fuzzy\n#| msgid \"B<--qemu-boot>\"\nmsgid \"I<--qemu-boot>\"\nmsgstr \"B<--qemu-boot>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\n#, fuzzy\n#| msgid \"B<-oo qemu-boot>\"\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"B<-oo qemu-boot>\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\n#, fuzzy\n#| msgid \"B<-o vdsm>\"\nmsgid \"I<--vdsm-*>\"\nmsgstr \"B<-o vdsm>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\n#, fuzzy\n#| msgid \"\"\n#| \"This transport is incompatible with guests that have snapshots; refer to \"\n#| \"L</NOTES>.\"\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\"Цей канал передавання даних є несумісним із гостьовими системами, для яких \"\n\"передбачено знімки; див. L</НОТАТКИ>.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\n#, fuzzy\n#| msgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"Новій версії потрібна libguestfs E<ge> 1.44.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\n#, fuzzy\n#| msgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"Новій версії потрібна libguestfs E<ge> 1.44.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\n#, fuzzy\n#| msgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"Новій версії потрібна libguestfs E<ge> 1.44.\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\n#, fuzzy\n#| msgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"./bugs-in-changelog.sh v2.4.0..\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-21365>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-33699>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-53990>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-58065>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-36591>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-36591>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-28197>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-50731>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-56784>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-21365>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-28197>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-58065>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-55837>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-45527>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-28197>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-58065>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-50731>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-28197>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-56784>\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\n#, fuzzy\n#| msgid \"Authors of virt-v2v 2.2:\"\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"Автори virt-v2v 2.2:\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\n#, fuzzy\n#| msgid \"git shortlog -s v2.0.0..\"\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"git shortlog -s v2.0.0..\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\"virt-v2v-support — підтримувані гіпервізори, системи керування \"\n\"віртуалізацією та гостьові системи у virt-v2v\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\"За допомогою цієї сторінки підручника ви зможете ознайомитися із переліком \"\n\"сторонніх гіпервізорів, систем керування віртуалізацією та типів гостьових \"\n\"систем, підтримку яких передбачено у L<virt-v2v(1)>.\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\"Зауважте, що дані цієї сторінки стосуються virt-v2v з основної гілки \"\n\"розробки, тобто з L<http://libguestfs.org>, а у похідних дистрибутивах virt-\"\n\"v2v можливості іноді навмисне вилучаються або надаються, але без підтримки.\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"Гіпервізори (вхід)\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"VMware ESXi\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"Має бути керованим VMware vCenter E<ge> 5.0, якщо недоступне VDDK.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"OVA, експортований з VMware\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"OVA з інших гіпервізорів не працюватимуть.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"VMX з VMware\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"Файли VMX, створені іншими гіпервізорами, не працюватимуть.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"RHEL 5 Xen\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"SUSE Xen\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"Citrix Xen\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"Останнє тестування Citrix Xen виконувалося досить давно.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"Hyper-V\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\"Немає свіжих результатів тестування. Потребує експортування диска або \"\n\"використання L<virt-p2v(1)> на Hyper-V.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"Безпосередньо з образів дисків\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\"Лише образи дисків, експортовані з підтримуваних гіпервізорів, такі, де \"\n\"використовується формат контейнера, підтримку якого передбачено у qemu.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"Фізичні машини\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"За допомогою інструмента L<virt-p2v(1)>.\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"Гіпервізори (виведення)\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"Лише QEMU і KVM.\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"Системи керування віртуалізацією (виведення)\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"OpenStack\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\n#, fuzzy\n#| msgid \"SLES 10 and up\"\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"SLES 10 і новіші версії\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"Локальна libvirt\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"Як наслідок, L<virsh(1)>, L<virt-manager(1)> та подібні програми.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"Локальний диск\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"Гості\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"CentOS 4, 5, 6, 7, 8, 9, 10\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"Scientific Linux 4, 5, 6, 7\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"Oracle Linux\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"Fedora\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"SLES 10 і новіші версії\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"OpenSUSE 10 і новіші версії\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"ALT Linux 9 і новіші версії\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"Debian 6 і новіші версії\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"Ubuntu 10.04, 12.04, 14.04, 16.04 і новіші версії\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"від Windows XP до Windows 11 / Windows Server 2025\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"Мікрокод гостьової системи\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\"Підтримку BIOS передбачено для усіх типів гостьових систем і гіпервізорів.\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\"VMware надає вам змогу надавати мікропрограми UEFI гостьовим системам \"\n\"(замість звичайного BIOS для PC). Virt-v2v може перетворювати такі гостьові \"\n\"системи, але потребує підтримки UEFI з боку гіпервізору призначення.\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\"У поточній версії KVM передбачено підтримку OVMF, мікропрограми UEFI з \"\n\"відкритим кодом, і можливість запускати такі гостьові системи.\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\"Оскільки підтримку OVMF було додано до KVM лише нещодавно (у 2014/2015 \"\n\"роках), підтримку гостьових систем UEFI передбачено ще не в усіх середовищах \"\n\"призначення:\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"UEFI на libvirt, qemu\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\"Підтримку передбачено. Virt-v2v створить належний файл XML libvirt \"\n\"(метадані) автоматично, але зауважте, що на сервері перетворення має бути \"\n\"встановлено ту саму версію OVMF, що і на гіпервізорі призначення, інакше вам \"\n\"доведеться коригувати шляхи у метаданих.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"UEFI на OpenStack\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"Підтримку реалізовано, починаючи з версії virt-v2v E<ge> 1.43.2.\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\n#, fuzzy\n#| msgid \"UEFI on oVirt or RHV\"\nmsgid \"UEFI on oVirt\"\nmsgstr \"UEFI у oVirt або RHV\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\n#, fuzzy\n#| msgid \"Supported since oVirt/RHV E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\"Підтримку реалізовано, починаючи з версії oVirt/RHV E<ge> 4.2 і virt-v2v \"\n\"E<ge> 1.39.12.\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"virt-v2v - перетворення гостьової системи для використання KVM\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [-i режим] [інші параметри -i*]\\n\"\n\"          [-o режим] [інші параметри -o*]\\n\"\n\"          [параметри virt-customize]\\n\"\n\"          [гостьова_система|назва_файла]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\n#, fuzzy\n#| msgid \"\"\n#| \"Virt-v2v converts a single guest from a foreign hypervisor to run on \"\n#| \"KVM.  It can read Linux and Windows guests running on VMware, Xen, Hyper-\"\n#| \"V and some other hypervisors, and convert them to KVM managed by libvirt, \"\n#| \"OpenStack, oVirt, Red Hat Virtualisation (RHV) or several other targets.  \"\n#| \"It can modify the guest to make it bootable on KVM and install virtio \"\n#| \"drivers so it will run quickly.\"\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\"Virt-v2v перетворює окрему гостьову систему зі стороннього гіпервізора для \"\n\"запуску на KVM. Програма може читати гостьові системи Linux і Windows, які \"\n\"запускаються на VMware, Xen, Hyper-V і деяких інших гіпервізорах, і \"\n\"перетворювати їх на гостьові системи KVM, керовані libvirt, OpenStack, \"\n\"oVirt, Red Hat Virtualisation (RHV) або декількома іншими гіпервізорами. \"\n\"Програма може вносити зміни до гостьових систем так, щоб їх можна було \"\n\"завантажувати на KVM і встановлювати драйвери virtio, які пришвидшують \"\n\"роботу системи.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\"Існує також супутня оболонка із назвою L<virt-p2v(1)>, яка постачається у \"\n\"форматі ISO, образу компакт-диска або PXE, який можна завантажити на \"\n\"фізичних машинах із метою віртуалізації цих машин (фізична машина у \"\n\"віртуальну, або physical to virtual чи p2v).\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"Введення і виведення\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\"Зазвичай, virt-v2v запускається із декількома параметрами I<-i*>, які \"\n\"керують режимом обробки вхідних даних, і декількома параметрами I<-o*>, які \"\n\"керують режимом виведення даних. У цьому сенсі «вхід» — це сторонній \"\n\"гіпервізор, зокрема VMware, а «вихід» — заснована на KVM система керування \"\n\"призначення, зокрема oVirt або OpenStack.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\"Вхід і вихід virt-v2v є окремими і непов'язаними між собою. Virt-v2v може \"\n\"читати з будь-якого входу і записувати до будь-якого виходу. Тому у цьому \"\n\"підручнику документацію щодо входів і виходів virt-v2v наведено окремо.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\"Зазвичай, virt-v2v копіює дані з входу до виходу, тобто працює у режимі \"\n\"копіювання. У цьому випадку початкова гостьова система завжди лишається \"\n\"незмінною. Перетворення на місці можна виконати за допомогою L<virt-v2v-in-\"\n\"place(1)>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"Налаштування\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"Інші питання щодо virt-v2v\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\"L<virt-v2v-support(1)> — підтримувані гіпервізори, системи керування \"\n\"віртуалізацією, гостьові системи.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"L<virt-v2v-input-vmware(1)> — вхідні дані з VMware.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\n#, fuzzy\n#| msgid \"L<virt-v2v-input-xen(1)> — Input from Xen.\"\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"L<virt-v2v-input-xen(1)> — вхідні дані з Xen.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\"L<virt-v2v-output-local(1)> — виведення до локальних файлів або локальної \"\n\"libvirt.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\n#, fuzzy\n#| msgid \"L<virt-v2v-output-rhv(1)> — Output to oVirt or RHV.\"\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"L<virt-v2v-output-rhv(1)> — виведення до oVirt або RHV.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"L<virt-v2v-output-openstack(1)> — виведення до OpenStack.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"L<virt-v2v-release-notes-1.42(1)> — нотатки щодо випуску 1.42.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"L<virt-v2v-release-notes-2.0(1)> — нотатки щодо випуску 2.0.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"L<virt-v2v-release-notes-2.2(1)> — нотатки щодо випуску 2.2.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"L<virt-v2v-release-notes-2.4(1)> — нотатки щодо випуску 2.4.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"L<virt-v2v-release-notes-2.6(1)> — нотатки щодо випуску 2.6.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\n#, fuzzy\n#| msgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"L<virt-v2v-release-notes-2.0(1)> — нотатки щодо випуску 2.0.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\n#, fuzzy\n#| msgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"L<virt-v2v-release-notes-2.0(1)> — нотатки щодо випуску 2.0.\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"ПРИКЛАДИ\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"Перетворення з сервера vCenter VMware до локальної libvirt\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\"Нехай маємо сервер vCenter VMware із назвою C<vcenter.example.com>, \"\n\"датацентр із назвою C<Datacenter> і гіпервізор ESXi із назвою C<esxi>. Нам \"\n\"потрібно перетворити гостьову систему із назвою C<vmware_guest> так, щоб її \"\n\"можна було запустити локально під керуванням libvirt.\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\"У цьому випадку, найімовірніше, вам доведеться запускати virt-v2v від імені \"\n\"користувача C<root>, оскільки програмі буде потрібен обмін даними із фоновою \"\n\"службою libvirt системи і копіювання дисків гостьової системи до F</var/lib/\"\n\"libvirt/images>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"Докладніші відомості: L<virt-v2v-input-vmware(1)>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\n#, fuzzy\n#| msgid \"Convert from VMware to RHV/oVirt\"\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"Перетворення з VMware до RHV/oVirt\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\n#, fuzzy\n#| msgid \"\"\n#| \"This is the same as the previous example, except you want to send the \"\n#| \"guest to a RHV Data Domain using the RHV REST API.  Guest network \"\n#| \"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\"Те саме, що і у попередньому прикладі, але з надсиланням гостьової системи \"\n\"до домену даних RHV за допомогою програмного інтерфейсу REST RHV. Інтерфейси \"\n\"мережі гостьової системи з'єднуються із мережею призначення із назвою \"\n\"C<ovirtmgmt>.\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n#| \"   -o rhv-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n#| \"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n#| \"   -oo rhv-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o rhv-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo rhv-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\"У цьому випадку основна система, де запущено virt-v2v, працює як B<сервер \"\n\"перетворення>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\n#, fuzzy\n#| msgid \"For more information see L<virt-v2v-output-rhv(1)>.\"\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"Докладніші відомості: L<virt-v2v-output-rhv(1)>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"Перетворення з гіпервізору ESXi за допомогою SSH до локальної libvirt\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\"Нехай маємо гіпервізор ESXi із назвою C<esxi.example.com> і уможливленим \"\n\"доступом за допомогою SSH. Потрібно перетворити його зі сховища VMFS на \"\n\"сервері до локального файла.\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\n#, fuzzy\n#| msgid \"\"\n#| \"The guest must not be running.  Virt-v2v would I<not> need to be run as \"\n#| \"root in this case.\"\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\"Гостьову систему перед перетворенням має бути вимкнено. Потреби у запуску \"\n\"virt-v2v від імені користувача root у цьому випадку I<немає>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\"Докладніший опис перетворення файлів VMX наведено на сторінці L<virt-v2v-\"\n\"input-vmware(1)>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"Перетворення образу диска до формату OpenStack\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\"Нехай маємо образ диска з іншого гіпервізору, який слід перетворити для \"\n\"запуску на OpenStack (підтримку передбачено лише для OpenStack на основі \"\n\"KVM). Тоді можна запустити virt-v2v у віртуальній машині OpenStack (яку ми \"\n\"називатимемо нижче C<v2v-vm>) ось так:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"Див. L<virt-v2v-output-openstack(1)>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"Перетворення образу диска на образ диска\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\"Нехай маємо образ диска з іншого гіпервізору, який слід перетворити для \"\n\"запуску на KVM. Тоді можна піти одним зі двох шляхів. Найпростішим шляхом \"\n\"буде такий:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -i disk диск.img -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\"де virt-v2v має визначити усі параметри вхідного образу F<disk.img> і (у \"\n\"цьому випадку) записати перетворений результат до F</var/tmp>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\"Складнішим способом є створення L<XML libvirt|http://libvirt.org/\"\n\"formatdomain.html> із описом вхідної гостьової системи (якщо можна якось \"\n\"отримати XML libvirt з початкового гіпервізора, все стає набагато \"\n\"простішим). Далі, можна зробити так:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\"Оскільки F<guest-domain.xml> містить шляхи до образів гостьової системи, вам \"\n\"не потрібно вказувати назву образу диска у рядку команди.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\"Щоб перетворити локальний образ диска і негайно завантажити його у \"\n\"локальному qemu, віддайте таку команду:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"ПАРАМЕТРИ\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"B<--help>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"Показати довідкове повідомлення.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"B<--bandwidth> біти_за_секунду\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"B<--bandwidth-file> файл\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\"Для деяких методів введення можна обмежити ширину каналу мережі, які вони \"\n\"використовуватимуть статично або динамічно. У першому варіанті \"\n\"встановлюється статичне обмеження ширини каналу у бітах за секунду. Можна \"\n\"використовувати формати, подібні до C<10M> (означає 10 мегабітів за секунду).\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\"У другому варіанті ширина каналу обмежується динамічно на основі вмісту \"\n\"файла (також у бітах за секунду у тих самих форматах, підтримку яких \"\n\"передбачено у першому варіанті). Ви можете використовувати обидва параметри \"\n\"разом, тобто: спочатку обмежити швидкістю статично, а потім ви можете \"\n\"створити файл вже під час роботи virt-v2v для коригування швидкості \"\n\"динамічно.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"Підтримку передбачено лише для таких варіантів:\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\n#, fuzzy\n#| msgid \"L<input from Xen|virt-v2v-input-xen(1)>\"\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"L<input from Xen|virt-v2v-input-xen(1)>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\"L<вхідні дані з VMX VMware|virt-v2v-input-vmware(1)/ВХІДНІ ДАНІ З VMX \"\n\"VMWARE>, якщо використано спосіб передавання даних SSH\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"I<-i libvirtxml> при використанні дисків HTTP або HTTPS\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\"L<вхідні дані з сервера vCenter VMware|virt-v2v-input-vmware(1)/ВХІДНІ ДАНІ \"\n\"З СЕРВЕРА VCENTER VMWARE>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\"Параметри без додаткових повідомлень ігноруються для інших способів введення.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"B<-b> ...\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"B<--bridge> ...\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"Див. I<--network> нижче.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\n#, fuzzy\n#| msgid \"B<--block-driver> B<virtio-blk>\"\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"B<--block-driver> B<virtio-blk>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\n#, fuzzy\n#| msgid \"B<--block-driver> B<virtio-scsi>\"\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"B<--block-driver> B<virtio-scsi>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"B<--block-driver> B<virtio-scsi>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\"Вибираючи блоковий драйвер для гостьових систем Windows, віддавайте перевагу \"\n\"C<virtio-blk> або C<virtio-scsi>. Типовим є C<virtio-blk>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\n#, fuzzy\n#| msgid \"\"\n#| \"Note this has no effect for Linux guests at the moment.  That may be \"\n#| \"added in future.\"\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\"Зауважте, що це не працює у поточній версії для гостьових систем Linux. \"\n\"Підтримку може бути додано у майбутніх версіях.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"B<--colors>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"B<--colours>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\"Використовувати послідовності символів ANSI для розфарбовування повідомлень. \"\n\"Ці послідовності типово використовуються, якщо дані виводяться на термінал \"\n\"tty.  Якщо дані, виведені програмою, спрямовуються до файла, послідовності \"\n\"визначення кольорів ANSI буде вимкнено, якщо ви не додасте до команди цей \"\n\"параметр.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"B<--echo-keys>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\"Типово, якщо virt-v2v попросить вас ввести ключ або пароль, програма не \"\n\"відтворюватиме введені символи на екрані. Якщо ви не боїтеся TEMPEST-\"\n\"нападів, або у вашій кімнаті нікого, окрім вас, немає, ви можете \"\n\"скористатися цим прапорцем, щоб бачити, які саме символи ви вводите.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\"Зауважте, що цей параметр стосується лише ключів і паролів до зашифрованих \"\n\"пристроїв і розділів, а не паролів, які використовуються для встановлення \"\n\"з'єднання із віддаленими серверами.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"B<-i> B<disk>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"Встановити метод введення I<disk>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\"У цьому режимі ви можете читати образ диска віртуальної машини без \"\n\"метаданих. virt-v2v намагається визначити найкращі типові значення для \"\n\"метаданих. Ці значення, зазвичай, є адекватними, але ви можете додатково \"\n\"змінити їх (наприклад, змінити об'єм пам'яті або кількість віртуальних \"\n\"процесорів) за допомогою параметра I<-i libvirtxml>. У цей спосіб може бути \"\n\"імпортовано лише гостьові системи, які використовують лише один диск.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"B<-i> B<libvirt>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"Встановити метод введення I<libvirt>. Цей метод є типовим.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\"У цьому режимі вам слід вказати назву гостьової системи libvirt або UUID у \"\n\"рядку команди. Ви також можете вказати адресу з'єднання libvirt (див. I<-\"\n\"ic>).\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"B<-i> B<libvirtxml>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"Встановити метод введення I<libvirtxml>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\"У цьому режимі вам слід передати за допомогою рядка команди файл XML \"\n\"libvirt. Цей файл буде прочитано для отримання метаданих (зокрема назви та \"\n\"обсягу пам'яті) щодо початкової гостьової системи, а також розташування \"\n\"дисків із вхідними даними. Див. L</Мінімальний XML для параметра -i \"\n\"libvirtxml> нижче.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"B<-i> B<local>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"Те саме, що і I<-i disk>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"B<-i> B<ova>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"Встановити метод введення I<ova>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\"У цьому режимі ви можете читати файл OVA VMware. Virt-v2v прочитає файл \"\n\"маніфесту ova і перевірити томи vmdk на коректність (за контрольними \"\n\"сумами), а також проаналізує файл ovf, а потім виконає перетворення \"\n\"гостьової системи. Див. L<virt-v2v-input-vmware(1)>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"B<-i> B<vmx>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"Встановити метод введення I<vmx>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\"У цьому режимі ви можете читати файл VMX VMware безпосередньо або за \"\n\"допомогою SSH. Такий режим корисний, якщо віртуальні машини VMware \"\n\"зберігаються на сервері NFS так, що їх можна змонтувати безпосередньо, або \"\n\"так, що можна отримати доступ за допомогою SSH до гіпервізору ESXi. Див. \"\n\"L<virt-v2v-input-vmware(1)>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"B<-ic> адреса_libvirt\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\"Вказати адресу з'єднання libvirt, яким слід скористатися під час читання \"\n\"гостьової системи. Використовується, лише якщо S<I<-i libvirt>>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\n#, fuzzy\n#| msgid \"\"\n#| \"Only local libvirt connections, VMware vCenter connections, or RHEL 5 Xen \"\n#| \"remote connections can be used.  Other remote libvirt connections will \"\n#| \"not work in general.\"\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\"Можна використовувати лише локальні з'єднання libvirt, з'єднання vCenter \"\n\"VMware або віддалені з'єднання Xen RHEL 5. Інші віддалені з'єднання libvirt, \"\n\"загалом, не працюватимуть.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\n#, fuzzy\n#| msgid \"See also L<virt-v2v-input-vmware(1)>, L<virt-v2v-input-xen(1)>.\"\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"Див. також L<virt-v2v-input-vmware(1)>, L<virt-v2v-input-xen(1)>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"B<-if> формат\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\"Лише для I<-i disk>. Цей параметр вказує формат образу диска вхідних даних. \"\n\"Для інших варіантів вхідних даних вам слід вказати формат вхідних даних у \"\n\"метаданих.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"B<-io> ПАРАМЕТР=ЗНАЧЕННЯ\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\"Встановити параметри вхідних даних, пов'язані із поточним режимом обробки \"\n\"або пересилання вхідних даних. Щоб ознайомитися із короткою довідкою щодо \"\n\"цих параметрів, ви можете скористатися такою командою:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"B<-io vddk-libdir=>LIBDIR\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\"Встановити каталог бібліотеки VDDK. У цьому каталозі мають I<міститися> \"\n\"підкаталоги із назвами F<include>, F<lib64> тощо, але у аргументі параметра \"\n\"не повинно бути самої частини назви каталогу F<lib64>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\"У більшості випадків цей параметр потрібен, якщо використовується канал \"\n\"передавання I<-it vddk> (VDDK). Щоб дізнатися більше, ознайомтеся зі \"\n\"сторінкою L<virt-v2v-input-vmware(1)>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"Встановити відбиток віддаленого сервера VMware.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\n#, fuzzy\n#| msgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"L<virt-v2v-input-vmware(1)> — вхідні дані з VMware.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\n#, fuzzy\n#| msgid \"B<-io vddk-cookie=>COOKIE\"\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"B<-io vddk-cookie=>КУКА\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"B<-io vddk-config=>НАЗВА_ФАЙЛА\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"B<-io vddk-cookie=>КУКА\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\n#, fuzzy\n#| msgid \"B<-io vddk-config=>FILENAME\"\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"B<-io vddk-config=>НАЗВА_ФАЙЛА\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"B<-io vddk-nfchostport=>ПОРТ\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"B<-io vddk-port=>ПОРТ\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"B<-io vddk-transports=>РЕЖИМ:РЕЖИМ:...\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\"Якщо використовується режим VDDK, ці параметри передаються без змін до \"\n\"додатка L<nbdkit(1)> VDDK. Будь ласка, зверніться до сторінки підручника \"\n\"щодо L<nbdkit-vddk-plugin(1)>. Не користуйтеся цим, якщо не певні щодо \"\n\"наслідків. Усі ці параметри є необов'язковими.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"B<-ip> назва_файла\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\"Надає файл, який містить пароль і яким слід скористатися для з'єднання із \"\n\"рушієм гіпервізора призначення. Якщо не вказано, гіпервізор вхідних даних \"\n\"може надіслати запит щодо пароля у інтерактивному режимі. Зауважте, що файл \"\n\"має містити увесь пароль, B<без завершального символу нового рядка>, і, з \"\n\"міркувань безпеки, для файла має бути встановлено режим доступу C<0600>, щоб \"\n\"інші користувачі не змогли його читати.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"B<-it> B<ssh>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\"Якщо використано I<-i vmx>, вмикає передавання даних за допомогою SSH. Див. \"\n\"L<virt-v2v-input-vmware(1)>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"B<-it> B<vddk>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\"Використати VDDK VMware як канал передавання даних під час копіювання дисків \"\n\"вхідних даних Див. L<virt-v2v-input-vmware(1)>. Якщо ви скористаєтеся цим \"\n\"параметром, ймовірно, вам доведеться скористатися і іншими параметрами I<-io \"\n\"vddk*> для визначення способу встановлення з'єднання за допомогою VDDK.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"__INCLUDE:key-option.pod__\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"__INCLUDE:keys-from-stdin-option.pod__\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\"Зауважте, що I<--keys-from-stdin> стосується лише ключів і паролів до \"\n\"зашифрованих пристроїв і розділів, а не паролів, які використовуються для \"\n\"встановлення з'єднання із віддаленими серверами.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"Прив'язка MAC-адреси NIC до мережі або містка.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"Див. L</Мережі і містки> нижче.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\"Примусово використати для певного інтерфейсу (контрольованого за його MAC-\"\n\"адресою) статичну IP-адресу після завантаження.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\"Поля у параметрі є такими: C<ipaddr> є IP-адресою; C<gw> — необов'язкова IP-\"\n\"адреса шлюзу; C<len> — необов'язкова довжина маски підмережі (ціле число). \"\n\"Останні параметри є нульовими або додатковими IP-адресами назв серверів.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\"Цей параметр можна не вказувати або вказувати довільну кількість разів.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\"Потреба у цьому параметрі виникає лише для деяких гостьових систем із \"\n\"помилками, зокрема Windows, які не здатні зберігати прив'язки MAC-адрес до \"\n\"статичних IP-адрес автоматично. Він вам не знадобиться, якщо Windows \"\n\"використовує DHCP. У поточній версії параметр ігнорується для гостьових \"\n\"систем Linux, оскільки у цих систем цієї проблеми немає.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"B<--machine-readable>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"B<--machine-readable>=формат\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\"За допомогою цього параметра можна зробити виведені дані придатнішими для \"\n\"обробки комп'ютером, якщо для цієї обробки використовуються інші програми. \"\n\"Див. L</Придатне до читання компʼютером виведення> нижче.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\n#, fuzzy\n#| msgid \"B<--blocksize>\"\nmsgid \"B<--memsize> MB\"\nmsgstr \"B<--blocksize>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"B<-n> вхід:вихід\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"B<-n> вихід\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"B<--network> вхід:вихід\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"B<--network> вихід\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"B<-b> вхід:вихід\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"B<-b> вихід\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"B<--bridge> вхід:вихід\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"B<--bridge> вихід\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\"Пов'язати мережу (або місток) із назвою C<вхід> із мережею (або містком) із \"\n\"назвою C<вихід>. Якщо не вказано префікс C<вхід:>, із C<вихід> буде \"\n\"пов'язано усі інші мережі (або містки).\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\n#, fuzzy\n#| msgid \"B<--no-logfile>\"\nmsgid \"B<--no-fstrim>\"\nmsgstr \"B<--no-logfile>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"B<-o> B<disk>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"Те саме, що і I<-o local>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"B<-o> B<glance>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\"Цей параметр є застарілим. Вам, ймовірно, слід скористатися замість нього \"\n\"параметром I<-o openstack>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\n#, fuzzy\n#| msgid \"\"\n#| \"Set the output method to OpenStack Glance.  In this mode the converted \"\n#| \"guest is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.\"\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\"Встановити метод виведення до OpenStack Glance. У цьому режимі перетворену \"\n\"гостьову систему буде вивантажено до Glance. Див. L<virt-v2v-output-\"\n\"openstack(1)>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"B<-o> B<kubevirt>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\n#, fuzzy\n#| msgid \"\"\n#| \"In this mode, the converted guest is written to a local directory \"\n#| \"specified by I<-os /dir> (the directory must exist).  The converted \"\n#| \"guest’s disks are written to:\"\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\"У цьому режимі перетворену гостьову систему буде записано до локального \"\n\"каталогу, вказаного за допомогою параметра I<-os /каталог> (каталог має \"\n\"існувати). Перетворені диски гостьової системи буде записано до:\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" /каталог/назва-sda\\n\"\n\" /каталог/назва-sdb\\n\"\n\" [тощо]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\" /каталог/назва.yaml\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"де C<назва> — назва гостьової системи.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"B<-o> B<libvirt>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"Встановити метод виведення I<libvirt>. Цей метод є типовим.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\"У цьому режимі перетворену гостьову систему буде створено як гостьову \"\n\"систему libvirt. Ви також можете вказати адресу з'єднання libvirt (див. I<-\"\n\"oc>).\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"B<-o> B<local>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"Встановити метод виведення до I<local>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\"У цьому режимі перетворену гостьову систему буде записано до локального \"\n\"каталогу, вказаного за допомогою параметра I<-os /каталог> (каталог має \"\n\"існувати). Перетворені диски гостьової системи буде записано так:\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"Також буде створено файл XML libvirt із метаданими гостьової системи:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\" /каталог/назва.xml\\n\"\n\"\\n\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"B<-o> B<null>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"Встановити метод виведення до I<null>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\"Гостьову систему буде перетворено і скопійовано, але результати буде \"\n\"викинуто, метадані не записуватимуться.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"B<-o> B<openstack>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\"Встановити метод виведення до OpenStack. Див. L<virt-v2v-output-\"\n\"openstack(1)>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"B<-o> B<ovirt>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\n#, fuzzy\n#| msgid \"Set the output method to I<rhv>.\"\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"Встановити метод виведення до I<rhv>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\n#, fuzzy\n#| msgid \"\"\n#| \"The converted guest is written to a RHV Export Storage Domain.  The I<-\"\n#| \"os> parameter must also be used to specify the location of the Export \"\n#| \"Storage Domain.  Note this does not actually import the guest into RHV.  \"\n#| \"You have to do that manually later using the UI.\"\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\"Перетворену гостьову систему буде записано до домену сховища експортування \"\n\"RHV. Слід також вказати параметр I<-os> для визначення розташування домену \"\n\"сховища експортування. Зауважте, що використання цього параметр не імпортує \"\n\"гостьову систему до RHV. Вам доведеться зробити це пізніше за допомогою \"\n\"інтерфейсу сховища.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\n#, fuzzy\n#| msgid \"See L<virt-v2v-output-rhv(1)>.\"\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"Див. L<virt-v2v-output-rhv(1)>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"B<-o> B<ovirt-upload>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\n#, fuzzy\n#| msgid \"Set the output method to I<rhv-upload>.\"\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"Встановити метод виведення до I<rhv-upload>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\n#, fuzzy\n#| msgid \"\"\n#| \"The converted guest is written directly to a RHV Data Domain.  This is a \"\n#| \"faster method than I<-o rhv>, but requires oVirt or RHV E<ge> 4.2.\"\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\"Перетворену гостьову систему буде записано безпосередньо до домену даних \"\n\"RHV. Цей метод є швидшим за I<-o rhv>, але потребує oVirt або RHV E<ge> 4.2.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\n#, fuzzy\n#| msgid \"See L<virt-v2v-output-rhv(1)>.\"\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"Див. L<virt-v2v-output-rhv(1)>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"B<-o> B<qemu>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"Встановити метод виведення до I<qemu>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\"Дія параметра подібна до I<-o local>, але при виконанні команди програма \"\n\"записує скрипт командної оболонки, яким можна скористатися для завантаження \"\n\"гостьової системи у qemu. Перетворені диски і скрипт оболонки буде записано \"\n\"до каталогу, вказаного за допомогою параметра I<-os>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\"Якщо ви використовуєте цей режим виведення, ви також можете вказати параметр \"\n\"I<-oo qemu-boot>, який завантажує гостьову систему у qemu негайно.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"B<-o> B<vdsm>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"Встановити метод виведення до I<vdsm>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\n#, fuzzy\n#| msgid \"\"\n#| \"This mode is similar to I<-o rhv>, but the full path to the data domain \"\n#| \"must be given: F</rhv/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n#| \"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n#| \"control.\"\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\"Цей режим подібний до I<-o rhv>, але тут треба вказувати повний шлях до \"\n\"домену даних: F</rhv/data-center/E<lt>uuid-датацентруE<gt>/E<lt>uuid-домену-\"\n\"данихE<gt>>.  Цей режим використовується, лише якщо virt-v2v запущено під \"\n\"керуванням VDSM.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"B<-oa> B<sparse>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"B<-oa> B<preallocated>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\"Встановити режим розміщення виведеного файла. Типовим режимом є C<sparse> \"\n\"(розріджений файл).\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"B<-oc> АДРЕСА\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\"Вказати адресу з'єднання, якою слід скористатися під час записування \"\n\"перетвореної гостьової системи.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\"Для S<I<-o libvirt>> це адреса libvirt. Можна використовувати лише локальні \"\n\"з'єднання libvirt. Віддалені з'єднання libvirt не працюватимуть. Докладніший \"\n\"опис можна знайти на сторінці L<virt-v2v-output-local(1)>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"B<-of> формат\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\"Під час перетворення гостьової системи перетворити диски до вказаного \"\n\"формату.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"Якщо не вказано, буде використано формат вхідних даних.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"B<-on> назва\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\"Перейменувати гостьову систему під час перетворення. Якщо цей параметр не \"\n\"використано, назва виведеного результату буде тією самою, що і назва вхідної \"\n\"системи.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"B<-oo> ПАРАМЕТР=ЗНАЧЕННЯ\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\"Встановити параметри вихідних даних, пов'язані із поточним режимом виведення \"\n\"даних. Щоб ознайомитися із короткою довідкою щодо цих параметрів, ви можете \"\n\"скористатися такою командою:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"B<-oo compressed>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\"Для режимів виведення, де передбачено підтримку формату qcow2 (I<-of \"\n\"qcow2>), записує стиснений файл qcow2. Є еквівалентом параметра I<-c> у \"\n\"L<qemu-img(1)>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\n#, fuzzy\n#| msgid \"B<-oo compressed>\"\nmsgid \"B<-oo create=false>\"\nmsgstr \"B<-oo compressed>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\n#, fuzzy\n#| msgid \"B<-o> B<disk>\"\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"B<-o> B<disk>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"B<-oo guest-id=>C<ІДЕНТИФІКАТОР>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\"Лише для I<-o openstack> (L<virt-v2v-output-openstack(1)>). Встановити \"\n\"ідентифікатор гостьової системи, який буде збережено у кожному томі Cinder у \"\n\"властивості тому C<virt_v2v_guest_id>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"B<-oo qemu-boot>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\"Лише якщо використовується I<-o qemu>, негайно завантажує гостьову систему \"\n\"після завершення роботи virt-v2v.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"B<-oo os->*B<=>*\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\"Лише для I<-o openstack> (L<virt-v2v-output-openstack(1)>). Встановити \"\n\"параметри необов'язкового розпізнавання у OpenStack. Приклад: I<-oo os-\"\n\"username=>ІМʼЯ є еквівалентом C<openstack --os-username=ІМʼЯ>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\n#, fuzzy\n#| msgid \"I<-oo rhv-cafile=>F<ca.pem>\"\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"I<-oo rhv-cafile=>F<ca.pem>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\n#, fuzzy\n#| msgid \"\"\n#| \"For I<-o rhv-upload> (L<virt-v2v-output-rhv(1)>) only, the F<ca.pem> file \"\n#| \"(Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n#| \"the oVirt engine.\"\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\"Лише для I<-o rhv-upload> (L<virt-v2v-output-rhv(1)>). Файл F<ca.pem> \"\n\"(служби сертифікації), скопійований з F</etc/pki/ovirt-engine/ca.pem> у \"\n\"рушії oVirt.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\n#, fuzzy\n#| msgid \"B<-oo rhv-cluster=>C<CLUSTERNAME>\"\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"B<-oo rhv-cluster=>C<НАЗВА_КЛАСТЕРА>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\n#, fuzzy\n#| msgid \"\"\n#| \"For I<-o rhv-upload> (L<virt-v2v-output-rhv(1)>) only, set the RHV \"\n#| \"Cluster Name.  If not given it uses C<Default>.\"\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\"Лише для I<-o rhv-upload> (L<virt-v2v-output-rhv(1)>). Встановити назву \"\n\"кластера RHV. Якщо не вказано, буде використано назву C<Default>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\n#, fuzzy\n#| msgid \"B<-oo rhv-proxy>\"\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"B<-oo rhv-proxy>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\n#, fuzzy\n#| msgid \"\"\n#| \"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n#| \"directly to the oVirt node but may be necessary if you do not have direct \"\n#| \"network access to the nodes.\"\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\"Пропустити вивантажені дані крізь рушій oVirt. Процес буде повільнішим за \"\n\"вивантаження безпосередньо на вузол oVirt, але може бути потрібним, якщо у \"\n\"вас немає безпосереднього доступу з мережі до вузлів.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\n#, fuzzy\n#| msgid \"B<-oo rhv-verifypeer>\"\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"B<-oo rhv-verifypeer>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\n#, fuzzy\n#| msgid \"\"\n#| \"For I<-o rhv-upload> (L<virt-v2v-output-rhv(1)>) only, verify the oVirt/\"\n#| \"RHV server’s identity by checking the server‘s certificate against the \"\n#| \"Certificate Authority.\"\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\"Лише для I<-o rhv-upload> (L<virt-v2v-output-rhv(1)>). Перевірити \"\n\"автентичність сервера oVirt/RHV шляхом перевірки сертифіката сервера за \"\n\"допомогою служби сертифікації.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"B<-oo server-id=>C<НАЗВА|UUID>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\"Лише для I<-o openstack> (L<virt-v2v-output-openstack(1)>). Встановити назву \"\n\"базової системи перетворення, у якій буде запущено virt-v2v.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"B<-oo vdsm-compat=0.10>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"B<-oo vdsm-compat=1.1>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\"Якщо вказано I<-o vdsm> і форматом виведення даних є qcow2, ми додаємо \"\n\"параметр qcow2 I<compat=0.10> до файла виведених даних для сумісності із \"\n\"RHEL 6 (див. L<https://bugzilla.redhat.com/1145582>).\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\"Якщо використовується I<-oo vdsm-compat=1.1>, замість цього буде створено \"\n\"сучасні файли qcow2 (I<compat=1.1>).\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\"У поточній версії типовим є параметр I<-oo vdsm-compat=0.10>, але його буде \"\n\"змінено на I<-oo vdsm-compat=1.1> у майбутніх версіях virt-v2v (коли ми \"\n\"зможемо припускати, що усі користуються сучасною версією qemu).\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\n#, fuzzy\n#| msgid \"\"\n#| \"B<Note this option only affects I<-o vdsm> output>.  All other output \"\n#| \"modes (including I<-o rhv>) generate modern qcow2 I<compat=1.1> files, \"\n#| \"always.\"\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\"B<Зауважте, що цей параметр стосується лише даних, виведених при \"\n\"використанні I<-o vdsm>>. В усіх інших режимах виведення (зокрема, при \"\n\"використанні I<-o rhv>) завжди створюватимуться файли сучасної версії qcow2, \"\n\"I<compat=1.1>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\"Якщо доступний цей параметр, C<vdsm-compat-option> буде представлено у \"\n\"форматі виведення I<--machine-readable>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"B<-oo vdsm-image-uuid=>UUID\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"B<-oo vdsm-vol-uuid=>UUID\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"B<-oo vdsm-vm-uuid=>UUID\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"B<-oo vdsm-ovf-output=>КАТАЛОГ\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\n#, fuzzy\n#| msgid \"\"\n#| \"Normally the RHV output mode chooses random UUIDs for the target guest.  \"\n#| \"However VDSM needs to control the UUIDs and passes these parameters when \"\n#| \"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\"Зазвичай, при використанні режиму виведення RHV програма вибирає \"\n\"псевдовипадкові значення UUID для гостьової системи призначення. Втім, VDSM \"\n\"потребує керування UUID і передає значення цих параметрів, якщо virt-v2v \"\n\"працює під керуванням VDSM. Параметри керують такими значеннями:\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\"каталог образів для кожного диска гостьової системи (I<-oo vdsm-image-uuid>) \"\n\"(цей параметр передається одноразово для кожного диска гостьової системи)\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\"UUID для кожного диска гостьової системи (I<-oo vdsm-vol-uuid>) (цей \"\n\"параметр передається одноразово для кожного диска гостьової системи)\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"назва файла OVF (I<-oo vdsm-vm-uuid>).\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\"каталог виведення даних OVF (типовий поточний каталог) (I<-oo vdsm-ovf-\"\n\"output>).\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\"Формат запису UUID: C<12345678-1234-1234-1234-123456789abc> (кожна \"\n\"шістнадцяткова цифра може приймати значення C<0-9> або C<a-f>), відповідно \"\n\"до S<OSF DCE 1.1>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"Ці параметри можна використовувати лише з I<-o vdsm>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"B<-oo vdsm-ovf-flavour=>варіант\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\"Цей параметр визначає формат OVF, який буде використано наприкінці \"\n\"перетворення. У поточній версії передбачено два можливих варіанти:\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\n#, fuzzy\n#| msgid \"ovirt\"\nmsgid \"ovirtexp\"\nmsgstr \"ovirt\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\n#, fuzzy\n#| msgid \"The OVF format used in RHV export storage domain.\"\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"Формат OVF, який використовується у домені експортування RHV.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"ovirt\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\"Обробка формату OVF здійснюється за допомогою програмного інтерфейсу REST \"\n\"oVirt.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\n#, fuzzy\n#| msgid \"\"\n#| \"For backward compatibility the default is I<rhvexp>, but this may change \"\n#| \"in the future.\"\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\"Для забезпечення зворотної сумісності типовим значенням є I<rhvexp>, але \"\n\"його може бути змінено у майбутньому.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"B<-oo verify-server-certificate>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"B<-oo verify-server-certificate=>C<true|false>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\"Лише для I<-o openstack> (L<virt-v2v-output-openstack(1)>). Цим параметром \"\n\"можна скористатися для вимикання процедури перевірки сертифікатів SSL під \"\n\"час встановлення з'єднання із OpenStack. Використовується I<-oo verify-\"\n\"server-certificate=false>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"B<-op> файл\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\"Надає файл, який містить пароль і яким слід скористатися для з'єднання із \"\n\"рушієм гіпервізора призначення. Зауважте, що файл має містити увесь пароль, \"\n\"B<без завершального символу нового рядка>, і, з міркувань безпеки, для файла \"\n\"має бути встановлено режим доступу C<0600>, щоб інші користувачі не змогли \"\n\"його читати.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"B<-os> сховище\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"Розташування сховища даних для перетвореної гостьової системи.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\"Для I<-o libvirt> цей параметр визначає каталог буфера libvirt (див. \"\n\"S<C<virsh pool-list>>) або UUID буфера.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\"Для I<-o local> і I<-o qemu> це назва каталогу. Каталог має вже існувати.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"Для I<-o openstack> є необов'язковий тип тому Cinder.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\n#, fuzzy\n#| msgid \"\"\n#| \"For I<-o rhv-upload>, this is the name of the destination Storage Domain.\"\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"Для I<-o rhv-upload> це назва домену сховища призначення.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\n#, fuzzy\n#| msgid \"\"\n#| \"For I<-o rhv>, this can be an NFS path of the Export Storage Domain of \"\n#| \"the form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\"Для I<-o rhv> це може бути шлях NFS домену сховища експортування (Export \"\n\"Storage Domain) у форматі C<E<lt>вузолE<gt>:E<lt>шляхE<gt>>. Приклад:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" rhv-storage.example.com:/rhv/export\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\" rhv-storage.example.com:/rhv/export\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\"Місце експортування NFS має бути придатним до монтування та доступним для \"\n\"запису користувачем та вузлом, де запущено virt-v2v, оскільки програмі virt-\"\n\"v2v потрібно буде його змонтувати під час роботи. Отже, ймовірно, вам \"\n\"доведеться запустити virt-v2v від імені користувача C<root>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\"B<Альтернативний варіант:> ви можете змонтувати домен сховища експортування \"\n\"власноруч і вказати його точку монтування за допомогою I<-os>. Зауважте, що \"\n\"virt-v2v все ще потрібно буде вести запис до цього віддаленого каталогу, \"\n\"тому virt-v2v все одно доведеться запускати від імені C<root>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\n#, fuzzy\n#| msgid \"\"\n#| \"You will get an error if virt-v2v is unable to mount/write to the Export \"\n#| \"Storage Domain.\"\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\"Вам буде повідомлено про помилку, якщо virt-v2v не вдасться змонтувати домен \"\n\"сховища експортування або здійснити до нього запис.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"B<--parallel> N\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"B<--print-source>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\"Вивести дані щодо початкової гостьової системи і припинити обробку. Цей \"\n\"параметр корисний, якщо ви налаштовуєте прив'язки мереж та містків. Див. L</\"\n\"Мереші і містки>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"B<-q>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"B<--quiet>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\"Цей параметр вимикає смужки поступу та інші необов'язкові до виведення дані.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"B<--root ask>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"B<--root single>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"Вибрати кореневу файлову систему для перетворення.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\"Якщо у віртуальній машині передбачено декілька варіантів завантаження або у \"\n\"віртуальній машині є сторонні файлові системи, які виглядають як розділи \"\n\"операційних систем, за допомогою цього параметра можна вибрати кореневу \"\n\"файлову систему (тобто диск C<C:> або F</>) операційної системи, яку слід \"\n\"перетворити. Використання консолі відновлення Windows, деякі долучені диски \"\n\"DVD та вади у евристиці засобу інспектування libguestfs можуть призвести до \"\n\"помилкового визначення гостьової операційної системи як такої, у якій \"\n\"передбачено варіанти завантаження.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\"Типовим варіантом у virt-v2v E<le> 0.7.1 був параметр S<I<--root single>>, \"\n\"який спричиняв аварійне завершення virt-v2v, якщо виявлялася операційна \"\n\"система із варіантами завантаження.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\"Починаючи з версії virt-v2v E<ge> 0.7.2 типовим режимом є S<I<--root ask>>: \"\n\"якщо буде виявлено варіанти завантаження у віртуальній машині, virt-v2v \"\n\"припинить роботу, виведе список усіх можливих кореневих файлових системи і \"\n\"попросить користувача вказати ту, яку слід перетворити. Це потребує роботи \"\n\"virt-v2v у інтерактивному режимі.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"B<--root first>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"B<--root> /dev/sdX\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"B<--root> /dev/VG/LV\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\n#, fuzzy\n#| msgid \"\"\n#| \"You can also name a specific root device, eg. S<I<--root /dev/sda2>> \"\n#| \"would mean to use the second partition on the first hard drive.  If the \"\n#| \"named root device does not exist or was not detected as a root device, \"\n#| \"then virt-v2v will fail.\"\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\"Ви також можете вказати певний кореневий пристрій за назвою, наприклад, \"\n\"S<I<--root /dev/sda2>> означає, що слід використати другий розділ на першому \"\n\"диску. Якщо іменованого кореневого пристрою не існує або його не вдасться \"\n\"визначити як кореневий пристрій, virt-v2v повідомить про помилку і завершить \"\n\"роботу.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\n#, fuzzy\n#| msgid \"B<--parallel> N\"\nmsgid \"B<--smp> N\"\nmsgstr \"B<--parallel> N\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"B<-v>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"B<--verbose>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"Увімкнути докладний показ повідомлень з метою діагностики.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"B<-V>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"B<--version>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"Показати дані щодо версії і завершити роботу.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"B<--wrap>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\"Переносити рядки повідомлень помилок, попереджень та відомостей. Типовий \"\n\"варіант, якщо дані виводяться на термінал tty.  Якщо дані, виведені \"\n\"програмою, спрямовуються до файла, перенесення рядків буде вимкнено, якщо ви \"\n\"не додасте до команди цей параметр.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"B<-x>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"Увімкнути трасування викликів програмного інтерфейсу libguestfs.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"Параметри налаштовування\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"__CUSTOMIZE_OPTIONS__\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\n#, fuzzy\n#| msgid \"REQUIREMENTS\"\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"ВИМОГИ\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"Мережа\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\"Здається, найважливішим ресурсом для virt-v2v є канал мережі. Virt-v2v \"\n\"повинна мати можливість копіювати дані гостьових систем із гігабітними або \"\n\"навіть вищими швидкостями мережею.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\n#, fuzzy\n#| msgid \"\"\n#| \"Ensure that the network connections between servers (conversion server, \"\n#| \"NFS server, vCenter, Xen) are as fast and as low latency as possible.\"\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\"Вам слід забезпечити швидке і якомога менш латентне з'єднання між серверами \"\n\"(сервером перетворення, сервером NFS, vCenter, Xen).\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"Місце на диску\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\n#, fuzzy\n#| msgid \"\"\n#| \"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n#| \"(usually F</var/tmp>, see also L</ENVIRONMENT VARIBLES> below).  Using \"\n#| \"tmpfs is a bad idea.\"\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\"Virt-v2v розташовує потенційно великі тимчасові файли у C<$VIRT_V2V_TMPDIR> \"\n\"(зазвичай, F</var/tmp>, див. також L</ЗМІННІ СЕРЕДОВИЩА> нижче). \"\n\"Використання tmpfs у цьому випадку недоцільне.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\"Для кожного диска гостьової системи тимчасово зберігається накладка. У ній \"\n\"містяться дані щодо змін, які було внесено з часу перетворення, а також дані \"\n\"кешу. Накладки не є дуже великими — типово десятки або декілька сотень \"\n\"мегабайтів. Окрім накладок, місце на диску може використовуватися засобами \"\n\"обробки вхідних і вихідних даних. Дані щодо цих витрат місця на диску \"\n\"наведено у викладеній нижче таблиці.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"I<-i ova>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\"Ця команда тимчасово зберігає повну копію нестиснених початкових дисків у \"\n\"C<$VIRT_V2V_TMPDIR> (або F</var/tmp>).\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"I<-o glance>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\n#, fuzzy\n#| msgid \"\"\n#| \"This temporarily places a full copy of the output disks in \"\n#| \"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\"Ця команда тимчасово зберігає повну копію виведених у результаті обробки \"\n\"дисків у C<$VIRT_V2V_TMPDIR> (або F</var/tmp>).\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"I<-o local>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"I<-o qemu>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\"Вам слід переконатися щодо у каталозі для виведення даних є достатньо \"\n\"вільного місця для перетвореної гостьової системи.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"Див. також L</Мінімальне вільне місце у основній системі> нижче.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"Ресурси vCenter VMware\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\"У поточній версії копіювання з vCenter VMware є дуже повільним, ми вважаємо, \"\n\"що це проблема з VMware. Щоб частково усунути цю проблему, слід забезпечити \"\n\"роботу гіпервізору ESXi VMware та vCenter на швидкому обладнанні із великим \"\n\"обсягом пам'яті.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"Обчислювальні потужності і обсяг оперативної пам’яті\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\n#, fuzzy\n#| msgid \"Virt-v2v can be run in a virtual machine.\"\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"Virt-v2v можна запускати у віртуальній машині.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\n#, fuzzy\n#| msgid \"\"\n#| \"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n#| \"many parallel conversions, then you may consider allocating one CPU core \"\n#| \"and 2 GB of RAM per running instance.\"\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\"Virt-v2v не є особливо вимогливою до обчислювальних можливостей або обсягу \"\n\"пам'яті. Якщо ви виконуєте багато паралельних перетворень, вам варто \"\n\"виділити одне ядро процесора і 2 ГБ оперативної пам'яті на кожен запущений \"\n\"екземпляр.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"Обрізання\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\"Virt-v2v намагається оптимізувати перетворення, ігноруючи дані файлової \"\n\"системи гостьової операційної системи, які не використовуються. Це \"\n\"стосується невикористаних блоків файлових систем, блоків, які містять лише \"\n\"нулі, та вилучених файлів.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\"Для виконання цього завдання virt-v2v використовує неруйнівну дію \"\n\"L<fstrim(8)>. Оскільки відповідна програма виконує дії із накладкою над \"\n\"даними гостьової системи, початкова система B<ніяким чином> не змінюється.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\"Якщо робота цієї програми fstrim завершується помилкою, ви побачите \"\n\"попередження, а virt-v2v продовжить роботу. Програма може працювати \"\n\"повільніше (у деяких випадках набагато повільніше) через те, що копіюватиме \"\n\"і невикористані частини диска.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\"На жаль, підтримка fstrim не є універсальною. Результат також залежить від \"\n\"певних параметрів файлової системи, вирівнювання розділів та резервного \"\n\"сховища даних. Наприклад, fstrim не можна застосовувати до файлових систем \"\n\"NTFS, якщо вони займають розділи, які не вирівняно із базових сховищем \"\n\"даних. Такого вирівнювання типово не було у Windows до Vista. Іншим \"\n\"прикладом є файлові системи VFAT (використовуються гостьовими системами \"\n\"UEFI) — їх взагалі не можна обрізати.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\"Підтримка fstrim у ядрі Linux поступово поліпшується, отже, з часом, ці \"\n\"обмеження буде знято і virt-v2v працюватиме швидше.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"Вільне місце для перетворення\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"Вільне місце у гостьовій системі\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\"Virt-v2v перевіряє, чи достатньо місця у гостьовій файловій системі для \"\n\"виконання перетворення. У поточній версії програма перевіряє таке:\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"Коренева файлова система Linux\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"Мінімальний вільний простір: 100 МБ\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"Linux F</boot>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"Мінімальний вільний простір: 50 МБ\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\"Причиною є те, що нам потрібно збирати нові initramfs для деяких перетворень \"\n\"Enterprise Linux.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"Диск C<C:> Windows\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"Будь-яка інша придатна до монтування файлова система\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"Мінімальний вільний простір: 10 МБ\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\"Окрім самого вільного місця на диску, для кожної файлової системи потрібно \"\n\"принаймні 100 вільних записів inode.\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"Мінімальний обсяг місця у основній системі\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\"У каталозі основної системи має бути достатньо вільного місця для зберігання \"\n\"великих тимчасових накладок. Щоб визначити каталог, у якому зберігатимуться \"\n\"накладки, скористайтеся такою командою:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" $ df -h \\\"`guestfish get-cachedir`\\\"\\n\"\n#| \" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n#| \" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ df -h \\\"`guestfish get-cachedir`\\\"\\n\"\n\" Ф. система        Розм   Вик  Дост Вик% змонтований на\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\"і зверніть увагу га стовпчик C<Avail>. Virt-v2v взагалі відмовиться \"\n\"виконувати перетворення, якщо на диску не буде принаймні 1 ГБ вільного \"\n\"місця. Ви можете змінити використаний virt-v2v каталог за допомогою \"\n\"параметра C<$VIRT_V2V_TMPDIR>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"Запуск virt-v2v від імені root чи не від імені root\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\"Нічого у virt-v2v не потребує обов'язкових прав доступу root — програма \"\n\"чудово працює і від імені звичайного користувача. Втім, використання деяких \"\n\"зовнішніх можливостей може потребувати прав доступу root або інших \"\n\"спеціалізованих користувачів:\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\n#, fuzzy\n#| msgid \"Writing to the Export Storage Domain as 36:36\"\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"Запис до Export Storage Domain від імені 36:36\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\n#, fuzzy\n#| msgid \"\"\n#| \"When using I<-o rhv -os server:/esd> virt-v2v has to have sufficient \"\n#| \"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\"При використанні параметрів I<-o rhv -os server:/esd> virt-v2v повинна мати \"\n\"достатні права доступу до змонтованої системи NFS домену сховища \"\n\"експортування з сервера C<server>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\"Ви можете уникнути тут потреби у використання прав доступу root, якщо \"\n\"змонтуєте диск власноруч до запуску virt-v2v і передасте його як параметр \"\n\"команди I<-os /точка_монтування>, але перед цим прочитайте наступний \"\n\"S<розділ...>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"Запис до Export Storage Domain від імені 36:36\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\n#, fuzzy\n#| msgid \"\"\n#| \"RHV-M cannot read files and directories from the Export Storage Domain \"\n#| \"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n#| \"UID:GID is not correct.\"\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\"RHV-M не зможе прочитати файли і каталоги з Export Storage Domain, якщо \"\n\"їхнім власником не буде UID:GID 36:36. Якщо значення UID:GID виставлено \"\n\"неправильно, ви побачите повідомлення про проблеми з імпортуванням даних з \"\n\"віртуальної машини.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\n#, fuzzy\n#| msgid \"\"\n#| \"When you run virt-v2v I<-o rhv> as root, virt-v2v attempts to create \"\n#| \"files and directories with the correct ownership.  If you run virt-v2v as \"\n#| \"non-root, it will probably still work, but you will need to manually \"\n#| \"change ownership after virt-v2v has finished.\"\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\"Коли ви запускаєте virt-v2v I<-o rhv> від імені користувача root, virt-v2v \"\n\"намагатиметься створити файли і каталоги із правильними записами власників. \"\n\"Якщо ж virt-v2v запускатиметься від імені непривілейованого користувача, \"\n\"програма, ймовірно, працюватиме, але вам доведеться вручну змінити права \"\n\"власності на файли і каталоги після завершення роботи virt-v2v.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"Запис до libvirt\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\"Якщо використовується параметр I<-o libvirt>, може виникнути потреба у \"\n\"запуску virt-v2v від імені користувача root для уможливлення запису до \"\n\"каталогу загальносистемного екземпляра libvirt (тобто до C<qemu:///system>) \"\n\"і до типового каталогу для образів дисків (зазвичай, F</var/lib/libvirt/\"\n\"images>).\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\"Ви можете уникнути цього, налаштувавши розпізнавання у з'єднанні із libvirt, \"\n\"див. L<http://libvirt.org/auth.html>. Крім того, можна скористатися \"\n\"параметром I<-oc qemu:///session>, використання якого призведе до запису \"\n\"даних до каталогів libvirt вашого користувача.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"Див. також L</Запуск екземпляра системи libvirt>.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"Запис до Openstack\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\"Через спосіб, у який томи Cinder представляються як блокові пристрої F</\"\n\"dev>, використання I<-o openstack> зазвичай потребує запуску virt-v2v від \"\n\"імені користувача root.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"Запис до Glance\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\n#, fuzzy\n#| msgid \"\"\n#| \"This does I<not> need root (in fact it probably won’t work), but may \"\n#| \"require either a special user and/or for you to source a script that sets \"\n#| \"authentication environment variables.  Consult the Glance documentation.\"\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\"Ця дія I<не> потребує прав доступу root (фактично, вона, ймовірно, не \"\n\"працюватиме з ними), але може потребувати прав доступу спеціалізованого \"\n\"користувача і/або створення скрипту для встановлення змінних середовища, \"\n\"пов'язаних із розпізнаванням користувача. Зверніться до документації із \"\n\"Glance.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"Запис на блокові пристрої\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"Налаштовування гостьової мережі\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\"У поточній версії virt-v2v не може переналаштувати мережу у гостьовій \"\n\"системі. Якщо перетворену гостьову систему не з'єднано із тією самою \"\n\"підмережею, що і початкову, її налаштування мережі має бути оновлено. Див. \"\n\"також L<virt-customize(1)>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"Перетворення гостьової системи Windows\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"Процес перетворення гостьових систем Windows поділено на два етапи:\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"1\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"Автономне перетворення.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"2\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"Перше завантаження.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\"Гостьова система буде придатною до завантаження після етапу автономного \"\n\"перетворення, але у ній усе ще не буде встановлено потрібних для належної \"\n\"роботи драйверів. Драйвери буде встановлено автоматично під час першого \"\n\"завантаження гостьової системи.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\"B<Зауваження>: Windows може спочатку перезавантажуватися 4 або більшу \"\n\"кількість разів після перетворення. Це потрібно для встановлення необхідних \"\n\"драйверів, агентів гостьових систем, вилучення VMware Tools і налаштовування \"\n\"мережі. Не переривайте процесу автоматичного встановлення драйверів під час \"\n\"першого входу до гостьової системи, оскільки це може завадити усім наступним \"\n\"спробам завантажити гостьову систему належним чином.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"Вилучення VMware Tools з гостьових систем Windows\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\n#, fuzzy\n#| msgid \"Xen paravirtualized guests\"\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"Паравіртуалізовані гостьові системи Xen\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\"У застарілих версіях virt-v2v можна було перетворити паравіртуалізовану \"\n\"гостьову систему Xen на гостьову систему KVM встановленням нового ядра. Ця \"\n\"версія virt-v2v I<не> намагатиметься встановити будь-яке нове ядро. Замість \"\n\"цього, вона повідомить вам про помилку, якщо доступними виявляться I<лише> \"\n\"паравіртуалізовані ядра Xen.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\"Тому, перш ніж виконувати перетворення, вам слід перевірити, чи встановлено \"\n\"у системі звичайне ядро. Для деяких застарілих дистрибутивів Linux це \"\n\"означає, що має бути встановлено ядро із наведеної нижче таблиці:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" RHEL 4         i686 with > 10GB of RAM: install 'kernel-hugemem'\\n\"\n#| \"                i686 SMP: install 'kernel-smp'\\n\"\n#| \"                other i686: install 'kernel'\\n\"\n#| \"                x86-64 SMP with > 8 CPUs: install 'kernel-largesmp'\\n\"\n#| \"                x86-64 SMP: install 'kernel-smp'\\n\"\n#| \"                other x86-64: install 'kernel'\\n\"\n#| \" \\n\"\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\" RHEL 4         i686 з > 10 ГБ пам'яті: встановіть «kernel-hugemem»\\n\"\n\"                i686 SMP: встановіть «kernel-smp»\\n\"\n\"                інші i686: встановіть «kernel»\\n\"\n\"                x86-64 SMP з > 8 процесорів: встановіть «kernel-largesmp»\\n\"\n\"                x86-64 SMP: встановіть «kernel-smp»\\n\"\n\"                інші x86-64: встановіть «kernel»\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" RHEL 5         i686: install 'kernel-PAE'\\n\"\n#| \"                x86-64: install 'kernel'\\n\"\n#| \" \\n\"\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\" RHEL 5         i686: встановіть «kernel-PAE»\\n\"\n\"                x86-64: встановіть «kernel»\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" SLES 10        i586 with > 10GB of RAM: install 'kernel-bigsmp'\\n\"\n#| \"                i586 SMP: install 'kernel-smp'\\n\"\n#| \"                other i586: install 'kernel-default'\\n\"\n#| \"                x86-64 SMP: install 'kernel-smp'\\n\"\n#| \"                other x86-64: install 'kernel-default'\\n\"\n#| \" \\n\"\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\" SLES 10        i586 з > 10 ГБ оперативної пам'яті: встановіть «kernel-bigsmp»\\n\"\n\"                i586 SMP: встановіть «kernel-smp»\\n\"\n\"                інша i586: встановіть «kernel-default»\\n\"\n\"                x86-64 SMP: встановіть «kernel-smp»\\n\"\n\"                other x86-64: встановіть «kernel-default»\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" SLES 11+       i586: install 'kernel-pae'\\n\"\n#| \"                x86-64: install 'kernel-default'\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\" SLES 11+       i586: встановіть «kernel-pae»\\n\"\n\"                x86-64: встановіть «kernel-default»\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Windows        (Неможливо визначити, не існує ядер Windows для PV Xen)\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"Вмикання virtio\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\"«Virtio» — назва набору драйверів, які значно пришвидшують роботу диска \"\n\"(блокового пристрою), мережі та інших дій у гостьовій системі у KVM.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\"У застарілих версіях virt-v2v можна було встановити ці драйвери для певних \"\n\"гостьових систем Linux. Ця версія virt-v2v I<не> намагатиметься встановити \"\n\"нові ядра Linux або драйвери, але попередить вас, якщо їх ще не встановлено.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\"Щоб увімкнути virtio і поліпшити швидкодію гостьової системи після \"\n\"перетворення, вам слід переконатися, що у системі встановлено B<принаймні> \"\n\"вказані у наведеній нижче таблиці версії пакунків ще I<до> перетворення.\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\" RHEL 4         ядро >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\" RHEL 5         ядро >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\" RHEL 6+        усі версії підтримують virtio\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\" Fedora         усі версії підтримують virtio\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\" SLES 11+       усі версії підтримують virtio\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\" SLES 10        ядро >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\" OpenSUSE 11+   усі версії підтримують virtio\\n\"\n\" \\n\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\" OpenSUSE 10    ядро >= 2.6.25.5-1.1\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Debian 6+      Підтримку virtio передбачено в усіх версіях\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\" Ubuntu 10.04+  — підтримку virtio передбачено в усіх версіях\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"RHEL 4: Здається, що повторне встановлення міток SELinux «зависло»\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\"У RHEL E<le> 4.7 була вада, яка спричиняла до того, що повторне встановлення \"\n\"міток SELinux «зависало» на такому повідомленні:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\"Насправді, система очікувала від вас натискання клавіші (але ніяк візуально \"\n\"про це не повідомляла). Ви можете або натиснути клавішу C<[Return]>, у \"\n\"результаті чого гостьова система завершить повторне встановлення міток і \"\n\"перезавантажиться, або можете встановити policycoreutils E<ge> 1.18.1-4.13 \"\n\"до запуску перетворення v2v. Див. також L<https://bugzilla.redhat.com/\"\n\"show_bug.cgi?id=244636>\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\n#, fuzzy\n#| msgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"L<https://bugzilla.redhat.com/2112801>\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\n#, fuzzy\n#| msgid \"If you see an error similar to:\"\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"Якщо ви бачите повідомлення про помилку, подібне до такого:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\n#, fuzzy\n#| msgid \"\"\n#| \"\\\"warning: could not determine a way to update the configuration of \"\n#| \"Grub2\\\"\"\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\"\\\"попередження: не вдалося визначити спосіб оновлення налаштувань Grub2\\\"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\"У поточній версії virt-v2v не передбачено способу визначити типове ядро у \"\n\"гостьових системах Debian та Ubuntu, які використовують завантажувач GRUB 2. \"\n\"Це означає, що virt-v2v не змінюватиме типового ядра для завантаження, \"\n\"навіть якщо це не краще ядро, яке доступне у гостьовій системі. \"\n\"Рекомендуємо, перш ніж користуватися virt-v2v, зробити так, щоб типове ядро \"\n\"для завантаження було найкращим з доступних у гостьовій системі ядер \"\n\"(наприклад, просто оновивши гостьову систему до найсвіжішої версії).\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\n#, fuzzy\n#| msgid \"\\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\\\"vsyscall attempted with vsyscall=none\\\"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\"Якщо програму запущено у нещодавній версії основної системи Debian, virt-v2v \"\n\"може виявитися нездатною до перетворення гостьових систем, які було створено \"\n\"до 2013 року. У діагностичних повідомленнях ви зможете побачити повідомлення \"\n\"щодо аварійного завершення роботи, подібне до такого:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\"Причиною є те, що у Debian вилучено підтримку запуску застарілих виконуваних \"\n\"файлів, які використовували застарілу сторінку vsyscall для викликів до ядра.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\"Обійти цю проблему можна за допомогою такої команди, яку слід віддати до \"\n\"запуску virt-v2v:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\"Докладніший опис можна знайти тут: L<https://bugzilla.redhat.com/1592061>\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"Див. L<https://bugzilla.redhat.com/2140548>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"Швидкий запуск у Windows E<ge> 8 є несумісним із virt-v2v\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\"Гостьові системи, у яких використовується можливість Windows E<ge> 8 «Fast \"\n\"Startup» (або гостьові системи, які було приспано), не можна перетворити за \"\n\"допомогою virt-v2v. Програма повідомлятиме про таку помилку:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virtv2v: помилка: не вдалося змонтувати образ диска для запису. Ймовірно, це\\n\"\n\" сталося через те, що у гостьовій системі використано Windows Hibernation або\\n\"\n\" Fast Restart. Вам слід вимкнути ці можливості (у гостьовій системі), щоб\\n\"\n\" скористатися virt-v2v.\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\"Як і повідомляється, вам слід завантажити гостьову систему і вимкнути \"\n\"можливість швидкого запуску (Панель керування → Живлення → Виберіть дію для \"\n\"кнопки живлення → Змінити параметри, які зараз недоступні → Увімкнути \"\n\"швидкий запуск), потім вимкнути гостьову систему. Після цього ви зможете \"\n\"перетворити її.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\"Щоб дізнатися більше, див. L<guestfs(3)/ПРИСИПЛЯННЯ WINDOWS ТА ШВИДКИЙ \"\n\"ЗАПУСК WINDOWS 8>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\n#, fuzzy\n#| msgid \"Boot failure: 0x0000007B\"\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"Boot failure: 0x0000007B\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\"Неможливість завантаження спричинено тим, що Windows не може знайти або \"\n\"завантажити належний драйвер диска (наприклад F<viostor.sys>). Якщо у вас \"\n\"виникає ця помилка, ось декілька речей, які можуть допомогти:\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\"Спочатку, до перетворення, переконайтеся, що гостьова система завантажується \"\n\"на початковому гіпервізорі.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\"Перевірте, чи є у вас драйвери virtio Windows у F</usr/share/virtio-win>, і \"\n\"що virt-v2v не виводила жодних попереджень щодо неможливості встановити \"\n\"драйвери virtio.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\"У S<Red Hat Enterprise Linux 7> вам слід буде встановити підписані драйвери \"\n\"з пакунка C<virtio-win>. Якщо у вас немає доступу до підписаних драйверів, \"\n\"вам, ймовірно, слід вимкнути підписування драйверів у меню завантаження.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\"Перевірте, чи ви надаєте інтерфейс virtio-blk (B<не> virtio-scsi і B<не> \"\n\"ide) гостьовій системі. У командному рядку qemu/KVM ви маєте бачити щось \"\n\"подібне до такого:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"У XML libvirt має бути таке:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\"Перевірте, чи не запобігає Windows Group Policy встановленню або \"\n\"використанню драйвера. Спробуйте вилучити Windows Group Policy до \"\n\"перетворення.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\"Перевірте, чи не встановлено якогось антивірусного або іншого програмного \"\n\"забезпечення, яке реалізує заборони, подібні до Group Policy, щодо \"\n\"встановлення або використання нових драйверів.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\"Увімкніть діагностику завантаження і перевірте, чи завантажується драйвер \"\n\"F<viostor.sys>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"OpenStack і повторна активація Windows\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\"OpenStack не надає гостьовим системам стабільних адрес пристроїв та каналів \"\n\"PCI. Кожного разу, коли створюється або запускається гостьова система, \"\n\"OpenStack повторно створює від початку XML libvirt для цієї гостьової \"\n\"системи. Створений таким чином XML libvirt не міститиме полів \"\n\"E<lt>addressE<gt>. Потім libvirt призначить адреси для пристроїв у \"\n\"передбачуваний спосіб. Адреси можуть змінитися, якщо буде виконано будь-яку \"\n\"з таких умов:\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\"До гостьової системи було додано новий диск або мережевий пристрій або з \"\n\"гостьової системи було вилучено диск або мережевий пристрій.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"Було змінено версію OpenStack або (можливо) libvirt.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\"Оскільки Windows не подобаються такі «апаратні» зміни, це може спровокувати \"\n\"початок процедури повторної активації Windows.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\"Це також може заважати завантаженню із повідомленням про помилку 7B [див. \"\n\"попередній розділ], якщо у гостьовій системі є group policy із назвою \"\n\"C<Device Installation Restrictions>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"Підтримка сертифікатів SHA-2 у Windows 7 та Windows Server 2008 R2\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\"Нещодавні версії драйверів vitio для Windows підписано за допомогою \"\n\"сертифікатів SHA-2 (замість сертифікатів SHA-1). Початкові версії Windows 7 \"\n\"і Windows Server 2008 R2 не здатні працювати із сертифікатами SHA-2, тому \"\n\"драйвери virtio для Windows у цих системах не може бути встановлено належним \"\n\"чином.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\"Щоб усунути цю проблему, перш ніж виконувати перетворення гостьової системи, \"\n\"вам слід встановити у системах підтримку підписування коду SHA-2: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\"Докладніші дані можна знайти на сторінці L<https://bugzilla.redhat.com/\"\n\"show_bug.cgi?id=1624878>\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\n#, fuzzy\n#| msgid \"VMX: Guest must be shut down\"\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"VMX: Гостьову систему слід вимкнути\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\n#, fuzzy\n#| msgid \"\"\n#| \"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n#| \"id=1624878>\"\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\"Докладніші дані можна знайти на сторінці L<https://bugzilla.redhat.com/\"\n\"show_bug.cgi?id=1624878>\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\n#, fuzzy\n#| msgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"L<https://issues.redhat.com/browse/RHEL-21365>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"Мережі і містки\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\"Гостьові системи, зазвичай, з'єднано із однією або декількома мережами, і \"\n\"при перетворенні до гіпервізору призначення вам, зазвичай, потрібно повторно \"\n\"з'єднати ці мережі на вузлі призначення. Зробити це можна за допомогою \"\n\"параметрів I<--network>, I<--bridge> та I<--mac>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\"Якщо ви не певні щодо того, які мережі і містки використовуються у \"\n\"початковому гіпервізорі, ви можете вивчити початкові метадані (XML libvirt, \"\n\"дані vCenter тощо). Ви також можете запустити virt-v2v з параметром I<--\"\n\"print-source>, який призведе до того, що virt-v2v виведе доступну програмі \"\n\"інформацію щодо початкового варіанта гостьової системи, а потім завершить \"\n\"роботу.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\"У виведених даних з параметром I<--print-source> ви побачите розділ, де буде \"\n\"показано картки мережевих інтерфейсів (NIC) гостьової системи:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NIC:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\"Містки є особливим класом пристроїв мережі, які долучаються до іменованої \"\n\"зовнішньої мережі на гіпервізорі джерела. Приклад:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\"Щоб пов'язати певний місток-джерело до мережі призначення, наприклад, місток \"\n\"C<br0> у початковій системі із мережею C<ovirtmgmt> у системі призначення, \"\n\"скористайтеся такою командою:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\"Щоб пов'язати усі містки із мережею призначення, скористайтеся такою \"\n\"командою:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"Тонкощі прив'язки гостьових NIC\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\"Параметр I<--mac> надає вам ширші можливості керування прив'язкою, надаючи \"\n\"змогу прив'язувати окремі NIC до мереж або містків у системі призначення. \"\n\"Наприклад, у початковій гостьовій системі із двома NIC їх можна пов'язати \"\n\"окремо із двома мережами із назвами C<mgmt> та C<clientdata> ось так:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\"Зауважте, що у virt-v2v не передбачено можливостей зміни MAC-адреси \"\n\"гостьової системи. MAC-адреса є частиною метаданих гостьової системи і має \"\n\"лишатися тією самою у гіпервізорі походження та у гіпервізорі призначення. У \"\n\"більшості гостьових систем MAC-адреса використовується для встановлення \"\n\"сталих зв'язків між NIC та внутрішніми назвами (наприклад C<eth0>), зв'язків \"\n\"із параметрами брандмауера або навіть зв'язків із системами ліцензування \"\n\"програмного забезпечення.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"Мінімальний XML для параметра -i libvirtxml\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\"Якщо використовується параметр I<-i libvirtxml>, вам слід буде вказати \"\n\"певний файл XML libvirt. Написання такого файла «з нуля» є доволі марудною \"\n\"справою, отже, вам буде корисний наведений нижче шаблон.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\"B<Зауважте, що цим слід користуватися лише для тестування і/або там, де ви \"\n\"впевнені у своїх діях!> Якщо у вас є метадані libvirt для гостьової системи, \"\n\"завжди користуйтеся ними, а не цим шаблоном.\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"Придатне до читання компʼютером виведення\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\"Для виведення даних у зручному для машинної обробки форматі можна \"\n\"скористатися параметром I<--machine-readable>. Додавання цього параметра \"\n\"робить зручним використання virt-v2v з інших програм, графічних інтерфейсів \"\n\"тощо.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"Існує два способи використання цього параметра.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\"Спочатку, скористайтеся цим параметром окремо, щоб опитати систему щодо \"\n\"можливостей виконуваного файла virt-v2v. Типово виведені дані виглядатимуть \"\n\"якось так:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" $ virt-v2v --machine-readable\\n\"\n#| \" virt-v2v\\n\"\n#| \" libguestfs-rewrite\\n\"\n#| \" colours-option\\n\"\n#| \" vdsm-compat-option\\n\"\n#| \" input:disk\\n\"\n#| \" [...]\\n\"\n#| \" output:local\\n\"\n#| \" [...]\\n\"\n#| \" convert:linux\\n\"\n#| \" convert:windows\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" vdsm-compat-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\"Виводиться список можливостей, по одній на рядок, і програма завершує роботу \"\n\"зі станом 0.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\"Записи C<input:> і C<output:> стосуються аргументів параметрів I<-i> і I<-o> \"\n\"(вхідного і вихідного режимів), які підтримуються цим виконуваним файлом. \"\n\"Записи C<convert:> стосуються типів гостьових систем, підтримку перетворення \"\n\"яких передбачено у цьому виконуваному файлі.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\"По-друге, можна скористатися цим параметром у поєднанні із іншими \"\n\"параметрами для того, щоб зробити звичайні виведені програмою дані \"\n\"придатнішими для подальшої машинної обробки.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"У поточній версії це означає таке:\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\"Повідомлення смужки поступу можна обробляти зі стандартного виведення, \"\n\"шукаючи їх за таким формальним виразом:\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\"Програма, яка надсилає виклик, має обробляти повідомлення, надіслані до \"\n\"стандартного виведення, (окрім повідомлень смужки поступу) як повідомлення \"\n\"щодо стану. Ці повідомлення може бути записано до журналу і/або показано \"\n\"користувачеві.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\"Програма, яка надсилає виклик, має обробляти повідомлення, надіслані до \"\n\"stderr як повідомлення про помилки. Крім того, virt-v2v завершує роботу із \"\n\"ненульовим кодом стану, якщо станеться критична помилка.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\"У virt-v2v E<le> 0.9.1 взагалі не передбачено підтримки параметра I<--\"\n\"machine-readable>. Цей параметр було додано під час переписування virt-v2v у \"\n\"2014 році.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\"Можна вказати рядок форматування для керування виведенням, див. L<guestfs(3)/\"\n\"РОЗШИРЕНЕ ПРИДАТНЕ ДО ЧИТАННЯ КОМП'ЮТЕРОМ ВИВЕДЕННЯ>.\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"Запуск екземпляра системи libvirt\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"Див. також L<https://bugzilla.redhat.com/2182024>.\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"ФАЙЛИ\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"F</usr/share/virtio-win>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"(Необов’язково)\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\"Якщо існує цей каталог, драйвери virtio для гостьових систем Windows буде \"\n\"знайдено у цьому каталозі і встановлено до гостьової системи під час \"\n\"перетворення.\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"ЗМІННІ СЕРЕДОВИЩА\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"C<VIRT_V2V_TMPDIR>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"C<LIBGUESTFS_CACHEDIR>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\"Розташування каталогу тимчасових даних, який використовуватиметься для \"\n\"потенційно великих тимчасових файлів-накладок. Якщо не встановлено жодного \"\n\"значення змінної середовища, буде використано F</var/tmp>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"Див. розділ L</Місце на диску> вище.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"C<VIRT_TOOLS_DATA_DIR>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\"Ця змінна визначає каталог, у якому містяться файли даних, які \"\n\"використовуються для перетворення Windows.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\"Зазвичай, потреби у встановленні власного значення немає. Якщо значення не \"\n\"встановлено, буде використано вбудоване типове значення (щось схоже на F</\"\n\"usr/share/virt-tools>).\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"Цей каталог може містити такі файли:\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"F<rhsrvany.exe>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"(Потрібен для перетворень гостьових систем Windows)\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\"Це виконуваний файл для Windows RHSrvAny, який використовується для \"\n\"встановлення скрипту «firstboot» у гостьові системи під час перетворення \"\n\"гостьових систем Windows.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"Див. також C<https://github.com/rwmjones/rhsrvany>\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"F<pnp_wait.exe>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"(Рекомендовано для перетворень гостьових систем Windows)\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"F<pvvxsvc.exe>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\"Це виконуваний файл Windows, що постачається разом із VMDP SUSE, \"\n\"використовується для встановлення скрипту «firstboot» у гостьові системи \"\n\"Windows. Альтернатива RHSrvAny.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"C<VIRTIO_WIN>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\"Це перевизначене місце, у якому виконуватиметься пошук драйверів virtio для \"\n\"Windows. Це може бути каталог I<або> вказівник на F<virtio-win.iso> (образ \"\n\"CD ROM, на якому містяться драйвери).\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\"Якщо не встановлено, відбуватиметься пошук драйверів; знайденим \"\n\"вважатиметься драйвер, який з цих методів першим дасть успішний результат:\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"F</usr/share/virtio-win/virtio-win.iso>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"Образ ISO, де містяться драйвери virtio для Windows.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\n#, fuzzy\n#| msgid \"The ISO containing virtio drivers for Windows.\"\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"Образ ISO, де містяться драйвери virtio для Windows.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"Див. L</Вмикання virtio>.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\"Опис інших змінних середовища наведено у розділі L<guestfs(3)/ENVIRONMENT \"\n\"VARIABLES>.\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"ІНШІ ІНСТРУМЕНТИ\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"L<engine-image-uploader(8)>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\n#, fuzzy\n#| msgid \"\"\n#| \"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n#| \"C<rhevm-image-uploader>, this tool allows you to copy a guest from one \"\n#| \"oVirt or RHV Export Storage Domain to another.  It only permits importing \"\n#| \"a guest that was previously exported from another oVirt/RHV instance.\"\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\"Цей інструмент може називатися C<engine-image-uploader>, C<ovirt-image-\"\n\"uploader> або C<rhevm-image-uploader>. За його допомогою можна скопіювати \"\n\"гостьову систему з одного домену сховища експортування oVirt або RHV до \"\n\"іншого. Його використання надає змогу імпортувати лише ті гостьові системи, \"\n\"які раніше було експортовано з іншого екземпляра oVirt/RHV.\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\n#, fuzzy\n#| msgid \"\"\n#| \"This script can be used to import guests that already run on KVM to oVirt \"\n#| \"or RHV.  For more information, see this blog posting by the author of \"\n#| \"virt-v2v:\"\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\"Цим скриптом можна скористатися для імпортування гостьових систем, які вже \"\n\"запущено у KVM до oVirt або RHV. Щоб дізнатися більше, ознайомтеся із цим \"\n\"дописом у блозі автора virt-v2v:\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\n#, fuzzy\n#| msgid \"\"\n#| \"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n#| \"customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, L<virt-\"\n#| \"sparsify(1)>, L<virt-sysprep(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n#| \"img(1)>, L<engine-image-uploader(8)>, L<import-to-ovirt.pl|http://\"\n#| \"git.annexia.org/?p=import-to-ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-\"\n#| \"plugin(1)>, L<http://libguestfs.org/>.\"\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, L<virt-sparsify(1)>, \"\n\"L<virt-sysprep(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-\"\n\"image-uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"Matthew Booth\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"Cédric Bosdonnat\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"Shahar Havivi\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"Xiaodai Wang\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"Tingting Zheng\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\"virt-v2v-in-place - перетворення гостьової системи для використання KVM на \"\n\"місці\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v-in-place -i диск [інші параметриr -i*]\\n\"\n\"                   [параметри virt-customize]\\n\"\n\"                   назва_файла\\n\"\n\"                   [-O результат.xml]\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [інші параметри -i*]\\n\"\n\"                   [параметри virt-customize]\\n\"\n\"                   гостьова_система\\n\"\n\"                   [-O результат.xml]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\"Virt-v2v-in-place перетворює одну гостьову систему зі стороннього \"\n\"гіпервізора для запуску у KVM. Перетворення виконується на місці, зі \"\n\"внесенням змін до початкового диска.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\"На цій сторінці документації наведено дані щодо відмінностей між цим \"\n\"інструментом і virt-v2v. Вам слід спочатку прочитати сторінку L<virt-v2v(1)>.\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"Вибір диска вхідних даних\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\"Зазвичай, virt-v2v запускають з одним або декількома параметрами I<-i*>, що \"\n\"керують режимом вхідних даних. Virt-v2v-in-place може перетворювати лише \"\n\"гостьові системи, що зберігаються у локальних файлах.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"Ця команда виконує перетворення на місці файла F<назва_файла.img>:\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v-in-place -i disk назва_файла.img\\n\"\n\"\\n\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"Якщо гостьову систему було скопійовано до локальної libvirt, тоді:\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"Виведення до XML\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\"Якщо потрібно, скористайтеся параметром I<-O>, щоб записати створені після \"\n\"перетворення метадані щодо гостьової системи до файла XML. Це той самий \"\n\"формат, що і у L<virt-v2v-inspector(1)>. Цим можна скористатися, наприклад, \"\n\"для визначення того, яку операційну систему та мікропрограму було виявлено \"\n\"всередині гостьової системи під час перетворення.\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"Код виходу\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\"Якщо робота virt-v2v-in-place завершується помилкою, програма повертає \"\n\"ненульовий стан виходу (помилку). У цьому випадку образ диска перебуватиме у \"\n\"стані B<unknown, possibly corrupted state>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\"Якщо образ містить важливу інформацію, вам слід переконатися, що у вас є \"\n\"резервна копія, перш ніж пробувати перетворення virt-v2v-in-place. І вам \"\n\"варто перевірити, чи є нульовим код виходу, перш ніж використовувати образ \"\n\"диска після перетворення.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\"Можна використовувати лише локальні з'єднання libvirt з локальними сховищами \"\n\"даних на дисках.\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\"Надає файл, який містить пароль і яким слід скористатися для з'єднання із \"\n\"джерелом. Якщо не вказано, гіпервізор вхідних даних може надіслати запит \"\n\"щодо пароля у інтерактивному режимі. Зауважте, що файл має містити увесь \"\n\"пароль, B<без завершального символу нового рядка>, і, з міркувань безпеки, \"\n\"для файла має бути встановлено режим доступу C<0600>, щоб інші користувачі \"\n\"не змогли його читати.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"Див. L<virt-v2v(1)/Мережі і містки>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\"Поля у параметрі є такими: C<ipaddr> є IP-адресою; C<gw> — необов'язкова IP-\"\n\"адреса шлюзу; C<len> — довжина маски підмережі (ціле число). Останні \"\n\"параметри є нульовими або додатковими IP-адресами назв серверів.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\"За допомогою цього параметра можна зробити виведені дані придатнішими для \"\n\"обробки комп'ютером, якщо для цієї обробки використовуються інші програми. \"\n\"Див. L<virt-v2v(1)/Придатне до читання компʼютером виведення>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"B<-O> результат.xml\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"B<-O ->\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\"Якщо вказано цей параметр, записати метадані про гостьову систему після \"\n\"перетворення до вказаного файла XML або до stdout, якщо використано I<-O ->. \"\n\"Це такий самий формат, як L<virt-v2v-inspector(1)>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\"Вивести дані щодо початкової гостьової системи і припинити обробку. Цей \"\n\"параметр корисний, якщо ви налаштовуєте прив'язки мереж та містків. Див. \"\n\"L<virt-v2v(1)/Мережі і містки>.\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"B<--root> ...\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\n#, fuzzy\n#| msgid \"Choose the root filesystem to be converted.\"\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"Вибрати кореневу файлову систему для перетворення.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"Контрольна сума диска\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\"Необов'язкове поле E<lt>checksumE<gt> визначає очікуваний хеш відповідного \"\n\"диска. Його може бути вказано засобами керування з метою виконання \"\n\"міжвузлових перевірок цілісності даних.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\"Зауважте, що це контрольна сума даних на диску у необробленому форматі. Якщо \"\n\"диск зберігається у форматі контейнера (наприклад qcow2), це контрольна сума \"\n\"даних, а I<не> контейнера.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\"Атрибут методу обчислення контрольної суми може мати значення C<md5>, \"\n\"C<sha256> або C<sha512>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\"Значенням атрибута fail може бути C<error> для завершення перетворення, якщо \"\n\"контрольні суми не збігаються; C<warn> для виведення попередження, але з \"\n\"продовженням обробки; C<ignore> для ігнорування контрольної суми навіть без \"\n\"її обчислення або C<print> для виведення самої контрольної суми і \"\n\"продовження обробки. Типовим значенням є C<fail=warn>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\"Обчислення контрольної суми для віддаленого джерела (наприклад HTTP) може \"\n\"бути повільним і обчислювально витратним завданням.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\"Використані файли збігаються з тими, що і для virt-v2v. Див. L<virt-v2v(1)/\"\n\"ФАЙЛИ>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\"Використані змінні середовища є тими самими, що і для virt-v2v. Див. L<virt-\"\n\"v2v(1)/ЗМІННІ СЕРЕДОВИЩА>.\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\"virt-v2v-inspector — оцінка місця на диску, яке потрібне до перетворення \"\n\"virt-v2v\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v-inspector [-i* параметри]\\n\"\n\"                    [параметри virt-customize]\\n\"\n\"                    гостьова_система\\n\"\n\"                    [-O результат.xml]\\n\"\n\"\\n\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\"Virt-v2v-inspector є допоміжним інструментом L<virt-v2v(1)>, яким можна \"\n\"скористатися до перетворення для оцінки кількості дисків виведення даних та \"\n\"місця на диску, яке знадобиться для завершення перетворення virt-v2v. \"\n\"Типовим випадком використання є попереднє розміщення дисків призначення у \"\n\"системах керування, які цього потребують (зокрема Kubevirt).\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\"На цій сторінці підручника наведено документацію лише до можливостей з \"\n\"оцінки, а не усіх параметрів I<-i*>, які збігаються з параметрами virt-v2v. \"\n\"Вам спочатку слід ознайомитися зі сторінкою L<virt-v2v(1)>.\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"Вибір вхідної гостьової системи\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\"Ви можете запустити virt-v2v-inspector із тими самими параметрами I<-i*>, що \"\n\"і virt-v2v. (Не використовуйте параметри I<-o*>). У результаті буде вибрано \"\n\"гостьову систему, оцінку для якої ви хочете отримати.\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\"Наприклад, щоб оцінити місце, яке знадобиться для гостьової системи на \"\n\"збереженому локальному диску із назвою F<назва_файла.img>, можна \"\n\"скористатися такою командою:\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v-inspector -i disk назва_файла.img\\n\"\n\"\\n\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"Результат\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"Результатом роботи цього інструменту є документ XML.\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\"Оцінку буде виконано лише для полів із анотацією C<estimated='true'>. Virt-\"\n\"v2v не завжди може точно визначити остаточний розмір деяких частин, зокрема \"\n\"точний розмір диска-результату, оскільки між різними запусками можуть бути \"\n\"незначні флуктуації. Зазвичай, оцінки дуже близькі до остаточних результатів.\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\"Обійти цю проблему можна копіюванням блокового пристрою з віддаленого \"\n\"сервера Xen до звичайного локального файла, копіюванням XML гостьової \"\n\"системи libvirt, коригуванням елемента C<disk> так, щоб він вказував на \"\n\"локальний файл і заміною режиму на C<-i libvirtxml>.\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\"Типово, результати буде виведено до stdout. Це корисно, якщо ви користуєтеся \"\n\"програмою інтерактивно. Втім, якщо ви захочете скористатися цим інструментом \"\n\"з іншої програми, краще надсилати результати до вказаного файла за допомогою \"\n\"параметра I<-O результат.xml>\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\"Елементи E<lt>programE<gt>, E<lt>packageE<gt> і E<lt>versionE<gt> стосуються \"\n\"поточної версії virt-v2v-inspector і корисні для діагностики. Слід \"\n\"використовувати однакові версії virt-v2v-inspector і virt-v2v.\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\"Елемент E<lt>disksE<gt> містить дані щодо усіх дисків гостьової системи. \"\n\"Наведений вище приклад віртуальної машини має два диски. E<lt>virtual-\"\n\"sizeE<gt> описує розмір диска, який видно зсередини гостьової системи, тоді \"\n\"як E<lt>allocatedE<gt> — це приблизний обсяг пам’яті, який знадобиться в \"\n\"основній системі після перетворення. Припускається, що ви використовуєте \"\n\"S<I<-oa sparse>> — див. примітки нижче.\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\"Елемент E<lt>operatingsystemE<gt> містить дані щодо гостьової операційної \"\n\"системи, отримані під час перетворення, у спосіб, подібний до інструменту \"\n\"L<virt-inspector(1)> з guestfs-tools.\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"Режим отримання пам'яті для виведених даних та формат результатів\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\"У virt-v2v передбачено підтримку вибору режиму розміщення результатів \"\n\"обробки (параметр I<-oa>) і формату результатів (параметр I<-of>, наприклад \"\n\"S<I<-of qcow2>>). Оскільки важко передбачити вплив цих параметрів на \"\n\"фактичний простір, який займатиме образ-результат, цей інструмент не \"\n\"враховує їх.\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"Емпіричне правило:\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"S<virt-v2v -oa preallocated>\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\"призводить до того, що образи дисків на цільовому диску займають свій повний \"\n\"віртуальний розмір (виключення ефекту отримання місця для нульових об'єктів \"\n\"буде залежати від базового сховища даних, його часто важко передбачити \"\n\"навіть експертам).\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"S<virt-v2v -of qcow2>\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\"використовує формат QCOW2 там, де передбачено його підтримку, що означає, що \"\n\"видимий розмір файла дорівнюватиме його розрідженому розміру, але в іншому \"\n\"випадку це не повинно дуже впливати на оцінки.\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"B<-O> F<результат.xml>\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"Записати виведені дані до файла із назвою F<результат.xml>.\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\"Записати результати до stdout. Цей варіант також буде вибрано, якщо параметр \"\n\"I<-O> не вказано.\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"B<-i> ...\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"B<-ic> ...\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"B<-if> ...\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"B<-io> ...\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"B<-ip> ...\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"B<-it> ...\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\"Усі параметри I<-i*>, підтримку яких передбачено у virt-v2v, також можна \"\n\"використовувати у virt-v2v-inspector.\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"B<--key> ...\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"B<--mac> ...\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"B<-n> ...\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"B<--network> ...\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"Ці параметри працюють так само, як їхні еквіваленти з virt-v2v.\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, fuzzy, no-wrap\n#| msgid \"\"\n#| \" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n#| \"\\n\"\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\" virt-v2v [параметри -i*] -o local -os КАТАЛОГ\\n\"\n\"\\n\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\n#, fuzzy\n#| msgid \"\"\n#| \"This manual page only documents the estimation feature, not all of the I<-\"\n#| \"i*> options which are the same as virt-v2v.  You should read L<virt-\"\n#| \"v2v(1)> first.\"\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\"На цій сторінці підручника наведено документацію лише до можливостей з \"\n\"оцінки, а не усіх параметрів I<-i*>, які збігаються з параметрами virt-v2v. \"\n\"Вам спочатку слід ознайомитися зі сторінкою L<virt-v2v(1)>.\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\n#, fuzzy\n#| msgid \"\"\n#| \"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n#| \"(Don't use any I<-o*> options).  This will select the guest that you want \"\n#| \"to estimate.\"\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\"Ви можете запустити virt-v2v-inspector із тими самими параметрами I<-i*>, що \"\n\"і virt-v2v. (Не використовуйте параметри I<-o*>). У результаті буде вибрано \"\n\"гостьову систему, оцінку для якої ви хочете отримати.\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\n#, fuzzy\n#| msgid \"Mounting the Export Storage Domain\"\nmsgid \"Running the program\"\nmsgstr \"Монтування Export Storage Domain\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\n#, fuzzy\n#| msgid \"\"\n#| \"All of the I<-i*> options supported by virt-v2v and also supported by \"\n#| \"virt-v2v-inspector.\"\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\"Усі параметри I<-i*>, підтримку яких передбачено у virt-v2v, також можна \"\n\"використовувати у virt-v2v-inspector.\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\n#, fuzzy\n#| msgid \"B<--run> SCRIPT\"\nmsgid \"B<--run> COMMAND\"\nmsgstr \"B<--run> СКРИПТ\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\n#, fuzzy\n#| msgid \"\"\n#| \"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n#| \"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\n\n#, fuzzy\n#~| msgid \"Mounting the Export Storage Domain\"\n#~ msgid \"ifelse(ENABLE_OVIRT, yes, ` =item Mounting the Export Storage Domain\"\n#~ msgstr \"Монтування Export Storage Domain\"\n\n#~ msgid \"B<\\\"osinfo\\\">\"\n#~ msgstr \"B<\\\"osinfo\\\">\"\n\n#~ msgid \"\"\n#~ \"The literal string C<\\\"osinfo\\\"> means to use the libosinfo database to \"\n#~ \"locate the drivers.  (See L<osinfo-query(1)>.\"\n#~ msgstr \"\"\n#~ \"Рядок C<\\\"osinfo\\\"> буквально означає, що слід використовувати базу даних \"\n#~ \"libosinfo для пошуку драйверів. (Див. L<osinfo-query(1)>.\"\n\n#~ msgid \"B<--sm-attach> SELECTOR\"\n#~ msgstr \"B<--sm-attach> ВАРІАНТ\"\n\n#~ msgid \"Attach to a pool using C<subscription-manager>.\"\n#~ msgstr \"\"\n#~ \"Долучити систему до буфера передплати за допомогою C<subscription-\"\n#~ \"manager>.\"\n\n#~ msgid \"\"\n#~ \"See L<virt-builder(1)/SUBSCRIPTION-MANAGER> for the format of the \"\n#~ \"C<SELECTOR> field.\"\n#~ msgstr \"\"\n#~ \"Формат поля C<ВАРІАНТ> описано у розділі L<virt-builder(1)/SUBSCRIPTION-\"\n#~ \"MANAGER>.\"\n\n#~ msgid \"B<--sm-credentials> SELECTOR\"\n#~ msgstr \"B<--sm-credentials> ВАРІАНТ\"\n\n#~ msgid \"Set the credentials for C<subscription-manager>.\"\n#~ msgstr \"Встановити реєстраційні дані для C<subscription-manager>.\"\n\n#~ msgid \"B<--sm-register>\"\n#~ msgstr \"B<--sm-register>\"\n\n#~ msgid \"Register the guest using C<subscription-manager>.\"\n#~ msgstr \"\"\n#~ \"Зареєструвати гостьову систему за допомогою C<subscription-manager>.\"\n\n#~ msgid \"This requires credentials being set using I<--sm-credentials>.\"\n#~ msgstr \"\"\n#~ \"Потребує встановлення реєстраційних даних за допомогою I<--sm-\"\n#~ \"credentials>.\"\n\n#~ msgid \"B<--sm-remove>\"\n#~ msgstr \"B<--sm-remove>\"\n\n#~ msgid \"\"\n#~ \"Remove all the subscriptions from the guest using C<subscription-manager>.\"\n#~ msgstr \"\"\n#~ \"Вилучити усі передплати з гостьової системи за допомогою C<subscription-\"\n#~ \"manager>.\"\n\n#~ msgid \"B<--sm-unregister>\"\n#~ msgstr \"B<--sm-unregister>\"\n\n#~ msgid \"Unregister the guest using C<subscription-manager>.\"\n#~ msgstr \"\"\n#~ \"Зняти гостьову систему з реєстрації за допомогою C<subscription-manager>.\"\n\n#~ msgid \"\"\n#~ \"S<I<--root first>> means to choose the first root device in the case of a \"\n#~ \"multi-boot operating system.  Since this is a heuristic, it may sometimes \"\n#~ \"choose the wrong one.\"\n#~ msgstr \"\"\n#~ \"S<I<--root first>> означає, що слід вибрати перший кореневий пристрій, \"\n#~ \"якщо буде виявлено операційну систему із варіантами завантаження. \"\n#~ \"Оскільки виявлення кореневих пристроїв пов'язано із евристикою, іноді \"\n#~ \"програма може вибрати помилковий пристрій.\"\n\n#~ msgid \"\"\n#~ \"Note that there is a bug in grub which prevents it from successfully \"\n#~ \"booting a multiboot system if virtio is enabled.  Grub is only able to \"\n#~ \"boot an operating system from the first virtio disk.  Specifically, F</\"\n#~ \"boot> must be on the first virtio disk, and it cannot chainload an OS \"\n#~ \"which is not in the first virtio disk.\"\n#~ msgstr \"\"\n#~ \"Зауважте, що у grub є вада, яка заважає успішно завантажувати систему із \"\n#~ \"варіантами завантаження, якщо увімкнено virtio. Grub може завантажувати \"\n#~ \"лише операційні системи з першого диска virtio. Зокрема, F</boot> має \"\n#~ \"бути першим диском virtio, і grub не може ланцюгово завантажувати \"\n#~ \"операційну систему, яка не зберігається на першому диску virtio.\"\n\n#~ msgid \"\"\n#~ \"You must find the SSL \\\"thumbprint\\\" of your VMware server.  How to do \"\n#~ \"this is explained in L<nbdkit-vddk-plugin(1)>, also available at the link \"\n#~ \"above.\"\n#~ msgstr \"\"\n#~ \"Вам слід знайти «відбиток» SSL вашого сервера VMware. Опис того, як це \"\n#~ \"зробити, наведено на сторінці підручника L<nbdkit-vddk-plugin(1)>, його \"\n#~ \"також наведено за вказаним вище посиланням.\"\n\n#~ msgid \"5.\"\n#~ msgstr \"5.\"\n\n#~ msgid \"OUTPUT TO RHV\"\n#~ msgstr \"ВИВЕДЕННЯ ДО RHV\"\n\n#~ msgid \"Red Hat Virtualization (RHV) 4.1 and up\"\n#~ msgstr \"Red Hat Virtualization (RHV) 4.1 і новіші версії\"\n\n#~ msgid \"This is the same as I<-oo compressed>.\"\n#~ msgstr \"Те саме, що і I<-oo compressed>.\"\n\n#~ msgid \"\"\n#~ \"This parameter is required when using the I<-it vddk> (VDDK) transport.  \"\n#~ \"See L<virt-v2v-input-vmware(1)> for details.\"\n#~ msgstr \"\"\n#~ \"Цей параметр потрібен, якщо використовується канал передавання I<-it \"\n#~ \"vddk> (VDDK). Щоб дізнатися більше, ознайомтеся зі сторінкою L<virt-v2v-\"\n#~ \"input-vmware(1)>.\"\n\n#~ msgid \"This is the same as I<-o rhv>.\"\n#~ msgstr \"Те саме, що і I<-o rhv>.\"\n\n#~ msgid \"This is the same as I<-o rhv-upload>.\"\n#~ msgstr \"Те саме, що і I<-o rhv-upload>.\"\n\n#~ msgid \"B<-o> B<rhev>\"\n#~ msgstr \"B<-o> B<rhev>\"\n\n#~ msgid \"B<-o> B<rhv>\"\n#~ msgstr \"B<-o> B<rhv>\"\n\n#~ msgid \"B<-o> B<rhv-upload>\"\n#~ msgstr \"B<-o> B<rhv-upload>\"\n\n#~ msgid \"B<-oo rhv-cafile=>F<ca.pem>\"\n#~ msgstr \"B<-oo rhv-cafile=>F<ca.pem>\"\n\n#~ msgid \"rhvexp\"\n#~ msgstr \"rhvexp\"\n\n#~ msgid \"This is the same as I<-oo qemu-boot>.\"\n#~ msgstr \"Те саме, що і I<-oo qemu-boot>.\"\n\n#~ msgid \"Debian and Ubuntu\"\n#~ msgstr \"Debian і Ubuntu\"\n\n#~ msgid \"Windows\"\n#~ msgstr \"Windows\"\n\n#~ msgid \"Resource requirements\"\n#~ msgstr \"Вимоги щодо ресурсів\"\n\n#~ msgid \"Post-conversion tasks\"\n#~ msgstr \"Завдання після перетворення\"\n\n#~ msgid \"\"\n#~ \"See also L</Resource requirements> above and L</ENVIRONMENT VARIABLES> \"\n#~ \"below.\"\n#~ msgstr \"\"\n#~ \"Див. також L</Вимоги щодо ресурсів> вище і L</ЗМІННІ СЕРЕДОВИЩА> нижче.\"\n\n#~ msgid \"\"\n#~ \"The exploded tree of virtio drivers for Windows.  This is usually \"\n#~ \"incomplete, hence the least preferred method.\"\n#~ msgstr \"\"\n#~ \"Розгорнута ієрархія драйверів virtio для Windows. Зазвичай, там є не усі \"\n#~ \"драйвери, тому цей спосіб є найменш пріоритетним.\"\n\n#, fuzzy\n#~| msgid \"Copyright (C) 2009-2020 Red Hat Inc.\"\n#~ msgid \"Copyright (C) 2009-2022 Red Hat Inc.\"\n#~ msgstr \"© Red Hat Inc., 2009–2020\"\n\n#, fuzzy\n#~| msgid \"Copyright (C) 2009-2020 Red Hat Inc.\"\n#~ msgid \"Copyright (C) 2009-2023 Red Hat Inc.\"\n#~ msgstr \"© Red Hat Inc., 2009–2020\"\n\n#, fuzzy\n#~| msgid \"Copyright (C) 2009-2020 Red Hat Inc.\"\n#~ msgid \"Copyright (C) 2009-2024 Red Hat Inc.\"\n#~ msgstr \"© Red Hat Inc., 2009–2020\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" RHEL 3         (Does not apply, as there was no Xen PV kernel)\\n\"\n#~ \" \\n\"\n#~ msgstr \"\"\n#~ \" RHEL 3         (Неможливо визначити, не було ядра PV Xen)\\n\"\n#~ \" \\n\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" RHEL 3         No virtio drivers are available\\n\"\n#~ \" \\n\"\n#~ msgstr \"\"\n#~ \" RHEL 3         Немає доступних драйверів virtio\\n\"\n#~ \" \\n\"\n\n#~ msgid \"\"\n#~ \"Relabel files in the guest so that they have the correct SELinux label.\"\n#~ msgstr \"\"\n#~ \"Повторно встановити мітки для файлів у гостьовій системі так, щоб вони \"\n#~ \"були правильними з точки зору SELinux.\"\n\n#~ msgid \"virt-v2v-copy-to-local - Copy a remote guest to the local machine\"\n#~ msgstr \"\"\n#~ \"virt-v2v-copy-to-local — копіювання віддаленої гостьової системи на \"\n#~ \"локальний комп'ютер\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" virt-v2v-copy-to-local -ic LIBVIRT_URI GUEST\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" virt-v2v-copy-to-local -ic АДРЕСА_LIBVIRT ГОСТЬОВА_СИСТЕМА\\n\"\n#~ \"\\n\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" virt-v2v-copy-to-local -ic xen+ssh://root@xen.example.com xen_guest\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" virt-v2v-copy-to-local -ic xen+ssh://root@xen.example.com xen_guest\\n\"\n#~ \"\\n\"\n\n#~ msgid \"\"\n#~ \"C<virt-v2v-copy-to-local> copies a guest from a remote hypervisor to the \"\n#~ \"local machine, in preparation for conversion by L<virt-v2v(1)>.  Note \"\n#~ \"this tool alone B<does not> do the virt-v2v conversion.\"\n#~ msgstr \"\"\n#~ \"C<virt-v2v-copy-to-local> копіює гостьову систему з віддаленого \"\n#~ \"гіпервізору на локальну машину, готуючи її для перетворення за допомогою \"\n#~ \"L<virt-v2v(1)>. Зауважте, що сама ця програма B<не> виконує перетворення \"\n#~ \"virt-v2v.\"\n\n#~ msgid \"When to use this tool\"\n#~ msgstr \"Умови використання цієї програми\"\n\n#~ msgid \"\"\n#~ \"This tool is not usually necessary, but there are a few special cases \"\n#~ \"(see list below) where you might need it.\"\n#~ msgstr \"\"\n#~ \"Зазвичай, потреби у безпосередньому використанні цієї програми немає, але \"\n#~ \"існує декілька особливих випадків (див. наведений нижче список), коли у \"\n#~ \"ній може виникнути потреба.\"\n\n#~ msgid \"\"\n#~ \"If your case does not fit one of these special cases, then ignore this \"\n#~ \"tool and read L<virt-v2v(1)> instead.  The virt-v2v-copy-to-local process \"\n#~ \"is slower than using virt-v2v directly, because it has to copy unused \"\n#~ \"parts of the guest disk.\"\n#~ msgstr \"\"\n#~ \"Якщо ваш випадок не вписується у одних з цих особливих випадків, \"\n#~ \"ігноруйте цю програму і ознайомтеся краще зі сторінкою підручника щодо \"\n#~ \"L<virt-v2v(1)>. Процес virt-v2v-copy-to-local є повільнішим за \"\n#~ \"безпосереднє використання virt-v2v, оскільки під час його виконання \"\n#~ \"копіюються невикористані частини диска гостьової системи.\"\n\n#~ msgid \"\"\n#~ \"You have a Xen guest using host block devices.  Virt-v2v cannot convert \"\n#~ \"such guests directly.\"\n#~ msgstr \"\"\n#~ \"Якщо ви маєте справу з гостьовою системою Xen, де використовуються \"\n#~ \"блокові пристрої. Програма virt-v2v не здатна перетворювати такі гостьові \"\n#~ \"системи безпосередньо.\"\n\n#~ msgid \"See L<virt-v2v-input-xen(1)>.\"\n#~ msgstr \"Див. L<virt-v2v-input-xen(1)>.\"\n\n#~ msgid \"How this tool works\"\n#~ msgstr \"Як працює ця програма\"\n\n#~ msgid \"\"\n#~ \"This tool uses libvirt to get the libvirt XML (metadata) of the remote \"\n#~ \"guest, essentially equivalent to running C<virsh dumpxml guest>.\"\n#~ msgstr \"\"\n#~ \"Ця програма використовує libvirt для отримання XML libvirt (метаданих) з \"\n#~ \"віддаленої гостьової системи. По суті, її робота еквівалентна до команди \"\n#~ \"C<virsh dumpxml гостьова_система>.\"\n\n#~ msgid \"\"\n#~ \"It then uses the XML to locate the remote guest disks, which are copied \"\n#~ \"over using a hypervisor-specific method.  It uses ssh for remote Xen \"\n#~ \"hypervisors.\"\n#~ msgstr \"\"\n#~ \"Далі, вона використовує XML для пошуку дисків віддаленої гостьової \"\n#~ \"системи, які копіюються за допомогою специфічного для гіпервізору \"\n#~ \"способу. Програма використовує ssh для віддалених гіпервізорів Xen.\"\n\n#~ msgid \"\"\n#~ \"It then modifies the libvirt XML so that it points at the local copies of \"\n#~ \"the guest disks.\"\n#~ msgstr \"\"\n#~ \"Далі, програма вносить зміни до XML libvirt, так, щоб файл вказував на \"\n#~ \"локальні копії дисків гостьової системи.\"\n\n#~ msgid \"\"\n#~ \"The libvirt XML is output to a file called F<guest.xml> (where I<guest> \"\n#~ \"is the name of the guest).  The disk(s) are output to file(s)  called \"\n#~ \"F<guest-disk1>, F<guest-disk2> and so on.\"\n#~ msgstr \"\"\n#~ \"XML libvirt виводиться до файла із назвою F<гостьова_система.xml> (де \"\n#~ \"I<гостьова_система> є назвою гостьової системи). Диски виводяться до \"\n#~ \"файлів із назвами F<гостьова_система-disk1>, F<гостьова_система-disk2> \"\n#~ \"тощо.\"\n\n#~ msgid \"After copying the guest locally, you can convert it using:\"\n#~ msgstr \"\"\n#~ \"Після локального копіювання гостьової системи ви можете перетворити її за \"\n#~ \"допомогою такої команди:\"\n\n#~ msgid \"Virt-v2v finds the local copies of the disks by looking in the XML.\"\n#~ msgstr \"Virt-v2v шукає локальні копії дисків за допомогою даних з XML.\"\n\n#~ msgid \"Copy and convert from Xen hypervisor that uses host block devices\"\n#~ msgstr \"\"\n#~ \"Копіювання і перетворення гостьових систем гіпервізорів Xen, де \"\n#~ \"використовуються блокові пристрої основної системи\"\n\n#~ msgid \"For full instructions, see L<virt-v2v-input-xen(1)>.\"\n#~ msgstr \"Докладні настанови наведено у розділі L<virt-v2v-input-xen(1)>.\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" virt-v2v-copy-to-local -ic xen+ssh://root@xen.example.com xen_guest\\n\"\n#~ \" virt-v2v -i libvirtxml xen_guest.xml -o local -os /var/tmp\\n\"\n#~ \" rm xen_guest.xml xen_guest-disk*\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" virt-v2v-copy-to-local -ic xen+ssh://root@xen.example.com xen_guest\\n\"\n#~ \" virt-v2v -i libvirtxml xen_guest.xml -o local -os /var/tmp\\n\"\n#~ \" rm xen_guest.xml xen_guest-disk*\\n\"\n#~ \"\\n\"\n\n#~ msgid \"Specify a libvirt connection URI\"\n#~ msgstr \"Вкажіть адресу з'єднання libvirt\"\n\n#~ msgid \"B<-ip> file\"\n#~ msgstr \"B<-ip> файл\"\n\n#~ msgid \"\"\n#~ \"Instead of asking for password(s) interactively, pass the password \"\n#~ \"through a file.  Note the file should contain the whole password, \"\n#~ \"B<without any trailing newline>, and for security the file should have \"\n#~ \"mode C<0600> so that others cannot read it.\"\n#~ msgstr \"\"\n#~ \"Замість виведення паролів у інтерактивному режимі, передайте пароль за \"\n#~ \"допомогою файла. Зауважте, що файл має містити увесь пароль, B<без \"\n#~ \"завершального символу нового рядка>, і, з міркувань безпеки, для файла \"\n#~ \"має бути встановлено режим доступу C<0600>, щоб інші користувачі не \"\n#~ \"змогли його читати.\"\n\n#~ msgid \"\"\n#~ \"Currently this option does not have any effect on xen+ssh transfers, but \"\n#~ \"that is a bug.\"\n#~ msgstr \"\"\n#~ \"У поточній версії цей параметр не впливає на передавання даних xen+ssh, \"\n#~ \"але це просто вада поточної реалізації.\"\n\n#~ msgid \"\"\n#~ \"L<virt-v2v(1)>, L<virsh(1)>, L<http://libguestfs.org/>, L<https://\"\n#~ \"libvirt.org/uri.html>, L<https://libvirt.org/remote.html>.\"\n#~ msgstr \"\"\n#~ \"L<virt-v2v(1)>, L<virsh(1)>, L<http://libguestfs.org/>, L<https://\"\n#~ \"libvirt.org/uri.html>, L<https://libvirt.org/remote.html>.\"\n\n#~ msgid \"Richard W.M. Jones L<http://people.redhat.com/~rjones/>\"\n#~ msgstr \"Richard W.M. Jones L<http://people.redhat.com/~rjones/>\"\n\n#~ msgid \"\"\n#~ \"Any space must be escaped with C<%20> and other non-ASCII characters may \"\n#~ \"also need to be URI-escaped.\"\n#~ msgstr \"\"\n#~ \"Усі пробіли слід замінити на комбінації C<%20>. Інші символи, які не є \"\n#~ \"частиною ASCII, також можуть потребувати заміни на відповідні \"\n#~ \"шістнадцяткові комбінації.\"\n\n#~ msgid \"\"\n#~ \"Note that you may be asked for the vCenter password I<twice>.  This \"\n#~ \"happens once because libvirt needs it, and a second time because virt-v2v \"\n#~ \"itself connects directly to the server.  Use I<-ip> F<filename> to supply \"\n#~ \"a password via a file.\"\n#~ msgstr \"\"\n#~ \"Зауважте, що вам може бути надіслано запит щодо пароля vCenter I<двічі>. \"\n#~ \"Перший раз цей пароль буде потрібен libvirt, а другий раз — самій virt-\"\n#~ \"v2v для безпосереднього з'єднання із сервером. Скористайтеся параметром \"\n#~ \"I<-ip> F<назва_файла> для надання пароля за допомогою файла.\"\n\n#~ msgid \"\"\n#~ \"You can use SSH password authentication, by supplying the name of a file \"\n#~ \"containing the password to the I<-ip> option (note this option does \"\n#~ \"I<not> take the password directly).\"\n#~ msgstr \"\"\n#~ \"Ви можете скористатися розпізнаванням за допомогою SSH за паролем, \"\n#~ \"вказавши назву файла, який містить пароль, як аргумент параметра I<-ip> \"\n#~ \"(зауважте, що цей параметр I<не> приймає пароль безпосередньо).\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" # update-crypto-policies --set LEGACY\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" # update-crypto-policies --set LEGACY\\n\"\n#~ \"\\n\"\n\n#~ msgid \"\"\n#~ \"Setting the L<backend|guestfs(3)/BACKEND> to C<direct> is a temporary \"\n#~ \"workaround until L<libvirt bug 1140166|https://bugzilla.redhat.com/\"\n#~ \"1140166> is fixed.\"\n#~ msgstr \"\"\n#~ \"Встановлення для L<модуля|guestfs(3)/МОДУЛЬ> значення C<direct> є \"\n#~ \"тимчасовим обхідним заходом, доки не буде виправлено L<ваду libvirt \"\n#~ \"1140166|https://bugzilla.redhat.com/1140166>.\"\n\n#~ msgid \"\"\n#~ \"The workaround is to copy the guest over to the conversion server, using \"\n#~ \"the separate L<virt-v2v-copy-to-local(1)> tool, followed by running virt-\"\n#~ \"v2v.  You will need sufficient space on the conversion server to store a \"\n#~ \"full copy of the guest.\"\n#~ msgstr \"\"\n#~ \"Обійти проблему можна скопіювавши гостьову систему на сервер перетворення \"\n#~ \"за допомогою окремої програми L<virt-v2v-copy-to-local(1)>, а потім \"\n#~ \"запустивши virt-v2v. Вам знадобиться достатньо вільного місця на дисках \"\n#~ \"сервера перетворення, щоб зберегти повну копію гостьової системи.\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" virt-v2v-copy-to-local -ic xen+ssh://root@xen.example.com guest\\n\"\n#~ \" virt-v2v -i libvirtxml guest.xml -o local -os /var/tmp\\n\"\n#~ \" rm guest.xml guest-disk*\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" virt-v2v-copy-to-local -ic xen+ssh://root@xen.example.com guest\\n\"\n#~ \" virt-v2v -i libvirtxml guest.xml -o local -os /var/tmp\\n\"\n#~ \" rm guest.xml guest-disk*\\n\"\n#~ \"\\n\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" virt-v2v [-i* options] -o json -os DIRECTORY\\n\"\n#~ \"                        [-oo json-disks-pattern=PATTERN]\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" virt-v2v [-i* параметри] -o json -os КАТАЛОГ\\n\"\n#~ \"                        [-oo json-disks-pattern=ВЗІРЕЦЬ]\\n\"\n#~ \"\\n\"\n\n#~ msgid \"B<-o json -os> C<DIRECTORY>\"\n#~ msgstr \"B<-o json -os> C<КАТАЛОГ>\"\n\n#~ msgid \"\"\n#~ \"This converts the guest to files in C<DIRECTORY>.  The metadata produced \"\n#~ \"is a JSON file containing the majority of the data virt-v2v gathers \"\n#~ \"during the conversion.  See L</OUTPUT TO JSON> below.\"\n#~ msgstr \"\"\n#~ \"Перетворює гостьову систему на файли у каталозі C<КАТАЛОГ>. Створені \"\n#~ \"метадані є файлом JSON, який містить більшу частину даних, які зібрано \"\n#~ \"virt-v2v під час перетворення. Див. L</ВИВЕДЕННЯ ДО JSON> нижче.\"\n\n#~ msgid \"OUTPUT TO JSON\"\n#~ msgstr \"ВИВЕДЕННЯ ДО JSON\"\n\n#~ msgid \"The I<-o json> option produces the following files by default:\"\n#~ msgstr \"Параметр I<-o json> типово створює такі файли:\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" NAME.json                     JSON metadata.\\n\"\n#~ \" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" NAME.json                     метадані JSON.\\n\"\n#~ \" NAME-sda, NAME-sdb тощо       гостьові диски.\\n\"\n#~ \"\\n\"\n\n#~ msgid \"\"\n#~ \"It is possible to change the pattern of the disks using the I<-oo json-\"\n#~ \"disks-pattern=...> option: it allows parameters in form of C<%{...}> \"\n#~ \"variables, for example:\"\n#~ msgstr \"\"\n#~ \"Взірець дисків можна змінити за допомогою параметра I<-oo json-disks-\"\n#~ \"pattern=...>: у ньому можна вказувати аргументи у формі змінних C<%{...}\"\n#~ \">. Приклад:\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" -oo json-disks-pattern=disk%{DiskNo}.img\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" -oo json-disks-pattern=disk%{DiskNo}.img\\n\"\n#~ \"\\n\"\n\n#~ msgid \"Recognized variables are:\"\n#~ msgstr \"Розпізнаваними змінними є такі:\"\n\n#~ msgid \"C<%{DiskNo}>\"\n#~ msgstr \"C<%{DiskNo}>\"\n\n#~ msgid \"The index of the disk, starting from 1.\"\n#~ msgstr \"Індекс диска, починаючи з 1.\"\n\n#~ msgid \"C<%{DiskDeviceName}>\"\n#~ msgstr \"C<%{DiskDeviceName}>\"\n\n#~ msgid \"The destination device of the disk, e.g. C<sda>, C<sdb>, etc.\"\n#~ msgstr \"Пристрій призначення диска. Приклади: C<sda>, C<sdb> тощо.\"\n\n#~ msgid \"C<%{GuestName}>\"\n#~ msgstr \"C<%{GuestName}>\"\n\n#~ msgid \"The name of the guest.\"\n#~ msgstr \"Назва гостьової системи.\"\n\n#~ msgid \"\"\n#~ \"Using a pattern it is possible use subdirectories for the disks, even \"\n#~ \"with names depending on variables; for example:\"\n#~ msgstr \"\"\n#~ \"За допомогою взірця можна використовувати підкаталоги дисків, навіть із \"\n#~ \"назвами, які залежать від змінних. Приклад:\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" -oo json-disks-pattern=%{GuestName}-%{DiskNo}/disk.img\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" -oo json-disks-pattern=%{GuestName}-%{DiskNo}/disk.img\\n\"\n#~ \"\\n\"\n\n#~ msgid \"The default pattern is C<%{GuestName}-%{DiskDeviceName}>.\"\n#~ msgstr \"Типовим взірцем є C<%{GuestName}-%{DiskDeviceName}>.\"\n\n#~ msgid \"\"\n#~ \"If the literal C<%{...}> text is needed, it is possible to avoid the \"\n#~ \"escape it with a leading C<%>; for example, C<%%{GuestName}-%\"\n#~ \"{DiskNo}.img> will create file names for the disks like C<%%\"\n#~ \"{GuestName}-1.img>, C<%%{GuestName}-2.img>, etc.\"\n#~ msgstr \"\"\n#~ \"Якщо потрібен буквальний текст C<%{...}>, можна використати екранування \"\n#~ \"початковим C<%>. Наприклад, C<%%{GuestName}-%{DiskNo}.img> призведе до \"\n#~ \"створення назв файлів для дисків, подібних до C<%%{GuestName}-1.img>, C<%%\"\n#~ \"{GuestName}-2.img> тощо.\"\n\n#~ msgid \"\"\n#~ \"the specified UUIDs are used as they are, without checking whether they \"\n#~ \"are already used by other disks\"\n#~ msgstr \"\"\n#~ \"вказані UUID використовуються без змін, без перевірки, чи \"\n#~ \"використовуються вони іншими дисками.\"\n\n#~ msgid \"\"\n#~ \"This option is considered advanced, and to be used mostly in combination \"\n#~ \"with I<--no-copy>.\"\n#~ msgstr \"\"\n#~ \"Цей параметр вважається додатковим і використовується здебільшого у \"\n#~ \"поєднанні із I<--no-copy>.\"\n\n#~ msgid \"\"\n#~ \"If this option is given then virt-v2v will attempt to directly upload the \"\n#~ \"disk to the oVirt node, otherwise it will proxy the upload through the \"\n#~ \"oVirt engine.  Direct upload requires that you have network access to the \"\n#~ \"oVirt nodes.  Non-direct upload is slightly slower but should work in all \"\n#~ \"situations.\"\n#~ msgstr \"\"\n#~ \"Якщо передано цей параметр, virt-v2v спробує безпосередньо вивантажити \"\n#~ \"диск до вузла oVirt. Якщо ж параметр не задано, вивантаження буде \"\n#~ \"виконано за посередництва рушія oVirt. Безпосереднє вивантаження потребує \"\n#~ \"доступ мережею до вузлів oVirt. Опосередковане вивантаження є дещо \"\n#~ \"повільнішим, але має працювати в усіх випадках.\"\n\n#~ msgid \"\"\n#~ \"We use Windows internal version numbers, see L<https://en.wikipedia.org/\"\n#~ \"wiki/List_of_Microsoft_Windows_versions>\"\n#~ msgstr \"\"\n#~ \"Ми використовуємо внутрішню нумерацію версій Windows, див. L<https://\"\n#~ \"en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions>\"\n\n#~ msgid \"Currently NT 5.2 to NT 6.3 are supported.\"\n#~ msgstr \"\"\n#~ \"У поточній версії передбачено підтримку версій від NT 5.2 до NT 6.3.\"\n\n#~ msgid \"\"\n#~ \"See L</WINDOWS> below for additional notes on converting Windows guests.\"\n#~ msgstr \"\"\n#~ \"Див. додаткові зауваження щодо перетворення гостьових систем Windows у \"\n#~ \"розділі L</WINDOWS> нижче.\"\n\n#~ msgid \"Not supported.\"\n#~ msgstr \"Підтримки не передбачено.\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" virt-v2v --in-place\\n\"\n#~ \"          [-i mode] [other -i* options]\\n\"\n#~ \"          [guest|filename]\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" virt-v2v --in-place\\n\"\n#~ \"          [-i режим] [інші параметри -i*]\\n\"\n#~ \"          [гостьова_система|назва_файла]\\n\"\n#~ \"\\n\"\n\n#~ msgid \"\"\n#~ \"L<virt-v2v-copy-to-local(1)> — Deprecated tool to handle Xen guests using \"\n#~ \"host block device storage.\"\n#~ msgstr \"\"\n#~ \"L<virt-v2v-copy-to-local(1)> — застарілий інструмент для роботи із \"\n#~ \"гостьовими системами Xen за допомогою сховища даних основної системи на \"\n#~ \"блоковому пристрої.\"\n\n#~ msgid \"B<--debug-overlays>\"\n#~ msgstr \"B<--debug-overlays>\"\n\n#~ msgid \"\"\n#~ \"Save the overlay file(s) created during conversion.  This option is only \"\n#~ \"used for debugging virt-v2v and may be removed in a future version.\"\n#~ msgstr \"\"\n#~ \"Зберегти файли накладок, створені під час перетворення. Цей параметр \"\n#~ \"використовується лише для діагностики virt-v2v, його може бути вилучено у \"\n#~ \"майбутніх версіях.\"\n\n#~ msgid \"B<--in-place>\"\n#~ msgstr \"B<--in-place>\"\n\n#~ msgid \"\"\n#~ \"Do not create an output virtual machine in the target hypervisor.  \"\n#~ \"Instead, adjust the guest OS in the source VM to run in the input \"\n#~ \"hypervisor.\"\n#~ msgstr \"\"\n#~ \"Не створювати виведену віртуальну машину у гіпервізорі призначення. \"\n#~ \"Замість цього, скоригувати гостьову операційну систему у початковій \"\n#~ \"віртуальній машині для запуску у початковому гіпервізорі.\"\n\n#~ msgid \"\"\n#~ \"This mode is meant for integration with other toolsets, which take the \"\n#~ \"responsibility of converting the VM configuration, providing for rollback \"\n#~ \"in case of errors, transforming the storage, etc.\"\n#~ msgstr \"\"\n#~ \"Цей режим призначено для інтеграції із іншими наборами інструментів, які \"\n#~ \"відповідають за перетворення налаштувань віртуальної машини, забезпечення \"\n#~ \"повернення до початкового стану, якщо стануться помилки, перетворення \"\n#~ \"сховища даних тощо.\"\n\n#~ msgid \"See L</In-place conversion> below.\"\n#~ msgstr \"Див. L</In-place conversion> нижче.\"\n\n#~ msgid \"Conflicts with all I<-o *> options.\"\n#~ msgstr \"Конфліктує з усіма параметрами I<-o *>.\"\n\n#~ msgid \"B<--no-copy>\"\n#~ msgstr \"B<--no-copy>\"\n\n#~ msgid \"\"\n#~ \"Don’t copy the disks.  Instead, conversion is performed (and thrown \"\n#~ \"away), and metadata is written, but no disks are created.  See also \"\n#~ \"discussion of S<I<-o null>> below.\"\n#~ msgstr \"\"\n#~ \"Не копіювати диски. Замість цього, буде виконано перетворення (а його \"\n#~ \"результати буде відкинуто) і записано метадані, але диски не буде \"\n#~ \"створено. Див. також обговорення щодо S<I<-o null>> нижче.\"\n\n#~ msgid \"\"\n#~ \"This is useful in two cases: Either you want to test if conversion is \"\n#~ \"likely to succeed, without the long copying process.  Or you are only \"\n#~ \"interested in looking at the metadata.\"\n#~ msgstr \"\"\n#~ \"Цей параметр корисний у двох випадках: вам потрібно перевірити, чи \"\n#~ \"завершиться перетворення успіхом без довгого процесу копіювання або ви \"\n#~ \"хочете просто подивитися на метадані.\"\n\n#~ msgid \"\"\n#~ \"This option is not compatible with I<-o libvirt> since it would create a \"\n#~ \"faulty guest (one with no disks).\"\n#~ msgstr \"\"\n#~ \"Цей параметр несумісний із I<-o libvirt>, оскільки їх поєднання створити \"\n#~ \"помилкову гостьову систему (систему без дисків).\"\n\n#~ msgid \"\"\n#~ \"This option is not compatible with I<-o glance> for technical reasons.\"\n#~ msgstr \"Цей параметр несумісний із I<-o glance> з технічних причин.\"\n\n#~ msgid \"B<-o> B<json>\"\n#~ msgstr \"B<-o> B<json>\"\n\n#~ msgid \"Set the output method to I<json>.\"\n#~ msgstr \"Встановити метод виведення до I<json>.\"\n\n#~ msgid \"\"\n#~ \"In this mode, the converted guest is written to a local directory \"\n#~ \"specified by I<-os /dir> (the directory must exist), with a JSON file \"\n#~ \"containing the majority of the metadata that virt-v2v gathered during the \"\n#~ \"conversion.\"\n#~ msgstr \"\"\n#~ \"У цьому режимі перетворену гостьову систему буде записано до локального \"\n#~ \"каталогу, вказаного за допомогою параметра I<-os /каталог> (каталог має \"\n#~ \"існувати), а файл JSON міститиме більшу частину метаданих, які virt-v2v \"\n#~ \"збере під час перетворення.\"\n\n#~ msgid \"See L<virt-v2v-output-local(1)>.\"\n#~ msgstr \"Див. L<virt-v2v-output-local(1)>.\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" virt-v2v -o rhv-upload -oo \\\"?\\\"\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" virt-v2v -o rhv-upload -oo \\\"?\\\"\\n\"\n#~ \"\\n\"\n\n#~ msgid \"\"\n#~ \"For I<-o rhv-upload> (L<virt-v2v-output-rhv(1)>) only, if this option is \"\n#~ \"given then virt-v2v will attempt to directly upload the disk to the oVirt \"\n#~ \"node, otherwise it will proxy the upload through the oVirt engine.  \"\n#~ \"Direct upload requires that you have network access to the oVirt nodes.  \"\n#~ \"Non-direct upload is slightly slower but should work in all situations.\"\n#~ msgstr \"\"\n#~ \"Лише для I<-o rhv-upload> (L<virt-v2v-output-rhv(1)>). Якщо передано цей \"\n#~ \"параметр, virt-v2v спробує безпосередньо вивантажити диск до вузла oVirt. \"\n#~ \"Якщо ж параметр не задано, вивантаження буде виконано за посередництва \"\n#~ \"рушія oVirt. Безпосереднє вивантаження потребує доступ мережею до вузлів \"\n#~ \"oVirt. Опосередковане вивантаження є дещо повільнішим, але має працювати \"\n#~ \"в усіх випадках.\"\n\n#~ msgid \"B<--print-estimate>\"\n#~ msgstr \"B<--print-estimate>\"\n\n#~ msgid \"\"\n#~ \"Print the estimated size of the data which will be copied from the source \"\n#~ \"disk(s) and stop.  One number (the size in bytes) is printed per disk, \"\n#~ \"and a total:\"\n#~ msgstr \"\"\n#~ \"Вивести оцінку обсягу даних, які буде скопійовано із дисків джерела, і \"\n#~ \"завершити роботу. Буде виведено дані (розмір у байтах) для кожного з \"\n#~ \"дисків і загальні дані:\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" $ virt-v2v --print-estimate\\n\"\n#~ \" ...\\n\"\n#~ \" disk 1: 100000\\n\"\n#~ \" disk 2: 200000\\n\"\n#~ \" total: 300000\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" $ virt-v2v --print-estimate\\n\"\n#~ \" ...\\n\"\n#~ \" disk 1: 100000\\n\"\n#~ \" disk 2: 200000\\n\"\n#~ \" total: 300000\\n\"\n#~ \"\\n\"\n\n#~ msgid \"\"\n#~ \"With the I<--machine-readable> option you get JSON output which can be \"\n#~ \"directed into a file or elsewhere:\"\n#~ msgstr \"\"\n#~ \"Якщо вказано параметр I<--machine-readable>, дані буде виведено у форматі \"\n#~ \"JSON. Їх можна буде зберегти до файла або скористатися ними іншим чином:\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" $ virt-v2v --print-estimate --machine-readable=file:estimates\\n\"\n#~ \" ...\\n\"\n#~ \" $ cat estimates\\n\"\n#~ \" {\\n\"\n#~ \"  \\\"disks\\\": [ 100000, 200000 ],\\n\"\n#~ \"  \\\"total\\\": 300000\\n\"\n#~ \" }\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" $ virt-v2v --print-estimate --machine-readable=file:estimates\\n\"\n#~ \" ...\\n\"\n#~ \" $ cat estimates\\n\"\n#~ \" {\\n\"\n#~ \"  \\\"disks\\\": [ 100000, 200000 ],\\n\"\n#~ \"  \\\"total\\\": 300000\\n\"\n#~ \" }\\n\"\n#~ \"\\n\"\n\n#~ msgid \"\"\n#~ \"When using this option you must specify an output mode.  This is because \"\n#~ \"virt-v2v has to perform the conversion in order to print the estimate, \"\n#~ \"and the conversion depends on the output mode.  Using I<-o null> should \"\n#~ \"be safe for most purposes.\"\n#~ msgstr \"\"\n#~ \"Якщо ви користуєтеся цим параметром, вам слід вказати режим виведення \"\n#~ \"даних. Причиною цього є те, що virt-v2v має виконати перетворення для \"\n#~ \"виведення оцінки, а перетворення залежить від режиму виведення. \"\n#~ \"Здебільшого, можна без проблем вказати I<-o null>.\"\n\n#~ msgid \"\"\n#~ \"When this option is used along with I<--machine-readable> you can direct \"\n#~ \"the output to an alternate file.\"\n#~ msgstr \"\"\n#~ \"Якщо цей параметр використовується у поєднанні з I<--machine-readable>, \"\n#~ \"ви можете спрямувати виведені дані до альтернативного файла.\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n#~ \"                to by \\\"VIRTIO_WIN\\\" environment variable if present\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" Windows        драйвери встановлюються з ISO або каталогу, на який\\n\"\n#~ \"                вказує змінна середовища VIRTIO_WIN, якщо її встановлено\\n\"\n#~ \"\\n\"\n\n#~ msgid \"Minimum free space: 20 MB\"\n#~ msgstr \"Мінімальний вільний простір: 20 МБ\"\n\n#~ msgid \"In-place conversion\"\n#~ msgstr \"Перетворення на місці\"\n\n#~ msgid \"\"\n#~ \"It is also possible to use virt-v2v in scenarios where a foreign VM has \"\n#~ \"already been imported into a KVM-based hypervisor, but still needs \"\n#~ \"adjustments in the guest to make it run in the new virtual hardware.\"\n#~ msgstr \"\"\n#~ \"Крім того, можна скористатися virt-v2v у сценаріях, де сторонню \"\n#~ \"віртуальну машину вже імпортовано до заснованого на KVM гіпервізору, але \"\n#~ \"вона все ще потребує коригування у самій гостьовій системі для того, щоб \"\n#~ \"її можна було запустити на новому віртуальному обладнанні.\"\n\n#~ msgid \"\"\n#~ \"In that case it is assumed that a third-party tool has created the target \"\n#~ \"VM in the supported KVM-based hypervisor based on the source VM \"\n#~ \"configuration and contents, but using virtual devices more appropriate \"\n#~ \"for KVM (e.g. virtio storage and network, etc.).\"\n#~ msgstr \"\"\n#~ \"У цьому випадку припускається, що віртуальну машину призначення створено \"\n#~ \"стороннім інструментом у підтримуваному гіпервізорі на основі KVM з \"\n#~ \"використанням налаштувань і вмісту початкової віртуальної машини, але з \"\n#~ \"використанням віртуальних пристроїв, які краще пристосовано до KVM \"\n#~ \"(наприклад, сховища і мережі virtio тощо).\"\n\n#~ msgid \"\"\n#~ \"Then, to make the guest OS boot and run in the changed environment, one \"\n#~ \"can use:\"\n#~ msgstr \"\"\n#~ \"Далі, щоб уможливити завантаження і роботу гостьової операційної системи \"\n#~ \"у зміненому середовищі, можна скористатися такою командою:\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" virt-v2v -ic qemu:///system converted_vm --in-place\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" virt-v2v -ic qemu:///system converted_vm --in-place\\n\"\n#~ \"\\n\"\n\n#~ msgid \"\"\n#~ \"Virt-v2v will analyze the configuration of C<converted_vm> in the \"\n#~ \"C<qemu:///system> libvirt instance, and apply various fixups to the guest \"\n#~ \"OS configuration to make it match the VM configuration.  This may include \"\n#~ \"installing virtio drivers, configuring the bootloader, the mountpoints, \"\n#~ \"the network interfaces, and so on.\"\n#~ msgstr \"\"\n#~ \"Virt-v2v проаналізує налаштування перетвореної віртуальної машини \"\n#~ \"C<converted_vm> у екземплярі libvirt C<qemu:///system> і застосує \"\n#~ \"різноманітні виправлення у налаштуваннях гостьової операційної системи, \"\n#~ \"щоб зробити їх відповідними до налаштувань віртуальної машини. Це може \"\n#~ \"включати встановлення драйверів virtio, налаштовування завантажувача, \"\n#~ \"точок монтування, інтерфейсів мережі тощо.\"\n\n#~ msgid \"\"\n#~ \"Should an error occur during the operation, virt-v2v exits with an error \"\n#~ \"code leaving the VM in an undefined state.\"\n#~ msgstr \"\"\n#~ \"Якщо під час виконання дії станеться помилка, virt-v2v завершить роботу \"\n#~ \"із кодом помилки, залишивши віртуальну машину у невизначеному стані.\"\n\n#~ msgid \"\"\n#~ \"The RHV Application Provisioning Tool (RHEV APT).  If this file is \"\n#~ \"present, then RHEV APT will be installed in the Windows guest during \"\n#~ \"conversion.  This tool is a guest agent which ensures that the virtio \"\n#~ \"drivers remain up to date when the guest is running on Red Hat \"\n#~ \"Virtualization (RHV).\"\n#~ msgstr \"\"\n#~ \"RHV Application Provisioning Tool (RHEV APT). Якщо існує цей файл, під \"\n#~ \"час перетворення до гостьової системи Windows буде встановлено RHEV APT. \"\n#~ \"Це інструмент, який є агентом у гостьовій системі, який забезпечує \"\n#~ \"актуальність драйверів virtio, якщо гостьова система працює у Red Hat \"\n#~ \"Virtualization (RHV).\"\n\n#~ msgid \"\"\n#~ \"This file comes from Red Hat Virtualization (RHV), and is not distributed \"\n#~ \"with virt-v2v.\"\n#~ msgstr \"\"\n#~ \"Цей файл походить з Red Hat Virtualization (RHV) і не поширюється із virt-\"\n#~ \"v2v.\"\n\n#~ msgid \"L<virt-v2v-copy-to-local(1)>\"\n#~ msgstr \"L<virt-v2v-copy-to-local(1)>\"\n\n#~ msgid \"\"\n#~ \"There are some special cases where virt-v2v cannot directly access the \"\n#~ \"remote hypervisor.  In that case you have to use L<virt-v2v-copy-to-\"\n#~ \"local(1)> to make a local copy of the guest first, followed by running \"\n#~ \"C<virt-v2v -i libvirtxml> to perform the conversion.\"\n#~ msgstr \"\"\n#~ \"Існують певні особливі випадки, коли virt-v2v не може отримати доступ до \"\n#~ \"віддаленого гіпервізору безпосередньо. Якщо ви зіткнулися саме з таким \"\n#~ \"випадком, вам слід спочатку скористатися L<virt-v2v-copy-to-local(1)> для \"\n#~ \"створення локальної копії гостьової системи, а потім віддати команду \"\n#~ \"C<virt-v2v -i libvirtxml> для виконання самого перетворення.\"\n\n#~ msgid \"\"\n#~ \"virt-v2v-test-harness - Used to test virt-v2v against real test cases\"\n#~ msgstr \"\"\n#~ \"virt-v2v-test-harness — використовується для тестування virt-v2v на \"\n#~ \"прикладах з реального життя\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" open V2v_test_harness\\n\"\n#~ \" \\n\"\n#~ msgstr \"\"\n#~ \" open V2v_test_harness\\n\"\n#~ \" \\n\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" let test = \\\"rhel_45_i386_fv\\\"\\n\"\n#~ \" let test_plan = {\\n\"\n#~ \"   default_plan with\\n\"\n#~ \"     boot_plan = Boot_to_screenshot (test ^ \\\"-login.ppm\\\")\\n\"\n#~ \" }\\n\"\n#~ \" \\n\"\n#~ msgstr \"\"\n#~ \" let test = \\\"rhel_45_i386_fv\\\"\\n\"\n#~ \" let test_plan = {\\n\"\n#~ \"   default_plan with\\n\"\n#~ \"     boot_plan = Boot_to_screenshot (test ^ \\\"-login.ppm\\\")\\n\"\n#~ \" }\\n\"\n#~ \" \\n\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" let () = run ~test ~test_plan ()\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" let () = run ~test ~test_plan ()\\n\"\n#~ \"\\n\"\n\n#~ msgid \"\"\n#~ \"L<virt-v2v(1)> converts guests from a foreign hypervisor to run on KVM, \"\n#~ \"managed by libvirt, OpenStack, oVirt, Red Hat Virtualisation (RHV) or \"\n#~ \"several other targets.\"\n#~ msgstr \"\"\n#~ \"L<virt-v2v(1)> перетворює фізичні машини зі сторонніх гіпервізорів для \"\n#~ \"запуску під керуванням libvirt, OpenStack, oVirt, Red Hat Virtualisation \"\n#~ \"(RHV) або одним із інших призначень.\"\n\n#~ msgid \"\"\n#~ \"Virt-v2v-test-harness is a small library (module name: \"\n#~ \"C<V2v_test_harness>) used to run virt-v2v against a set of test cases \"\n#~ \"consisting of real virtual machines.\"\n#~ msgstr \"\"\n#~ \"Virt-v2v-test-harness — невеличка бібліотека (назва модуля: \"\n#~ \"C<V2v_test_harness>), яка використовується virt-v2v для обробки набору \"\n#~ \"тестів, які містять справжні віртуальні машини.\"\n\n#~ msgid \"\"\n#~ \"It acts as a test harness, taking a test case, running virt-v2v on it \"\n#~ \"(non-destructively), then test-booting the result.  It can ensure that \"\n#~ \"the test case converts successfully, boots successfully, and reaches a \"\n#~ \"milestone (such as a particular screenshot).  It can also test that the \"\n#~ \"conversion created, modified or deleted the expected files from within \"\n#~ \"the guest.\"\n#~ msgstr \"\"\n#~ \"Це працює як комплекс тестування: вибирається тест, запускається virt-v2v \"\n#~ \"для нього (у недеструктивний спосіб), потім виконується тестове \"\n#~ \"завантаження результату. Програма переконується, що тест було успішно \"\n#~ \"перетворено, він успішно завантажується і досягає у роботі певного етапу \"\n#~ \"(такого як на еталонному знімку). Програма також може перевірити, чи було \"\n#~ \"під час перетворення створено, змінено або вилучено очікувані файли у \"\n#~ \"гостьовій системі.\"\n\n#~ msgid \"GETTING THE TEST CASES\"\n#~ msgstr \"ОТРИМАННЯ ПРИКЛАДІВ ДЛЯ ТЕСТУВАННЯ\"\n\n#~ msgid \"\"\n#~ \"Because the test cases are actual virtual machines, we split them into \"\n#~ \"two groups: test cases which are freely redistributable and those which \"\n#~ \"are proprietary.  The former are things like Fedora or CentOS images, \"\n#~ \"which are free software.  The latter are things like Windows or Red Hat \"\n#~ \"Enterprise Linux.\"\n#~ msgstr \"\"\n#~ \"Оскільки тести є насправді віртуальними машинами, ми поділили їх на дві \"\n#~ \"групи: тести, які поширюються вільно, і тести, які є пропрієтарними. \"\n#~ \"Перші є образами, подібними до образів Fedora або CentOS, які є вільним \"\n#~ \"програмним забезпеченням. Другі — образи, які подібні до образів Windows \"\n#~ \"або Red Hat Enterprise Linux.\"\n\n#~ msgid \"\"\n#~ \"The freely redistributable test cases can be downloaded from: L<http://\"\n#~ \"git.annexia.org/?p=virt-v2v-test-cases-free.git> I<B<not available yet>>\"\n#~ msgstr \"\"\n#~ \"Вільно доступні і поширювати тести можна отримати тут: L<http://\"\n#~ \"git.annexia.org/?p=virt-v2v-test-cases-free.git> I<B<ще не є доступними>>\"\n\n#~ msgid \"\"\n#~ \"The proprietary test cases are available at L<http://git.annexia.org/?\"\n#~ \"p=virt-v2v-test-cases-nonfree.git> This I<does not> contain the \"\n#~ \"proprietary images themselves, which are not made available to the public \"\n#~ \"for licensing reasons.\"\n#~ msgstr \"\"\n#~ \"Пропрієтарні тести можна отримати зі сторінки L<http://git.annexia.org/?\"\n#~ \"p=virt-v2v-test-cases-nonfree.git> У тестах I<не> міститься самих образів \"\n#~ \"пропрієтарних систем, які з причин ліцензування не є загальнодоступними.\"\n\n#~ msgid \"\"\n#~ \"The test cases consist of disk images which are very large, from 250 MB \"\n#~ \"through to tens of gigabytes I<each>.  This means that distributing test \"\n#~ \"cases can be very time-consuming and expensive.  We use L<git-annex(1)> \"\n#~ \"to distribute the test images.\"\n#~ msgstr \"\"\n#~ \"Тести є образами дисків із дуже великими розмірами — від  250 МБ до \"\n#~ \"десятків гігабайт I<кожен>. Це означає, що поширення тестів може бути \"\n#~ \"дуже тривалим і вимогливим до ресурсів завданням. Ми використовуємо для \"\n#~ \"поширення образів тестів  L<git-annex(1)>.\"\n\n#~ msgid \"\"\n#~ \"It’s recommended to use an idle machine for testing.  You will need B<a \"\n#~ \"lot of disk space> to run the tests, in excess of S<100 GB>.  You should \"\n#~ \"also ensure the test machine has plenty of RAM, at least S<16 GB>.\"\n#~ msgstr \"\"\n#~ \"Для тестування рекомендуємо використовувати бездіяльну машину. Для \"\n#~ \"виконання тестів вам знадобиться доволі B<багато вільного місця на \"\n#~ \"диску>, більше S<100 ГБ>. Крім того, на тестовій машині має бути багато \"\n#~ \"оперативної пам'яті, принаймні S<16 ГБ>.\"\n\n#~ msgid \"GETTING THE TEST HARNESS\"\n#~ msgstr \"ОТРИМАННЯ КОМПЛЕКСУ ДЛЯ ТЕСТУВАННЯ\"\n\n#~ msgid \"To run the test cases you must have the virt-v2v test harness.\"\n#~ msgstr \"Для запуску тестів вам знадобиться комплекс тестів virt-v2v.\"\n\n#~ msgid \"The OCaml module is C<V2v_test_harness>.\"\n#~ msgstr \"Модуль OCaml називається C<V2v_test_harness>.\"\n\n#~ msgid \"\"\n#~ \"The easiest way is to compile libguestfs from source (I<note> do not \"\n#~ \"install it).  The test harness will be in C<virt-v2v.git/test-harness>\"\n#~ msgstr \"\"\n#~ \"Найпростішим способом є зібрати libguestfs з початкових кодів \"\n#~ \"(I<Зауваження>: не встановлювати її). Тестовий комплекс зберігатиметься у \"\n#~ \"C<virt-v2v.git/test-harness>\"\n\n#~ msgid \"It is also possible to install test harness as an OCaml module.\"\n#~ msgstr \"Крім того, комплекс тестів можна встановити як модуль OCaml.\"\n\n#~ msgid \"RUNNING THE TEST CASES\"\n#~ msgstr \"ВИКОНАННЯ ТЕСТУВАННЯ\"\n\n#~ msgid \"\"\n#~ \"Once you have checked out the freely redistributed test cases from the \"\n#~ \"repository, do:\"\n#~ msgstr \"\"\n#~ \"Щойно ви отримаєте вільно розповсюджувані тести зі сховища, віддайте такі \"\n#~ \"команди:\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" ./configure [--with-test-harness=/path/to/virt-v2v/test-harness]\\n\"\n#~ \" make\\n\"\n#~ \" make check -k\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" ./configure [--with-test-harness=/path/to/virt-v2v/test-harness]\\n\"\n#~ \" make\\n\"\n#~ \" make check -k\\n\"\n#~ \"\\n\"\n\n#~ msgid \"\"\n#~ \"Using the I<-k> option is recommended so the test doesn't stop at the \"\n#~ \"first failure.\"\n#~ msgstr \"\"\n#~ \"Рекомендуємо скористатися параметром I<-k>, щоб тестування не зупинялося \"\n#~ \"після першої ж помилки.\"\n\n#~ msgid \"PARALLEL TESTS\"\n#~ msgstr \"ПАРАЛЕЛЬНЕ ТЕСТУВАННЯ\"\n\n#~ msgid \"You can run test cases in parallel by doing:\"\n#~ msgstr \"Запустити тести паралельно можна за допомогою такої команди:\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" make check -k -j<N>\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" make check -k -j<N>\\n\"\n#~ \"\\n\"\n\n#~ msgid \"\"\n#~ \"(eg. I<-j2> for running up to 2 tests in parallel).  Be careful about \"\n#~ \"running too many parallel tests, as it can slow down each test enough to \"\n#~ \"cause false failures.\"\n#~ msgstr \"\"\n#~ \"(наприклад I<-j2>, щоб запустити 2 тести паралельно). Будьте обережні із \"\n#~ \"паралельним запуском надто великої кількості тестів — це може спричинити \"\n#~ \"помилки, які не пов'язано із помилковою роботою бібліотеки.\"\n\n#~ msgid \"RUNNING TEST CASES AGAINST UPSTREAM VIRT-V2V\"\n#~ msgstr \"ТЕСТУВАННЯ ОСНОВНОЇ ГІЛКИ РОЗРОБКИ VIRT-V2V\"\n\n#~ msgid \"\"\n#~ \"Using C<make check> picks up whatever C<virt-v2v> binary is on your \"\n#~ \"C<$PATH>.\"\n#~ msgstr \"\"\n#~ \"Використання C<make check> призведе до використання виконуваного файла \"\n#~ \"C<virt-v2v>, який зберігається у одному з каталогів зі змінної середовища \"\n#~ \"C<$PATH>.\"\n\n#~ msgid \"\"\n#~ \"If you have compiled libguestfs from source and want to test that version \"\n#~ \"of virt-v2v, use the libguestfs C<run> script (in the top-level build \"\n#~ \"directory of the libguestfs sources).  eg:\"\n#~ msgstr \"\"\n#~ \"Якщо вами було зібрано libguestfs з початкових кодів і ви хочете \"\n#~ \"перевірити зібрану версію virt-v2v, скористайтеся скриптом libguestfs \"\n#~ \"C<run> (зберігається у каталозі збирання верхнього рівня у каталозі із \"\n#~ \"початковими кодами libguestfs). Приклад:\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" ../libguestfs/run make check -k\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" ../libguestfs/run make check -k\\n\"\n#~ \"\\n\"\n\n#~ msgid \"WRITING NEW TEST CASES\"\n#~ msgstr \"НАПИСАННЯ НОВИХ ПРИКЛАДІВ ДЛЯ ТЕСТУВАННЯ\"\n\n#~ msgid \"\"\n#~ \"If you are interested in writing test cases, it is suggested that you \"\n#~ \"start by downloading the freely redistributable test cases, or at least \"\n#~ \"look at them online.\"\n#~ msgstr \"\"\n#~ \"Якщо ви цікавитеся написанням тестів, пропонуємо вам розпочати із \"\n#~ \"отримання вільно розповсюджуваних тестів або, принаймні, ознайомлення з \"\n#~ \"ними у мережі.\"\n\n#~ msgid \"\"\n#~ \"Also you must have the virt-v2v test harness - see L</GETTING THE TEST \"\n#~ \"HARNESS> above.\"\n#~ msgstr \"\"\n#~ \"Крім того, у вас має бути комплекс для тестування virt-v2v — див. L</\"\n#~ \"ОТРИМАННЯ КОМПЛЕКСУ ДЛЯ ТЕСТУВАННЯ> вище.\"\n\n#~ msgid \"FILES IN EACH TEST CASE\"\n#~ msgstr \"ФАЙЛИ КОЖНОГО З ПРИКЛАДІВ ДЛЯ ТЕСТУВАННЯ\"\n\n#~ msgid \"Each test case consists of:\"\n#~ msgstr \"Кожен із прикладів для тестування складається з таких компонентів:\"\n\n#~ msgid \"I<test>.img.xz\"\n#~ msgstr \"I<тест>.img.xz\"\n\n#~ msgid \"\"\n#~ \"The disk image of the virtual machine before conversion.  Usually this \"\n#~ \"should be converted to raw format and xz-compressed.\"\n#~ msgstr \"\"\n#~ \"Образ диска віртуальної машини до перетворення. Зазвичай, його має бути \"\n#~ \"перетворено у простий формат (raw) і стиснуто за допомогою xz.\"\n\n#~ msgid \"I<test>.ova\"\n#~ msgstr \"I<тест>.ova\"\n\n#~ msgid \"Alternatively, an OVA, exported from VMware, may be used.\"\n#~ msgstr \"Крім того, можна скористатися OVA, експортованим з VMware.\"\n\n#~ msgid \"I<test>.xml\"\n#~ msgstr \"I<test>.xml\"\n\n#~ msgid \"\"\n#~ \"The libvirt XML used as input to virt-v2v.  See the discussion of I<-i \"\n#~ \"libvirtxml> in L<virt-v2v(1)>.\"\n#~ msgstr \"\"\n#~ \"XML libvirt, який використовується як вхідні дані virt-v2v. Див. \"\n#~ \"обговорення щодо I<-i libvirtxml> на сторінці підручника щодо L<virt-\"\n#~ \"v2v(1)>.\"\n\n#~ msgid \"I<test>.ppm\"\n#~ msgstr \"I<test>.ppm\"\n\n#~ msgid \"An optional screenshot or screenshots.\"\n#~ msgstr \"Необов'язковий знімок екрана або знімки екрана.\"\n\n#~ msgid \"\"\n#~ \"You can supply zero or more \\\"known good\\\" screenshots which represent \"\n#~ \"intermediate steps where the guest is booting.  This is useful where a \"\n#~ \"guest sits for some time doing something, and lets the test harness know \"\n#~ \"that it should allow the guest to continue to boot.\"\n#~ msgstr \"\"\n#~ \"Ви можете не надавати «відомі правильні» знімки екрана, надати один або \"\n#~ \"декілька таких знімків, які відповідають проміжним крокам завантаження \"\n#~ \"гостьової системи. Корисно робити такі знімки на етапах, коли гостьова \"\n#~ \"система виконує якісь тривалі дії. Це надасть комплексу тестування дані, \"\n#~ \"за допомогою яких він зможе визначити, чи слід дозволяти гостьовій \"\n#~ \"системі продовжувати завантаження.\"\n\n#~ msgid \"\"\n#~ \"You can supply zero or one \\\"final\\\" screenshot.  This is often a \"\n#~ \"screenshot of the login page which indicates that the guest booted \"\n#~ \"successfully.\"\n#~ msgstr \"\"\n#~ \"Ви можете не вказувати «остаточний» знімок екрана або вказати один такий \"\n#~ \"знімок. Це часто знімок вікна входу до системи, який вказує на те, що \"\n#~ \"гостьову систему було успішно завантажено.\"\n\n#~ msgid \"\"\n#~ \"The screenshots are captured using L<virsh(1)>.  Comparison of \"\n#~ \"screenshots against the test images is done using the ImageMagick \"\n#~ \"L<compare(1)> program.\"\n#~ msgstr \"\"\n#~ \"Знімки вікон створюються за допомогою L<virsh(1)>. Порівняння знімків \"\n#~ \"вікон із еталонними знімками виконується за допомогою програми \"\n#~ \"L<compare(1)> з комплекту ImageMagick.\"\n\n#~ msgid \"I<test>.ml\"\n#~ msgstr \"I<test>.ml\"\n\n#~ msgid \"The test itself - see below.\"\n#~ msgstr \"Сам приклад для тестування — див. нижче.\"\n\n#~ msgid \"WRITING THE TEST\"\n#~ msgstr \"НАПИСАННЯ ТЕСТУ\"\n\n#~ msgid \"\"\n#~ \"The test file (F<*.ml>) is used to control the test harness, and \"\n#~ \"minimally it would look something like this:\"\n#~ msgstr \"\"\n#~ \"Файл тестування (F<*.ml>) використовується для керування комплексом \"\n#~ \"тестування. Його мінімальна версія виглядає десь так:\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" let test = \\\"short_name\\\"\\n\"\n#~ \" \\n\"\n#~ msgstr \"\"\n#~ \" let test = \\\"short_name\\\"\\n\"\n#~ \" \\n\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" let () = run ~test ()\\n\"\n#~ \"\\n\"\n#~ msgstr \"\"\n#~ \" let () = run ~test ()\\n\"\n#~ \"\\n\"\n\n#~ msgid \"That would instruct the test harness to:\"\n#~ msgstr \"Це має проінструктувати комплекс тестування про те, що слід:\"\n\n#~ msgid \"Uncompress F<I<short_name>.img.xz>\"\n#~ msgstr \"Розпакувати F<I<short_name>.img.xz>\"\n\n#~ msgid \"Run C<virt-v2v -i libvirtxml I<short_name>.xml [...]>\"\n#~ msgstr \"Запустити C<virt-v2v -i libvirtxml I<short_name>.xml [...]>\"\n\n#~ msgid \"\"\n#~ \"Boot the resulting guest and check that it writes to its disk and then \"\n#~ \"the disk becomes idle.\"\n#~ msgstr \"\"\n#~ \"Завантажити отриману гостьову систему і перевірити, чи виконує вона запис \"\n#~ \"на свій диск і чи стає після цього диск бездіяльним.\"\n\n#~ msgid \"\"\n#~ \"The above is a rather simplistic test.  A more realistic test is to \"\n#~ \"ensure the guest reaches a final milestone (screenshot), eg. a login \"\n#~ \"page.  To do that you have to supply a C<~test_plan> parameter:\"\n#~ msgstr \"\"\n#~ \"Вище наведено надто спрощене тестування. Реалістичнішим варіантом був ви \"\n#~ \"варіант із перевіркою того, чи гостьова система досягла остаточного етапу \"\n#~ \"завантаження (за знімком), наприклад сторінки входу до системи. Для \"\n#~ \"реалізації такої перевірки вам слід вказати параметр C<~test_plan>:\"\n\n#, no-wrap\n#~ msgid \"\"\n#~ \" let test = \\\"short_name\\\"\\n\"\n#~ \" let test_plan = {\\n\"\n#~ \"   default_plan with\\n\"\n#~ \"     boot_plan = Boot_to_screenshot (test ^ \\\".ppm\\\")\\n\"\n#~ \" }\\n\"\n#~ \" \\n\"\n#~ msgstr \"\"\n#~ \" let test = \\\"short_name\\\"\\n\"\n#~ \" let test_plan = {\\n\"\n#~ \"   default_plan with\\n\"\n#~ \"     boot_plan = Boot_to_screenshot (test ^ \\\".ppm\\\")\\n\"\n#~ \" }\\n\"\n#~ \" \\n\"\n\n#~ msgid \"\"\n#~ \"For an even better test, you can supply post-conversion and post-boot \"\n#~ \"test cases which examine the disk image (using libguestfs) to verify that \"\n#~ \"files have been created, modified or deleted as expected within the disk \"\n#~ \"image.  See F<V2v_test_harness.mli> for more information on how to do \"\n#~ \"that.\"\n#~ msgstr \"\"\n#~ \"Ще надійніший варіант тестування можна створити, якщо виконуватиметься \"\n#~ \"тестування після перетворення і після завантаження із перевіркою образу \"\n#~ \"диска (за допомогою libguestfs) з метою переконатися, що у образі диска у \"\n#~ \"очікуваний спосіб створюються, змінюються та вилучаються файли. Щоб \"\n#~ \"дізнатися більше про те, як цього досягти, ознайомтеся із вмістом файла \"\n#~ \"F<V2v_test_harness.mli>.\"\n\n#~ msgid \"FILES GENERATED BY RUNNING THE TEST\"\n#~ msgstr \"ФАЙЛИ, ЯКІ СТВОРЮЮТЬСЯ ПІД ЧАС ВИКОНАННЯ ТЕСТУВАННЯ\"\n\n#~ msgid \"When you run each test, the following files can be created:\"\n#~ msgstr \"Під час виконання тестування може бути створено такі файли:\"\n\n#~ msgid \"I<test>-I<yyyymmdd-hhmmss>.scrn\"\n#~ msgstr \"I<test>-I<yyyymmdd-hhmmss>.scrn\"\n\n#~ msgid \"\"\n#~ \"Screenshot(s) of the guest’s graphical console.  These are helpful when \"\n#~ \"writing tests or debugging test failures.\"\n#~ msgstr \"\"\n#~ \"Знімки графічної консолі гостьової операційної системи. Такі знімки \"\n#~ \"корисні для написання тестів або діагностики помилок під час тестування.\"\n\n#~ msgid \"The screenshot format is Portable Pixmap (PPM).\"\n#~ msgstr \"Форматом знімків екрана є Portable Pixmap (PPM).\"\n\n#~ msgid \"I<test>.img\"\n#~ msgstr \"I<test>.img\"\n\n#~ msgid \"The uncompressed original disk image (before conversion).\"\n#~ msgstr \"Нестиснений початковий образ диска (до перетворення).\"\n\n#~ msgid \"I<test>-converted-sda\"\n#~ msgstr \"I<test>-converted-sda\"\n\n#~ msgid \"I<test>-converted.xml\"\n#~ msgstr \"I<test>-converted.xml\"\n\n#~ msgid \"\"\n#~ \"The result of conversion, ie. after running virt-v2v but before test-\"\n#~ \"booting the guest.  See the L<virt-v2v(1)> manual page description of I<-\"\n#~ \"o local>.\"\n#~ msgstr \"\"\n#~ \"Результат перетворення, тобто стан після виконання virt-v2v, але перед \"\n#~ \"тестовим завантаженням гостьової системи. Див. сторінку підручника щодо \"\n#~ \"L<virt-v2v(1)>, щоб ознайомитися із описом параметра I<-o local>.\"\n\n#~ msgid \"The disk image format is qcow2.\"\n#~ msgstr \"Формат образу диска — qcow2.\"\n\n#~ msgid \"I<test>-booted-sda\"\n#~ msgstr \"I<test>-booted-sda\"\n\n#~ msgid \"\"\n#~ \"The disk image after test-booting.  This is a qcow2 file which uses the \"\n#~ \"I<test>-converted-sda file as a backing disk, in order to save disk space.\"\n#~ msgstr \"\"\n#~ \"Образ диска після тестового завантаження. Це файл qcow2, у якому з метою \"\n#~ \"заощадження місця на диску використовується як диск резервної пам'яті \"\n#~ \"файл I<test>-converted-sda.\"\n\n#~ msgid \"F<$ocamllibdir/v2v_test_harness/v2v_test_harness.mli>\"\n#~ msgstr \"F<$ocamllibdir/v2v_test_harness/v2v_test_harness.mli>\"\n\n#~ msgid \"\"\n#~ \"The test library interface.  Read this for detailed programming \"\n#~ \"documentation.\"\n#~ msgstr \"\"\n#~ \"Інтерфейс тестування бібліотеки. Ознайомтеся, що дізнатися більше про \"\n#~ \"можливості програмування.\"\n\n#~ msgid \"C<$ocamllibdir/v2v_test_harness/META>\"\n#~ msgstr \"C<$ocamllibdir/v2v_test_harness/META>\"\n\n#~ msgid \"\"\n#~ \"The findlib META file allowing you to use the library from \"\n#~ \"L<ocamlfind(1)>.\"\n#~ msgstr \"\"\n#~ \"Файл META findlib, який надає вам змогу користуватися бібліотекою з \"\n#~ \"L<ocamlfind(1)>.\"\n\n#~ msgid \"NB: To find the value of C<$ocamllibdir>, run C<ocamlc -where>\"\n#~ msgstr \"\"\n#~ \"Зауваження: щоб визначити поточне значення C<$ocamllibdir>, віддайте \"\n#~ \"команду C<ocamlc -where>\"\n\n#~ msgid \"Copyright (C) 2014-2020 Red Hat Inc.\"\n#~ msgstr \"© Red Hat Inc., 2014–2020\"\n"
  },
  {
    "path": "po-docs/virt-v2v-docs.pot",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the virt-v2v package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\n#, fuzzy\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: virt-v2v 2.11.8\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-05-05 17:48+0100\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n\"\n\"Language-Team: LANGUAGE <LL@li.org>\\n\"\n\"Language: \\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/customize-options.pod:379\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:321\n#: common/mlcustomize/v2v-customize-options.pod:325\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:751 docs/virt-v2v.pod:756\n#: docs/virt-v2v.pod:761 docs/virt-v2v.pod:765 docs/virt-v2v.pod:1484\n#: docs/virt-v2v.pod:1489 docs/virt-v2v.pod:1500 docs/virt-v2v.pod:1512\n#: docs/virt-v2v.pod:1518 docs/virt-v2v.pod:1523 docs/virt-v2v.pod:1541\n#: docs/virt-v2v.pod:1545 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:271\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:217\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"See also: L<virt-customize(1)/FIRSTBOOT>, I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:166\n#: common/mlcustomize/v2v-customize-options.pod:166\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:168\n#: common/mlcustomize/v2v-customize-options.pod:168\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:176\n#: common/mlcustomize/v2v-customize-options.pod:176\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:178\n#: common/mlcustomize/v2v-customize-options.pod:178\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"\"\n\"For an overview on the different ways to install packages, see \"\n\"L<virt-builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:185\n#: common/mlcustomize/v2v-customize-options.pod:185\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:187\n#: common/mlcustomize/v2v-customize-options.pod:187\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:190\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:192\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:196\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\n#: common/mlcustomize/customize-options.pod:212\n#: common/mlcustomize/customize-options.pod:240\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:202\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:218\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:228\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers \"\n\"(eg. F</usr/share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:233\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:235\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers \"\n\"(eg. F</usr/share/virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:244\n#: common/mlcustomize/v2v-customize-options.pod:190\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:246\n#: common/mlcustomize/v2v-customize-options.pod:192\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:253\n#: common/mlcustomize/v2v-customize-options.pod:199\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:255\n#: common/mlcustomize/v2v-customize-options.pod:201\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:257\n#: common/mlcustomize/v2v-customize-options.pod:203\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:260\n#: common/mlcustomize/v2v-customize-options.pod:206\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:262\n#: common/mlcustomize/v2v-customize-options.pod:208\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:264\n#: common/mlcustomize/v2v-customize-options.pod:210\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:267\n#: common/mlcustomize/v2v-customize-options.pod:213\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:269\n#: common/mlcustomize/v2v-customize-options.pod:215\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:283\n#: common/mlcustomize/v2v-customize-options.pod:229\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:292\n#: common/mlcustomize/v2v-customize-options.pod:238\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:240\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:296\n#: common/mlcustomize/v2v-customize-options.pod:242\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:299\n#: common/mlcustomize/customize-options.pod:328\n#: common/mlcustomize/v2v-customize-options.pod:245\n#: common/mlcustomize/v2v-customize-options.pod:274\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:304\n#: common/mlcustomize/v2v-customize-options.pod:250\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:311\n#: common/mlcustomize/v2v-customize-options.pod:257\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:318\n#: common/mlcustomize/v2v-customize-options.pod:264\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify \"\n\"C</etc/sysconfig/authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> \"\n\"(Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:326\n#: common/mlcustomize/v2v-customize-options.pod:272\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:331\n#: common/mlcustomize/v2v-customize-options.pod:277\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:336\n#: common/mlcustomize/v2v-customize-options.pod:282\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/customize-options.pod:358\n#: common/mlcustomize/v2v-customize-options.pod:288\n#: common/mlcustomize/v2v-customize-options.pod:304\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/v2v-customize-options.pod:294\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:351\n#: common/mlcustomize/customize-options.pod:367\n#: common/mlcustomize/v2v-customize-options.pod:297\n#: common/mlcustomize/v2v-customize-options.pod:313\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:353\n#: common/mlcustomize/v2v-customize-options.pod:299\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:355\n#: common/mlcustomize/v2v-customize-options.pod:301\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:369\n#: common/mlcustomize/v2v-customize-options.pod:315\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:371\n#: common/mlcustomize/v2v-customize-options.pod:317\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/v2v-customize-options.pod:327\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:331\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:389\n#: common/mlcustomize/v2v-customize-options.pod:335\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:398\n#: common/mlcustomize/v2v-customize-options.pod:344\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:403\n#: common/mlcustomize/v2v-customize-options.pod:349\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:411\n#: common/mlcustomize/v2v-customize-options.pod:357\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:414\n#: common/mlcustomize/v2v-customize-options.pod:360\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:416\n#: common/mlcustomize/v2v-customize-options.pod:362\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:418\n#: common/mlcustomize/v2v-customize-options.pod:364\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:423\n#: common/mlcustomize/v2v-customize-options.pod:369\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:425\n#: common/mlcustomize/v2v-customize-options.pod:371\nmsgid \"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:427\n#: common/mlcustomize/v2v-customize-options.pod:373\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:434\n#: common/mlcustomize/v2v-customize-options.pod:380\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:436\n#: common/mlcustomize/v2v-customize-options.pod:382\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:438\n#: common/mlcustomize/v2v-customize-options.pod:384\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:446\n#: common/mlcustomize/v2v-customize-options.pod:392\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:453\n#: common/mlcustomize/v2v-customize-options.pod:399\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:457\n#: common/mlcustomize/v2v-customize-options.pod:403\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:461\n#: common/mlcustomize/v2v-customize-options.pod:407\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using \"\n\"I<--blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also \"\n\"L<guestfs(3)/guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1991 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:2013\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:2025 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:2041 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:2043 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to \"\n\"L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1287\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1830\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1837\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a \"\n\"C</vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use \"\n\"ssh-agent, and add your ssh public key to \"\n\"F</etc/ssh/keys-root/authorized_keys> (on the ESXi hypervisor).  After doing \"\n\"this, you should check that passwordless access works from the virt-v2v \"\n\"server to the ESXi hypervisor.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" \"\n\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-encoding#Reserved_characters> \"\n\"that you find in the individual pathname components.  For example, space \"\n\"characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \"\n\"\\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1843\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing \"\n\"F</etc/vmware/hostd/config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> \"\n\"setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using \"\n\"NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \"\n\"list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \"\n\"\\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io \"\n\"vddk-thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io \"\n\"vddk-thumbprint=XX:XX...> parameter.  Doing so increases security against \"\n\"some man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a \"\n\"non-root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as \"\n\"F</var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/html-single/virtual_machine_management_guide/index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate \"\n\"I<-ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \"\n\"\\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \"\n\"\\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom \"\n\"non-administrator role to perform the conversion.  You will however need \"\n\"enable the following permissions (or as many as are available, older \"\n\"versions of VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this \"\n\"message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances \"\n\"virt-v2v may exceed this number.  You can adjust or remove the limit by \"\n\"editing F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use \"\n\"ssh-agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on \"\n\"the Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new \"\n\"one. Virt-v2v uses both C<libssh> and C<ssh> when converting a guest from \"\n\"Xen, and on some operating systems, C<libssh> and C<ssh> may not both accept \"\n\"the same option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut \"\n\"down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See \"\n\"L</OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit \"\n\"it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a \"\n\"libvirt-managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:490 docs/virt-v2v.pod:982 docs/virt-v2v.pod:1159\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being \"\n\"converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or \"\n\"F<$HOME/.config/openstack/> to the other machine as well.  See the section \"\n\"\\\"CLOUD CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in \"\n\"I<-o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the \"\n\"virt-v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  \"\n\"L<https://docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with \"\n\"C</ovirt-engine/api> appended, but might be different if you installed oVirt \"\n\"Engine on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from \"\n\"F</etc/pki/ovirt-engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use \"\n\"virt-v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os \"\n\"/tmp/mnt>>.  Be careful not to point to the Data Storage Domain by accident \"\n\"as that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o \"\n\"rhv-upload> mode.  Also allows us to detect and reject various other \"\n\"conditions early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike \"\n\"Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in \"\n\"virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in \"\n\"virt-v2v-input-vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:2021\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:2029\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:2031\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:2033\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:2037\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing \"\n\"virt-v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, \"\n\"I<--debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using \"\n\"I<--wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: \"\n\"/dev/mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because \"\n\"cookie-script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for \"\n\"openstack/glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, \"\n\"L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:2019\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, \"\n\"I<--disable-ovirt> and I<--disable-xen> options allowing you to disable \"\n\"those features at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in \"\n\"virt-v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: \"\n\"https://bugzilla.redhat.com/show_bug.cgi?id=2066773 (thanks Xiaodai Wang, \"\n\"S<Dr David Gilbert>, Daniel Berrangé, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / \"\n\"non-existent cases like SCSI floppies.  This should result in more \"\n\"consistent device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in \"\n\"virt-v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after \"\n\"virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem \"\n\"/dev/mapper/osprober-linux-sdb1 failed if non-os disk of source guest has \"\n\"few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, \"\n\"L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like \"\n\"F</dev/mapper/rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in \"\n\"F</boot/grub/grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock \"\n\"offset=\\\"utc|localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / \"\n\"kernel-modules-core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:2027\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into \"\n\"virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o \"\n\"ovirt-upload> and I<-o ovirt> respectively, although aliases for the other \"\n\"names remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file \"\n\"(F</boot/efi/EFI/E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> \"\n\"9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> \"\n\"1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use \"\n\"L<virt-p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see \"\n\"L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called \"\n\"L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using \"\n\"I<--upload>, or using I<--firstboot-script> to add additional script(s) to \"\n\"run at the first boot after conversion.  Read the virt-customize manual for \"\n\"more information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to \"\n\"F</var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:562 docs/virt-v2v.pod:596\n#: docs/virt-v2v.pod:680 docs/virt-v2v.pod:712 docs/virt-v2v.pod:1117\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \"\n\"\\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \"\n\"\\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see \"\n\"L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt \"\n\"XML|http://libvirt.org/formatdomain.html> describing the input guest (if you \"\n\"can get the source hypervisor to provide you with libvirt XML, then so much \"\n\"the better).  You can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1289\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272\nmsgid \"B<-i> B<disk> disk [disk ...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:281\nmsgid \"\"\n\"Each disk can be a local file or an C<nbd://> URI if you want to pull the \"\n\"guest disk from an NBD server (see L<nbd_connect_uri(3)> for the supported \"\n\"URI formats).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:285\nmsgid \"B<-i> B<libvirt> name|UUID\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:287 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:289 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:293\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:295\nmsgid \"B<-i> B<libvirtxml> guestB<.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:297 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:299 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:304\nmsgid \"B<-i> B<local> disk [disk ...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:306 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:308\nmsgid \"B<-i> B<ova> guestB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:310\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:312\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See \"\n\"L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:317\nmsgid \"B<-i> B<vmx> guestB<.vmx>|B<ssh://>...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:319\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:321\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See \"\n\"L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:326 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:331\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:336\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, \"\n\"L<virt-v2v-input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:339 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:341 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:345 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:347 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:350\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:352\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:354\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:358\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:361\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:363\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:365\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:367\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:369\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:371\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:373\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:375\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:377\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:379\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:381\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:383\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:388 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:390\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:396\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:398\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See \"\n\"L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:401\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:403\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See \"\n\"L<virt-v2v-input-vmware(1)>.  If you use this parameter then you may need to \"\n\"use other I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:408 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:410 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:412 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:416 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:418 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:420 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:422 docs/virt-v2v.pod:480\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:424 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:429\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:434 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:436 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:442 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:444 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:446\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:450 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:452 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:454\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:458\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:460 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:462 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:464 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:466 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:468 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:470 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:472 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:474 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:476 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:482 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:484\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:486\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:488\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:492\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:497\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:501\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:509\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:511 docs/virt-v2v.pod:541\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:515\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:517\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:519 docs/virt-v2v.pod:549\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:521\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:523\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:525\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:530\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and \"\n\"L<virt-v2v-output-local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:533\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:535\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:537\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:545\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:547\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:551\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:553\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:555\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:558\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:560\nmsgid \"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:564\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:566\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:568\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The \"\n\"I<-os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:573\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:575\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:577\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:582\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:585\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:587\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:589\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:593\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:598\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:600\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:602\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: \"\n\"F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-domain-uuidE<gt>>.  \"\n\"This mode is only used when virt-v2v runs under VDSM control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:608\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:610\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:612\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:614\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:616\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:618\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:622\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:624\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:626\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:628\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:630\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:633\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:635\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:641\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:644\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:646\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of \"\n\"L<qemu-img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:650\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:652\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:655\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:657\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:663\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:665\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:669\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:671\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:674\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:676\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:682\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:684\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:688\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:690\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:693\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:695\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:700\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:702\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:707\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:709\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:714\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:716\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:718\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:725\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to \"\n\"I<-oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume \"\n\"that everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:729\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:733\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:736\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:738\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:740\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:742\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:744\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:753\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:758\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:763\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:767\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo \"\n\"vdsm-ovf-output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:774\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:776\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:778\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:783\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:785\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:787\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:789\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:793\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:797\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:799\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:801\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:805\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:807\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:812\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:814\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh \"\n\"pool-list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:822\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:824\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:828\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:831\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:833\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:837\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:842\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:846\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:851\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy \"\n\"(ie. I<--parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk \"\n\"copies one at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:855\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:859 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:861\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:865 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:867 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:869 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:871\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:873\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:875\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:877\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:891\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:896\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:898\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:905\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:907\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:909\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:914 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:919 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:923 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:925 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:927 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:929 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:931 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:933 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:935 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:937 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:941 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:943 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:947\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:949\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:951\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:953\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:955\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:959\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:963\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:965\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:969\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:977\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:979\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:984\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:986\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:990\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:992\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:994\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:999\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1001\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1003\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1008\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1013\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1018\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1020\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1024\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1026\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use \"\n\"I<--memsize=4000> (or larger) to convert such guests.  For details see \"\n\"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1032\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1034\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1038\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1042\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1046\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1054\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1058\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1060\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1062\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1064\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1069\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1071 docs/virt-v2v.pod:1082\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1073\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1075\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1077\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1080\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1084\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1086\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1088\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1092\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1095\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1097\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1100\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1104\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1109\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1111\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1119\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1124\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running \"\n\"virt-v2v, and passing I<-os /mountpoint> instead, but first of all read the \"\n\"next S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1128\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1130\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1134\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as \"\n\"non-root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1140\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1142\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1147\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1152\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1154\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1156\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1161\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1163\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1169 docs/virt-v2v.pod:1175\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1171\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1177\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1182\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1185\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1190\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1194\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1199\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1204\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1206\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1208\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1213\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1215\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1220\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1226\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1230\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1232\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1234\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also \"\n\"L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1239\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1241\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1246\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1248\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1250\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1252\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1256\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1260\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1267\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1272\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1278\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: \"\n\"L<https://knowledge.broadcom.com/external/article/315629/clean-uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1282\nmsgid \"\"\n\"Another, unofficial method is described here: \"\n\"L<https://gist.github.com/broestls/f872872a00acee2fca02017160840624> You \"\n\"should carefully check this script since it makes very invasive changes to \"\n\"the Windows Registry and filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1291\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1293\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1298\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1302\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1312\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1321\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1324\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1329\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1334\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1339\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1345\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1349\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1351\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1353\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1355\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1357\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1359\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1361\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1363\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1365\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1373\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1375\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1378\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1383\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1390\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1392\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1394\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1396\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1402\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1404\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1406\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1408\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: \"\n\"/sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1410\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1414\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1416\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1418\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1420\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1428\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1430\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1434\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1440\nmsgid \"\"\n\"You can work around this problem by running this command before running \"\n\"virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1443\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1445\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1447\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1449\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1454\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1456\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1458\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1462\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1467\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1473\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1476\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1478\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1486\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1491\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in \"\n\"F</usr/share/virtio-win>, and that virt-v2v did not print any warning about \"\n\"not being able to install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1495\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1502\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1506\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1508\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1510\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1514\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1520\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group \"\n\"Policy-like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1525\nmsgid \"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1530\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1532\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1543\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1547\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1554\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1558\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1560\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1565\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: \"\n\"L<https://docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1569\nmsgid \"\"\n\"For further information see: \"\n\"L<https://bugzilla.redhat.com/show_bug.cgi?id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1572\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1577\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1581\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1583\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1589\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1593\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1595\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1598\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1600\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1605\nmsgid \"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1608\nmsgid \"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1610\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1615\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1619\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1624\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1626\nmsgid \"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1628\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1632\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1634\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1641\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1645\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1647\nmsgid \"Linux: Guests with LUKS encryption and TPM fail to boot after conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1649\nmsgid \"\"\n\"Linux guests (such as Ubuntu) that use LUKS-encrypted disks with keys sealed \"\n\"to a Trusted Platform Module (TPM) will fail to boot after virt-v2v \"\n\"conversion.  This is because the TPM is working I<exactly as designed>: it \"\n\"prevents the encrypted disk from being used on a different machine.  After \"\n\"conversion, the guest runs on a new KVM host with a different vTPM, so the \"\n\"TPM-sealed key is no longer valid.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1656\nmsgid \"\"\n\"To convert such a guest, a passphrase-based LUKS keyslot must exist so that \"\n\"virt-v2v can unlock the disk using the I<--key> option.  If the guest only \"\n\"has a TPM-sealed key, you must add a passphrase keyslot before conversion.  \"\n\"Do not remove the TPM binding on the source VM as it must remain bootable in \"\n\"case the conversion fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1662\nmsgid \"\"\n\"The following commands should be run inside the source guest while it is \"\n\"still running on the source hypervisor (where the TPM is valid).  In these \"\n\"examples C</dev/sda3> is the LUKS partition; substitute the appropriate \"\n\"device for your guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1667\nmsgid \"\"\n\"If the guest uses B<clevis> for TPM2 binding (e.g. Ubuntu 22.04), first \"\n\"recover the sealed passphrase, then add a new keyslot:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1670\n#, no-wrap\nmsgid \"\"\n\" clevis luks list -d /dev/sda3\\n\"\n\" clevis luks pass -d /dev/sda3 -s SLOT > /tmp/recovered-key\\n\"\n\" cryptsetup luksAddKey /dev/sda3 --key-file /tmp/recovered-key\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1674\nmsgid \"\"\n\"If the guest uses B<systemd-cryptenroll> (e.g. Ubuntu 24.04+), \"\n\"C<systemd-cryptenroll> does not expose the sealed passphrase, so you must \"\n\"supply the original installation passphrase when adding a new keyslot:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1679\n#, no-wrap\nmsgid \"\"\n\" cryptsetup luksDump /dev/sda3    # verify tpm2 token is present\\n\"\n\" cryptsetup luksAddKey /dev/sda3\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1682\nmsgid \"Then convert with virt-v2v, passing the passphrase you enrolled above:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1684\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --key all:key:PASSPHRASE\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1686\nmsgid \"\"\n\"After conversion, the old TPM binding will no longer be valid.  Boot the \"\n\"converted guest and remove the stale binding:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" clevis luks unbind -d /dev/sda3 -s SLOT -f       # clevis\\n\"\n\" systemd-cryptenroll --wipe-slot=tpm2 /dev/sda3   # systemd-cryptenroll\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1692\nmsgid \"\"\n\"If you want to re-seal LUKS against the new KVM vTPM, you can then run \"\n\"C<clevis luks bind -d /dev/sda3 tpm2 '{}'> or C<systemd-cryptenroll \"\n\"--tpm2-device=auto /dev/sda3> inside the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1697\nmsgid \"For further information see: L<https://issues.redhat.com/browse/RHEL-85154>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1707\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1713\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1716\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1721\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1724\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1729\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1732\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1734\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1736\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1738\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1745\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1749\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1756 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1758 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1762 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1766 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1794\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1796\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1800\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1802\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1805\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1816\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1819\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1826\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1832\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1835\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1845\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1851\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1854\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1857\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1859\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file \"\n\"or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': \"\n\"Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1862\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1867\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1869\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1871\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1873 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1877 docs/virt-v2v.pod:1958\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1879\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1887 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1891\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1893\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1895\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1899\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under \"\n\"F</var/tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when \"\n\"virt-v2v exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1906\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1911\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1914\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1922\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1925\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1927\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1929\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1935\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1943\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1945\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1949\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1954\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1956\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1960\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1964\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1968\nmsgid \"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1970\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1974\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1976\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1981\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1987\nmsgid \"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1993\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, \"\n\"L<virt-v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, \"\n\"L<virt-filesystems(1)>, L<virt-inspector(1)>, L<virt-sparsify(1)>, \"\n\"L<virt-sysprep(1)>, L<virt-win-reg(1)>, L<guestfs(3)>, L<guestfish(1)>, \"\n\"L<qemu-img(1)>, L<engine-image-uploader(8)>, \"\n\"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>, \"\n\"L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:2015 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:2017 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:2023 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:2035 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:2039 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and \"\n\"virt-v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as \"\n\"L<virt-v2v-inspector(1)>.  This can be used, for example, to find out what \"\n\"operating system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted \"\n\"state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  \"\n\"Virt-v2v-in-place will usually choose a suitable default.  Increase this if \"\n\"you see that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  \"\n\"Virt-v2v-in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See \"\n\"L<virt-v2v(1)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, \"\n\"L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the \"\n\"I<-i*> options which are the same as virt-v2v.  You should read \"\n\"L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by \"\n\"virt-v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and \"\n\"L<virt-v2v-inspector(1)> which can be used before conversion to open the \"\n\"input side of virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v \"\n\"I<--root> option).  Or running guestfish to take a look inside the source \"\n\"guest before conversion.  You can follow that by running \"\n\"L<virt-v2v-inspector(1)> to estimate how much space would be needed to \"\n\"convert that guest, and if conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : \"\n\"list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by \"\n\"virt-v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, \"\n\"L<virt-v2v-inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, \"\n\"L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po-docs/zh_CN.po",
    "content": "# SOME DESCRIPTIVE TITLE\n# Copyright (C) YEAR Red Hat Inc.\n# This file is distributed under the same license as the libguestfs package.\n#\n# Translators:\n# Christopher Meng <cickumqt@gmail.com>, 2012\n# cheng ye <18969068329@163.com>, 2017. #zanata\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: libguestfs 1.39.12\\n\"\n\"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\\n\"\n\"POT-Creation-Date: 2026-04-13 15:16+0100\\n\"\n\"PO-Revision-Date: 2017-07-24 08:04+0000\\n\"\n\"Last-Translator: cheng ye <18969068329@163.com>\\n\"\n\"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/\"\n\"libguestfs/language/zh_CN/)\\n\"\n\"Language: zh_CN\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Generator: Zanata 4.6.2\\n\"\n\n#. type: =end\n#: common/mlcustomize/customize-options.pod:1\n#: common/mlcustomize/customize-options.pod:25\n#: common/mlcustomize/v2v-customize-options.pod:1\n#: common/mlcustomize/v2v-customize-options.pod:25\n#: docs/virt-v2v-release-notes-1.42.pod:141\n#: docs/virt-v2v-release-notes-1.42.pod:145\n#: docs/virt-v2v-release-notes-2.0.pod:138\n#: docs/virt-v2v-release-notes-2.0.pod:142\n#: docs/virt-v2v-release-notes-2.0.pod:370\n#: docs/virt-v2v-release-notes-2.0.pod:374\n#: docs/virt-v2v-release-notes-2.10.pod:12\n#: docs/virt-v2v-release-notes-2.10.pod:16\n#: docs/virt-v2v-release-notes-2.10.pod:184\n#: docs/virt-v2v-release-notes-2.10.pod:188\n#: docs/virt-v2v-release-notes-2.10.pod:278\n#: docs/virt-v2v-release-notes-2.10.pod:282\n#: docs/virt-v2v-release-notes-2.2.pod:135\n#: docs/virt-v2v-release-notes-2.2.pod:139\n#: docs/virt-v2v-release-notes-2.2.pod:284\n#: docs/virt-v2v-release-notes-2.2.pod:288\n#: docs/virt-v2v-release-notes-2.4.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:16\n#: docs/virt-v2v-release-notes-2.4.pod:93\n#: docs/virt-v2v-release-notes-2.4.pod:97\n#: docs/virt-v2v-release-notes-2.4.pod:161\n#: docs/virt-v2v-release-notes-2.4.pod:165\n#: docs/virt-v2v-release-notes-2.6.pod:12\n#: docs/virt-v2v-release-notes-2.6.pod:16\n#: docs/virt-v2v-release-notes-2.6.pod:42\n#: docs/virt-v2v-release-notes-2.6.pod:46\n#: docs/virt-v2v-release-notes-2.6.pod:92\n#: docs/virt-v2v-release-notes-2.6.pod:96\n#: docs/virt-v2v-release-notes-2.6.pod:188\n#: docs/virt-v2v-release-notes-2.6.pod:192\n#: docs/virt-v2v-release-notes-2.8.pod:12\n#: docs/virt-v2v-release-notes-2.8.pod:16\n#: docs/virt-v2v-release-notes-2.8.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:323\n#: docs/virt-v2v-release-notes-2.8.pod:327\nmsgid \"comment\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:3\n#: common/mlcustomize/v2v-customize-options.pod:3\n#, no-wrap\nmsgid \"\"\n\"libguestfs generated file\\n\"\n\" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\\n\"\n\"          generator/customize.ml\\n\"\n\"          and from the code in the generator/ subdirectory.\\n\"\n\" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:9\n#: common/mlcustomize/v2v-customize-options.pod:9\n#, no-wrap\nmsgid \"\"\n\" Copyright (C) 2009-2025 Red Hat Inc.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:11\n#: common/mlcustomize/v2v-customize-options.pod:11\n#, no-wrap\nmsgid \"\"\n\" This program is free software; you can redistribute it and/or modify\\n\"\n\" it under the terms of the GNU General Public License as published by\\n\"\n\" the Free Software Foundation; either version 2 of the License, or\\n\"\n\" (at your option) any later version.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:16\n#: common/mlcustomize/v2v-customize-options.pod:16\n#, no-wrap\nmsgid \"\"\n\" This program is distributed in the hope that it will be useful,\\n\"\n\" but WITHOUT ANY WARRANTY; without even the implied warranty of\\n\"\n\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n\"\n\" GNU General Public License for more details.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:21\n#: common/mlcustomize/v2v-customize-options.pod:21\n#, no-wrap\nmsgid \"\"\n\" You should have received a copy of the GNU General Public License along\\n\"\n\" with this program; if not, write to the Free Software Foundation, Inc.,\\n\"\n\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:29\n#: common/mlcustomize/v2v-customize-options.pod:29\nmsgid \"B<--append-line> FILE:LINE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:31\n#: common/mlcustomize/v2v-customize-options.pod:31\nmsgid \"\"\n\"Append a single line of text to the C<FILE>.  If the file does not already \"\n\"end with a newline, then one is added before the appended line.  Also a \"\n\"newline is added to the end of the C<LINE> string automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:36\n#: common/mlcustomize/v2v-customize-options.pod:36\nmsgid \"For example (assuming ordinary shell quoting) this command:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:38\n#: common/mlcustomize/v2v-customize-options.pod:38\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:40\n#: common/mlcustomize/v2v-customize-options.pod:40\nmsgid \"\"\n\"will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the \"\n\"latter only if the existing file does not already end with a newline.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:44\n#: common/mlcustomize/v2v-customize-options.pod:44\nmsgid \"\"\n\"C<⏎> represents a newline character, which is guessed by looking at the \"\n\"existing content of the file, so this command does the right thing for files \"\n\"using Unix or Windows line endings.  It also works for empty or non-existent \"\n\"files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:49\n#: common/mlcustomize/v2v-customize-options.pod:49\nmsgid \"To insert several lines, use the same option several times:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:51\n#: common/mlcustomize/v2v-customize-options.pod:51\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\" --append-line '/etc/hosts:10.0.0.2 bar'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:54\n#: common/mlcustomize/v2v-customize-options.pod:54\nmsgid \"To insert a blank line before the appended line, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:56\n#: common/mlcustomize/v2v-customize-options.pod:56\n#, no-wrap\nmsgid \"\"\n\" --append-line '/etc/hosts:'\\n\"\n\" --append-line '/etc/hosts:10.0.0.1 foo'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:59\n#: common/mlcustomize/v2v-customize-options.pod:59\nmsgid \"B<--chmod> PERMISSIONS:FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:61\n#: common/mlcustomize/v2v-customize-options.pod:61\nmsgid \"Change the permissions of C<FILE> to C<PERMISSIONS>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:63\n#: common/mlcustomize/v2v-customize-options.pod:63\nmsgid \"\"\n\"I<Note>: C<PERMISSIONS> by default would be decimal, unless you prefix it \"\n\"with C<0> to get octal, ie. use C<0700> not C<700>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:66\n#: common/mlcustomize/v2v-customize-options.pod:66\nmsgid \"B<--chown> UID:GID:PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:68\n#: common/mlcustomize/v2v-customize-options.pod:68\nmsgid \"\"\n\"Change the owner user and group ID of a file or directory in the guest.  \"\n\"Note:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:73\n#: common/mlcustomize/customize-options.pod:78\n#: common/mlcustomize/customize-options.pod:381\n#: common/mlcustomize/customize-options.pod:385\n#: common/mlcustomize/v2v-customize-options.pod:73\n#: common/mlcustomize/v2v-customize-options.pod:78\n#: common/mlcustomize/v2v-customize-options.pod:327\n#: common/mlcustomize/v2v-customize-options.pod:331\n#: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27\n#: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430\n#: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502\n#: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510\n#: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71\n#: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81\n#: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125\n#: docs/virt-v2v-release-notes-2.10.pod:28\n#: docs/virt-v2v-release-notes-2.10.pod:33\n#: docs/virt-v2v-release-notes-2.10.pod:91\n#: docs/virt-v2v-release-notes-2.10.pod:95\n#: docs/virt-v2v-release-notes-2.10.pod:100\n#: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207\n#: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221\n#: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753\n#: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481\n#: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509\n#: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538\n#: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41\n#: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53\n#: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40\nmsgid \"*\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:75\n#: common/mlcustomize/v2v-customize-options.pod:75\nmsgid \"\"\n\"Only numeric UIDs and GIDs will work, and these may not be the same inside \"\n\"the guest as on the host.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:80\n#: common/mlcustomize/v2v-customize-options.pod:80\nmsgid \"This will not work with Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:84\n#: common/mlcustomize/v2v-customize-options.pod:84\n#: docs/virt-v2v-output-openstack.pod:101\nmsgid \"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:86\n#: common/mlcustomize/v2v-customize-options.pod:86\n#, no-wrap\nmsgid \"\"\n\" virt-customize --chown '0:0:/var/log/audit.log'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:88\n#: common/mlcustomize/v2v-customize-options.pod:88\nmsgid \"See also: I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:90\n#: common/mlcustomize/v2v-customize-options.pod:90\nmsgid \"B<--commands-from-file> FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:92\n#: common/mlcustomize/v2v-customize-options.pod:92\nmsgid \"\"\n\"Read the customize commands from a file, one (and its arguments)  each line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:95\n#: common/mlcustomize/v2v-customize-options.pod:95\nmsgid \"\"\n\"Each line contains a single customization command and its arguments, for \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:98\n#: common/mlcustomize/v2v-customize-options.pod:98\n#, no-wrap\nmsgid \"\"\n\" delete /some/file\\n\"\n\" install some-package\\n\"\n\" password some-user:password:its-new-password\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:102\n#: common/mlcustomize/v2v-customize-options.pod:102\nmsgid \"\"\n\"Empty lines are ignored, and lines starting with C<#> are comments and are \"\n\"ignored as well.  Furthermore, arguments can be spread across multiple \"\n\"lines, by adding a C<\\\\> (continuation character) at the of a line, for \"\n\"example\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:107\n#: common/mlcustomize/v2v-customize-options.pod:107\n#, no-wrap\nmsgid \"\"\n\" edit /some/file:\\\\\\n\"\n\"   s/^OPT=.*/OPT=ok/\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:110\n#: common/mlcustomize/v2v-customize-options.pod:110\nmsgid \"\"\n\"The commands are handled in the same order as they are in the file, as if \"\n\"they were specified as I<--delete /some/file> on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:114\n#: common/mlcustomize/v2v-customize-options.pod:114\nmsgid \"B<--copy> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:116\n#: common/mlcustomize/v2v-customize-options.pod:116\nmsgid \"Copy files or directories recursively inside the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:118\n#: common/mlcustomize/customize-options.pod:125\n#: common/mlcustomize/customize-options.pod:277\n#: common/mlcustomize/v2v-customize-options.pod:118\n#: common/mlcustomize/v2v-customize-options.pod:125\n#: common/mlcustomize/v2v-customize-options.pod:223\nmsgid \"Wildcards cannot be used.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:120\n#: common/mlcustomize/v2v-customize-options.pod:120\nmsgid \"B<--copy-in> LOCALPATH:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:122\n#: common/mlcustomize/v2v-customize-options.pod:122\nmsgid \"\"\n\"Copy local files or directories recursively into the disk image, placing \"\n\"them in the directory C<REMOTEDIR> (which must exist).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:127\n#: common/mlcustomize/v2v-customize-options.pod:127\nmsgid \"B<--delete> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:129\n#: common/mlcustomize/v2v-customize-options.pod:129\nmsgid \"\"\n\"Delete a file from the guest.  Or delete a directory (and all its contents, \"\n\"recursively).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:132\n#: common/mlcustomize/v2v-customize-options.pod:132\nmsgid \"\"\n\"You can use shell glob characters in the specified path.  Be careful to \"\n\"escape glob characters from the host shell, if that is required.  For \"\n\"example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: common/mlcustomize/customize-options.pod:136\n#: common/mlcustomize/v2v-customize-options.pod:136\n#, no-wrap\nmsgid \"\"\n\" virt-customize --delete '/var/log/*.log'.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:138\n#: common/mlcustomize/v2v-customize-options.pod:138\nmsgid \"See also: I<--upload>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:140\n#: common/mlcustomize/v2v-customize-options.pod:140\nmsgid \"B<--edit> FILE:EXPR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:142\n#: common/mlcustomize/v2v-customize-options.pod:142\nmsgid \"Edit C<FILE> using the Perl expression C<EXPR>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:144\n#: common/mlcustomize/v2v-customize-options.pod:144\nmsgid \"\"\n\"Be careful to properly quote the expression to prevent it from being altered \"\n\"by the shell.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:147\n#: common/mlcustomize/v2v-customize-options.pod:147\nmsgid \"Note that this option is only available when Perl 5 is installed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:149\n#: common/mlcustomize/v2v-customize-options.pod:149\nmsgid \"See L<virt-edit(1)/NON-INTERACTIVE EDITING>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:151\n#: common/mlcustomize/v2v-customize-options.pod:151\nmsgid \"B<--firstboot> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:153\n#: common/mlcustomize/v2v-customize-options.pod:153\nmsgid \"\"\n\"Install C<SCRIPT> inside the guest, so that when the guest first boots up, \"\n\"the script runs (as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:156\n#: common/mlcustomize/v2v-customize-options.pod:156\nmsgid \"The script is automatically chmod +x after installation in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:158\n#: common/mlcustomize/v2v-customize-options.pod:158\nmsgid \"\"\n\"The alternative version I<--firstboot-command> is the same, but it \"\n\"conveniently wraps the command up in a single line script for you.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:161\n#: common/mlcustomize/customize-options.pod:174\n#: common/mlcustomize/v2v-customize-options.pod:161\n#: common/mlcustomize/v2v-customize-options.pod:174\nmsgid \"\"\n\"You can have multiple I<--firstboot> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:164\n#: common/mlcustomize/customize-options.pod:177\n#: common/mlcustomize/v2v-customize-options.pod:164\n#: common/mlcustomize/v2v-customize-options.pod:177\nmsgid \"\"\n\"Please take a look at L<virt-builder(1)/FIRST BOOT SCRIPTS> for more \"\n\"information and caveats about the first boot scripts.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:167\n#: common/mlcustomize/customize-options.pod:180\n#: common/mlcustomize/v2v-customize-options.pod:167\n#: common/mlcustomize/v2v-customize-options.pod:180\nmsgid \"See also I<--run>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:169\n#: common/mlcustomize/v2v-customize-options.pod:169\nmsgid \"B<--firstboot-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:171\n#: common/mlcustomize/v2v-customize-options.pod:171\nmsgid \"\"\n\"Run command (and arguments) inside the guest when the guest first boots up \"\n\"(as root, late in the boot process).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:182\n#: common/mlcustomize/v2v-customize-options.pod:182\nmsgid \"B<--firstboot-install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:184\n#: common/mlcustomize/v2v-customize-options.pod:184\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"when the guest first boots using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the guest’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:188\n#: common/mlcustomize/customize-options.pod:256\n#: common/mlcustomize/v2v-customize-options.pod:188\n#: common/mlcustomize/v2v-customize-options.pod:202\nmsgid \"\"\n\"For an overview on the different ways to install packages, see L<virt-\"\n\"builder(1)/INSTALLING PACKAGES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:191\n#: common/mlcustomize/v2v-customize-options.pod:191\nmsgid \"B<--hostname> HOSTNAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:193\n#: common/mlcustomize/v2v-customize-options.pod:193\nmsgid \"\"\n\"Set the hostname of the guest to C<HOSTNAME>.  You can use a dotted \"\n\"hostname.domainname (FQDN) if you want.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:196\nmsgid \"B<--inject-blnsvr> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:198\nmsgid \"\"\n\"Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.  This \"\n\"operation also injects a firstboot script so that the Balloon Server is \"\n\"installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:202\n#: common/mlcustomize/customize-options.pod:216\nmsgid \"\"\n\"The parameter is the same as used by the I<--inject-virtio-win> operation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:204\n#: common/mlcustomize/customize-options.pod:218\n#: common/mlcustomize/customize-options.pod:246\nmsgid \"\"\n\"Note that to do a full conversion of a Windows guest from a foreign \"\n\"hypervisor like VMware (which involves many other operations)  you should \"\n\"use the L<virt-v2v(1)> tool instead of this.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:208\nmsgid \"B<--inject-qemu-ga> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:210\nmsgid \"\"\n\"Inject the QEMU Guest Agent into a Windows guest.  The guest agent \"\n\"communicates with qemu through a socket in order to provide enhanced \"\n\"features (see L<qemu-ga(8)>).  This operation also injects a firstboot \"\n\"script so that the Guest Agent is installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:222\nmsgid \"B<--inject-virtio-win> METHOD\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:224\nmsgid \"\"\n\"Inject virtio-win drivers into a Windows guest.  These drivers add virtio \"\n\"accelerated drivers suitable when running on top of a hypervisor that \"\n\"supports virtio (such as qemu/KVM).  The operation also adjusts the Windows \"\n\"Registry so that the drivers are installed when the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:230\nmsgid \"The parameter can be one of:\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:234\nmsgid \"ISO\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:236\nmsgid \"\"\n\"The path to the ISO image containing the virtio-win drivers (eg. F</usr/\"\n\"share/virtio-win/virtio-win.iso>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:239\nmsgid \"DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:241\nmsgid \"\"\n\"The directory containing the unpacked virtio-win drivers (eg. F</usr/share/\"\n\"virtio-win>).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:250\n#: common/mlcustomize/v2v-customize-options.pod:196\nmsgid \"B<--install> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:252\n#: common/mlcustomize/v2v-customize-options.pod:198\nmsgid \"\"\n\"Install the named packages (a comma-separated list).  These are installed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.) and the host’s network connection.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:259\n#: common/mlcustomize/v2v-customize-options.pod:205\nmsgid \"See also I<--update>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:261\n#: common/mlcustomize/v2v-customize-options.pod:207\nmsgid \"B<--link> TARGET:LINK[:LINK..]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:263\n#: common/mlcustomize/v2v-customize-options.pod:209\nmsgid \"\"\n\"Create symbolic link(s) in the guest, starting at C<LINK> and pointing at \"\n\"C<TARGET>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:266\n#: common/mlcustomize/v2v-customize-options.pod:212\nmsgid \"B<--mkdir> DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:268\n#: common/mlcustomize/v2v-customize-options.pod:214\nmsgid \"Create a directory in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:270\n#: common/mlcustomize/v2v-customize-options.pod:216\nmsgid \"\"\n\"This uses S<C<mkdir -p>> so any intermediate directories are created, and it \"\n\"also works if the directory already exists.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:273\n#: common/mlcustomize/v2v-customize-options.pod:219\nmsgid \"B<--move> SOURCE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:275\n#: common/mlcustomize/v2v-customize-options.pod:221\nmsgid \"Move files or directories inside the guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:279\n#: common/mlcustomize/v2v-customize-options.pod:225\nmsgid \"B<--no-logfile>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:281\n#: common/mlcustomize/v2v-customize-options.pod:227\nmsgid \"\"\n\"Scrub C<builder.log> (log file from build commands) from the image after \"\n\"building is complete.  If you don't want to reveal precisely how the image \"\n\"was built, use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:285\n#: common/mlcustomize/v2v-customize-options.pod:231\nmsgid \"See also: L</LOG FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:287\n#: common/mlcustomize/v2v-customize-options.pod:233\nmsgid \"B<--no-selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:289\n#: common/mlcustomize/v2v-customize-options.pod:235\nmsgid \"Do not attempt to correct the SELinux labels of files in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:291\n#: common/mlcustomize/v2v-customize-options.pod:237\nmsgid \"\"\n\"In such guests that support SELinux, customization automatically relabels \"\n\"files so that they have the correct SELinux label.  (The relabeling is \"\n\"performed immediately, but if the operation fails, customization will \"\n\"instead touch F</.autorelabel> on the image to schedule a relabel operation \"\n\"for the next time the image boots.)  This option disables the automatic \"\n\"relabeling.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:298\n#: common/mlcustomize/v2v-customize-options.pod:244\nmsgid \"The option is a no-op for guests that do not support SELinux.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:300\n#: common/mlcustomize/v2v-customize-options.pod:246\nmsgid \"B<--password> USER:SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:302\n#: common/mlcustomize/v2v-customize-options.pod:248\nmsgid \"\"\n\"Set the password for C<USER>.  (Note this option does I<not> create the user \"\n\"account).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:305\n#: common/mlcustomize/customize-options.pod:334\n#: common/mlcustomize/v2v-customize-options.pod:251\n#: common/mlcustomize/v2v-customize-options.pod:280\nmsgid \"\"\n\"See L<virt-builder(1)/USERS AND PASSWORDS> for the format of the C<SELECTOR> \"\n\"field, and also how to set up user accounts.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:308\n#: common/mlcustomize/v2v-customize-options.pod:254\nmsgid \"B<--password-crypto> md5|sha256|sha512\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:310\n#: common/mlcustomize/v2v-customize-options.pod:256\nmsgid \"\"\n\"When the virt tools change or set a password in the guest, this option sets \"\n\"the password encryption of that password to C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:314\n#: common/mlcustomize/v2v-customize-options.pod:260\nmsgid \"\"\n\"C<sha256> and C<sha512> require glibc E<ge> 2.7 (check crypt(3) inside the \"\n\"guest).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:317\n#: common/mlcustomize/v2v-customize-options.pod:263\nmsgid \"\"\n\"C<md5> will work with relatively old Linux guests (eg. RHEL 3), but is not \"\n\"secure against modern attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:320\n#: common/mlcustomize/v2v-customize-options.pod:266\nmsgid \"\"\n\"The default is C<sha512> unless libguestfs detects an old guest that didn't \"\n\"have support for SHA-512, in which case it will use C<md5>.  You can \"\n\"override libguestfs by specifying this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:324\n#: common/mlcustomize/v2v-customize-options.pod:270\nmsgid \"\"\n\"Note this does not change the default password encryption used by the guest \"\n\"when you create new user accounts inside the guest.  If you want to do that, \"\n\"then you should use the I<--edit> option to modify C</etc/sysconfig/\"\n\"authconfig> (Fedora, RHEL) or C</etc/pam.d/common-password> (Debian, Ubuntu).\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:330\n#: common/mlcustomize/v2v-customize-options.pod:276\nmsgid \"B<--root-password> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:332\n#: common/mlcustomize/v2v-customize-options.pod:278\nmsgid \"Set the root password.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:337\n#: common/mlcustomize/v2v-customize-options.pod:283\nmsgid \"\"\n\"Note: In virt-builder, if you I<don't> set I<--root-password> then the guest \"\n\"is given a I<random> root password.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:340\n#: common/mlcustomize/v2v-customize-options.pod:286\nmsgid \"B<--run> SCRIPT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:342\n#: common/mlcustomize/v2v-customize-options.pod:288\nmsgid \"\"\n\"Run the shell script (or any program) called C<SCRIPT> on the disk image.  \"\n\"The script runs virtualized inside a small appliance, chrooted into the \"\n\"guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:346\n#: common/mlcustomize/v2v-customize-options.pod:292\nmsgid \"The script is automatically chmod +x.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:348\n#: common/mlcustomize/customize-options.pod:364\n#: common/mlcustomize/v2v-customize-options.pod:294\n#: common/mlcustomize/v2v-customize-options.pod:310\nmsgid \"\"\n\"If libguestfs supports it then a limited network connection is available but \"\n\"it only allows outgoing network connections.  You can also attach data disks \"\n\"(eg. ISO files) as another way to provide data (eg. software packages) to \"\n\"the script without needing a network connection (I<--attach>).  You can also \"\n\"upload data files (I<--upload>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:354\n#: common/mlcustomize/v2v-customize-options.pod:300\nmsgid \"\"\n\"You can have multiple I<--run> options.  They run in the same order that \"\n\"they appear on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:357\n#: common/mlcustomize/customize-options.pod:373\n#: common/mlcustomize/v2v-customize-options.pod:303\n#: common/mlcustomize/v2v-customize-options.pod:319\nmsgid \"See also: I<--firstboot>, I<--attach>, I<--upload>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:359\n#: common/mlcustomize/v2v-customize-options.pod:305\nmsgid \"B<--run-command> 'CMD+ARGS'\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:361\n#: common/mlcustomize/v2v-customize-options.pod:307\nmsgid \"\"\n\"Run the command and arguments on the disk image.  The command runs \"\n\"virtualized inside a small appliance, chrooted into the guest filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:370\n#: common/mlcustomize/v2v-customize-options.pod:316\nmsgid \"\"\n\"You can have multiple I<--run-command> options.  They run in the same order \"\n\"that they appear on the command line.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:375\n#: common/mlcustomize/v2v-customize-options.pod:321\nmsgid \"B<--scrub> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:377\n#: common/mlcustomize/v2v-customize-options.pod:323\nmsgid \"Scrub a file from the guest.  This is like I<--delete> except that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:383\n#: common/mlcustomize/v2v-customize-options.pod:329\nmsgid \"It scrubs the data so a guest could not recover it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:387\n#: common/mlcustomize/v2v-customize-options.pod:333\nmsgid \"It cannot delete directories, only regular files.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:391\n#: common/mlcustomize/v2v-customize-options.pod:337\nmsgid \"B<--selinux-relabel>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:393\n#: common/mlcustomize/v2v-customize-options.pod:339\nmsgid \"This is a compatibility option that does nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:395\n#: common/mlcustomize/v2v-customize-options.pod:341\nmsgid \"B<--ssh-inject> USER[:SELECTOR]\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:397\n#: common/mlcustomize/v2v-customize-options.pod:343\nmsgid \"\"\n\"Inject an ssh key so the given C<USER> will be able to log in over ssh \"\n\"without supplying a password.  The C<USER> must exist already in the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:401\n#: common/mlcustomize/v2v-customize-options.pod:347\nmsgid \"\"\n\"See L<virt-builder(1)/SSH KEYS> for the format of the C<SELECTOR> field.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:404\n#: common/mlcustomize/v2v-customize-options.pod:350\nmsgid \"\"\n\"You can have multiple I<--ssh-inject> options, for different users and also \"\n\"for more keys for each user.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:407\n#: common/mlcustomize/v2v-customize-options.pod:353\nmsgid \"B<--tar-in> TARFILE:REMOTEDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:409\n#: common/mlcustomize/v2v-customize-options.pod:355\nmsgid \"\"\n\"Copy local files or directories from a local tar file called C<TARFILE> into \"\n\"the disk image, placing them in the directory C<REMOTEDIR> (which must \"\n\"exist).  Note that the tar file must be uncompressed (F<.tar.gz> files will \"\n\"not work here)\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:415\n#: common/mlcustomize/v2v-customize-options.pod:361\nmsgid \"B<--timezone> TIMEZONE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:417\n#: common/mlcustomize/v2v-customize-options.pod:363\nmsgid \"\"\n\"Set the default timezone of the guest to C<TIMEZONE>.  Use a location string \"\n\"like C<Europe/London>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:420\n#: common/mlcustomize/v2v-customize-options.pod:366\nmsgid \"B<--touch> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:422\n#: common/mlcustomize/v2v-customize-options.pod:368\nmsgid \"This command performs a L<touch(1)>-like operation on C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:424\n#: common/mlcustomize/v2v-customize-options.pod:370\nmsgid \"B<--truncate> FILE\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:426\n#: common/mlcustomize/v2v-customize-options.pod:372\nmsgid \"\"\n\"This command truncates C<FILE> to a zero-length file. The file must exist \"\n\"already.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:429\n#: common/mlcustomize/v2v-customize-options.pod:375\nmsgid \"B<--truncate-recursive> PATH\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:431\n#: common/mlcustomize/v2v-customize-options.pod:377\nmsgid \"\"\n\"This command recursively truncates all files under C<PATH> to zero-length.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:433\n#: common/mlcustomize/v2v-customize-options.pod:379\nmsgid \"B<--uninstall> PKG,PKG..\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:435\n#: common/mlcustomize/v2v-customize-options.pod:381\nmsgid \"\"\n\"Uninstall the named packages (a comma-separated list).  These are removed \"\n\"during the image build using the guest’s package manager (eg. apt, yum, \"\n\"etc.).  Dependent packages may also need to be uninstalled to satisfy the \"\n\"request.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:440\n#: common/mlcustomize/v2v-customize-options.pod:386\nmsgid \"See also I<--install>, I<--update>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:442\n#: common/mlcustomize/v2v-customize-options.pod:388\nmsgid \"B<--update>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:444\n#: common/mlcustomize/v2v-customize-options.pod:390\nmsgid \"\"\n\"Do the equivalent of C<yum update>, C<apt-get upgrade>, or whatever command \"\n\"is required to update the packages already installed in the template to \"\n\"their latest versions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:448\n#: common/mlcustomize/v2v-customize-options.pod:394\nmsgid \"See also I<--install>, I<--uninstall>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:450\n#: common/mlcustomize/v2v-customize-options.pod:396\nmsgid \"B<--upload> FILE:DEST\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:452\n#: common/mlcustomize/v2v-customize-options.pod:398\nmsgid \"\"\n\"Upload local file C<FILE> to destination C<DEST> in the disk image.  File \"\n\"owner and permissions from the original are preserved, so you should set \"\n\"them to what you want them to be in the disk image.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:456\n#: common/mlcustomize/v2v-customize-options.pod:402\nmsgid \"\"\n\"C<DEST> could be the final filename.  This can be used to rename the file on \"\n\"upload.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:459\n#: common/mlcustomize/v2v-customize-options.pod:405\nmsgid \"\"\n\"If C<DEST> is a directory name (which must already exist in the guest)  then \"\n\"the file is uploaded into that directory, and it keeps the same name as on \"\n\"the local filesystem.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:463\n#: common/mlcustomize/v2v-customize-options.pod:409\nmsgid \"See also: I<--mkdir>, I<--delete>, I<--scrub>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/mlcustomize/customize-options.pod:465\n#: common/mlcustomize/v2v-customize-options.pod:411\nmsgid \"B<--write> FILE:CONTENT\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/mlcustomize/customize-options.pod:467\n#: common/mlcustomize/v2v-customize-options.pod:413\nmsgid \"Write C<CONTENT> to C<FILE>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:1\nmsgid \"B<--blocksize=512>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:3\nmsgid \"B<--blocksize=4096>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/blocksize-option.pod:5\nmsgid \"B<--blocksize>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/blocksize-option.pod:7\nmsgid \"\"\n\"This parameter sets the sector size of the disk image.  It affects all \"\n\"explicitly added subsequent disks after this parameter.  Using I<--\"\n\"blocksize> with no argument switches the disk sector size to the default \"\n\"value which is usually 512 bytes.  See also L<guestfs(3)/\"\n\"guestfs_add_drive_opts>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:1\nmsgid \"B<--key> SELECTOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:3\nmsgid \"\"\n\"Specify a key for LUKS, to automatically open a LUKS device when using the \"\n\"inspection.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:8\nmsgid \"B<--key> NAMEB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:10\nmsgid \"B<--key> UUIDB<:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:12\nmsgid \"B<--key> B<all:key:>KEY_STRING\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:14\nmsgid \"\"\n\"C<NAME> is the libguestfs device name (eg. C</dev/sda1>).  C<UUID> is the \"\n\"device UUID.  C<all> means try the key against any encrypted device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:18\nmsgid \"Use the specified C<KEY_STRING> as passphrase.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:20\nmsgid \"B<--key> NAMEB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:22\nmsgid \"B<--key> UUIDB<:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:24\nmsgid \"B<--key> B<all:file:>FILENAME\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:26\nmsgid \"Read the passphrase from F<FILENAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:28\nmsgid \"B<--key> NAMEB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:30\nmsgid \"B<--key> UUIDB<:clevis>\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/key-option.pod:32\nmsgid \"B<--key> B<all:clevis>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:34\nmsgid \"\"\n\"Attempt passphrase-less unlocking for the device with Clevis, over the \"\n\"network.  Please refer to L<guestfs(3)/ENCRYPTED DISKS> for more information \"\n\"on network-bound disk encryption (NBDE).\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/key-option.pod:38\nmsgid \"\"\n\"Note that if any such option is present on the command line, QEMU user \"\n\"networking will be automatically enabled for the libguestfs appliance.\"\nmsgstr \"\"\n\n#. type: =item\n#: common/options/keys-from-stdin-option.pod:1\n#: inspector/virt-v2v-inspector.pod:189\nmsgid \"B<--keys-from-stdin>\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:3\nmsgid \"\"\n\"Read key or passphrase parameters from stdin.  The default is to try to read \"\n\"passphrases from the user by opening F</dev/tty>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: common/options/keys-from-stdin-option.pod:6\nmsgid \"\"\n\"If there are multiple encrypted devices then you may need to supply multiple \"\n\"keys on stdin, one per line.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:1 docs/virt-v2v-input-vmware.pod:1\n#: docs/virt-v2v-input-xen.pod:1 docs/virt-v2v-output-local.pod:1\n#: docs/virt-v2v-output-openstack.pod:1 docs/virt-v2v-output-ovirt.pod:1\n#: docs/virt-v2v-release-notes-1.42.pod:1 docs/virt-v2v-release-notes-2.0.pod:1\n#: docs/virt-v2v-release-notes-2.10.pod:1 docs/virt-v2v-release-notes-2.2.pod:1\n#: docs/virt-v2v-release-notes-2.4.pod:1 docs/virt-v2v-release-notes-2.6.pod:1\n#: docs/virt-v2v-release-notes-2.8.pod:1 docs/virt-v2v-support.pod:1\n#: docs/virt-v2v.pod:1 in-place/virt-v2v-in-place.pod:1\n#: inspector/virt-v2v-inspector.pod:1 open/virt-v2v-open.pod:1\nmsgid \"NAME\"\nmsgstr \"名称\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:3\nmsgid \"virt-v2v-hacking -\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:5 docs/virt-v2v-input-vmware.pod:29\n#: docs/virt-v2v-input-xen.pod:11 docs/virt-v2v-output-local.pod:16\n#: docs/virt-v2v-output-openstack.pod:17 docs/virt-v2v-output-ovirt.pod:23\n#: docs/virt-v2v-release-notes-1.42.pod:5 docs/virt-v2v-release-notes-2.0.pod:5\n#: docs/virt-v2v-release-notes-2.10.pod:5 docs/virt-v2v-release-notes-2.2.pod:5\n#: docs/virt-v2v-release-notes-2.4.pod:5 docs/virt-v2v-release-notes-2.6.pod:5\n#: docs/virt-v2v-release-notes-2.8.pod:5 docs/virt-v2v-support.pod:6\n#: docs/virt-v2v.pod:12 in-place/virt-v2v-in-place.pod:17\n#: inspector/virt-v2v-inspector.pod:12 open/virt-v2v-open.pod:13\nmsgid \"DESCRIPTION\"\nmsgstr \"描述\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:7\nmsgid \"\"\n\"First a little history.  Virt-v2v has been through at least two complete \"\n\"rewrites, so this is probably about the third version (but we don't intend \"\n\"to rewrite it again).  The previous version was written in Perl and can be \"\n\"found here: L<https://git.fedorahosted.org/git/virt-v2v.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:13\nmsgid \"\"\n\"The current version started out as almost a line-for-line rewrite of the \"\n\"Perl code in OCaml + C, and it still has a fairly similar structure.  \"\n\"Therefore if there are details of this code that you don't understand \"\n\"(especially in the details of guest conversion), checking the Perl code may \"\n\"help.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:19\nmsgid \"The files to start with when reading this code are:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:25\nmsgid \"F<types.mli>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:29\nmsgid \"F<v2v.ml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:33\nmsgid \"\"\n\"F<types.mli> defines all the structures used and passed around when \"\n\"communicating between different bits of the program.  F<v2v.ml> controls how \"\n\"the program runs in stages.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:37\nmsgid \"\"\n\"After studying those files, you may want to branch out into the input \"\n\"modules (F<input_*>), the output modules (F<output_*>) or the conversion \"\n\"modules (F<convert_*>).  The input and output modules define I<-i> and I<-o> \"\n\"options (see the manual).  The conversion modules define what guest types we \"\n\"can handle and the detailed steps involved in converting them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:44\nmsgid \"\"\n\"Every other file in this directory is a support module / library of some \"\n\"sort.  Some code is written in C, especially where we want to use an \"\n\"external C library such as libxml2.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:48 docs/virt-v2v-input-vmware.pod:691\n#: docs/virt-v2v-input-xen.pod:144 docs/virt-v2v-output-local.pod:143\n#: docs/virt-v2v-output-openstack.pod:228 docs/virt-v2v-output-ovirt.pod:221\n#: docs/virt-v2v-release-notes-1.42.pod:211\n#: docs/virt-v2v-release-notes-2.0.pod:360\n#: docs/virt-v2v-release-notes-2.10.pod:270\n#: docs/virt-v2v-release-notes-2.2.pod:273\n#: docs/virt-v2v-release-notes-2.4.pod:153\n#: docs/virt-v2v-release-notes-2.6.pod:180\n#: docs/virt-v2v-release-notes-2.8.pod:315 docs/virt-v2v-support.pod:137\n#: docs/virt-v2v.pod:1935 in-place/virt-v2v-in-place.pod:369\n#: inspector/virt-v2v-inspector.pod:230 open/virt-v2v-open.pod:141\nmsgid \"SEE ALSO\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:50\nmsgid \"L<virt-p2v(1)>, L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:53 docs/virt-v2v-release-notes-1.42.pod:218\n#: docs/virt-v2v-release-notes-2.0.pod:366\n#: docs/virt-v2v-release-notes-2.10.pod:274\n#: docs/virt-v2v-release-notes-2.2.pod:280\n#: docs/virt-v2v-release-notes-2.4.pod:157\n#: docs/virt-v2v-release-notes-2.6.pod:184\n#: docs/virt-v2v-release-notes-2.8.pod:319 docs/virt-v2v.pod:1957\n#: in-place/virt-v2v-in-place.pod:379 inspector/virt-v2v-inspector.pod:241\n#: open/virt-v2v-open.pod:153\nmsgid \"AUTHORS\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:55 docs/virt-v2v-input-vmware.pod:697\n#: docs/virt-v2v-input-xen.pod:150 docs/virt-v2v-output-local.pod:149\n#: docs/virt-v2v-output-openstack.pod:235 docs/virt-v2v-output-ovirt.pod:227\n#: docs/virt-v2v-release-notes-1.42.pod:222\n#: docs/virt-v2v-release-notes-2.0.pod:392\n#: docs/virt-v2v-release-notes-2.10.pod:292\n#: docs/virt-v2v-release-notes-2.2.pod:312\n#: docs/virt-v2v-release-notes-2.4.pod:187\n#: docs/virt-v2v-release-notes-2.6.pod:208\n#: docs/virt-v2v-release-notes-2.8.pod:335 docs/virt-v2v-support.pod:144\n#: docs/virt-v2v.pod:1969 in-place/virt-v2v-in-place.pod:391\n#: inspector/virt-v2v-inspector.pod:253 open/virt-v2v-open.pod:165\nmsgid \"Richard W.M. Jones\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-hacking.pod:57 docs/virt-v2v-input-vmware.pod:699\n#: docs/virt-v2v-input-xen.pod:152 docs/virt-v2v-output-local.pod:151\n#: docs/virt-v2v-output-openstack.pod:237 docs/virt-v2v-output-ovirt.pod:229\n#: docs/virt-v2v-release-notes-1.42.pod:236\n#: docs/virt-v2v-release-notes-2.0.pod:398\n#: docs/virt-v2v-release-notes-2.10.pod:302\n#: docs/virt-v2v-release-notes-2.2.pod:326\n#: docs/virt-v2v-release-notes-2.4.pod:197\n#: docs/virt-v2v-release-notes-2.6.pod:218\n#: docs/virt-v2v-release-notes-2.8.pod:343 docs/virt-v2v-support.pod:146\n#: docs/virt-v2v.pod:1985 in-place/virt-v2v-in-place.pod:407\n#: inspector/virt-v2v-inspector.pod:269 open/virt-v2v-open.pod:181\nmsgid \"COPYRIGHT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-hacking.pod:59 docs/virt-v2v-input-vmware.pod:701\n#: docs/virt-v2v-input-xen.pod:154 docs/virt-v2v-output-local.pod:153\n#: docs/virt-v2v-output-openstack.pod:239 docs/virt-v2v-output-ovirt.pod:231\n#: docs/virt-v2v-release-notes-1.42.pod:238\n#: docs/virt-v2v-release-notes-2.0.pod:400\n#: docs/virt-v2v-release-notes-2.2.pod:328\n#: docs/virt-v2v-release-notes-2.4.pod:199\n#: docs/virt-v2v-release-notes-2.6.pod:220\n#: docs/virt-v2v-release-notes-2.8.pod:345 docs/virt-v2v-support.pod:148\n#: docs/virt-v2v.pod:1987 in-place/virt-v2v-in-place.pod:409\n#: inspector/virt-v2v-inspector.pod:271 open/virt-v2v-open.pod:183\nmsgid \"Copyright (C) 2009-2025 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:3\nmsgid \"virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:5 docs/virt-v2v-input-xen.pod:5\n#: docs/virt-v2v-output-local.pod:6 docs/virt-v2v-output-openstack.pod:5\n#: docs/virt-v2v-output-ovirt.pod:5 docs/virt-v2v.pod:5\n#: in-place/virt-v2v-in-place.pod:5 inspector/virt-v2v-inspector.pod:5\n#: open/virt-v2v-open.pod:5\nmsgid \"SYNOPSIS\"\nmsgstr \"简介\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx GUEST.vmx [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i vmx\\n\"\n\"    -it ssh\\n\"\n\"    -ip passwordfile\\n\"\n\"    'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx'\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -it vddk\\n\"\n\"    -io vddk-libdir=/path/to/vmware-vix-disklib-distrib\\n\"\n\"    \\\"GUEST NAME\\\"\\n\"\n\"    [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:22\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i ova DISK.ova [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:24\n#, no-wrap\nmsgid \"\"\n\" virt-v2v\\n\"\n\"    -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'\\n\"\n\"    -ip passwordfile\\n\"\n\"    \\\"GUEST NAME\\\" [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:31\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from \"\n\"VMware.  There are currently five different methods to access VMware:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:36\nmsgid \"B<-i vmx> GUESTB<.vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:38 docs/virt-v2v-input-vmware.pod:46\nmsgid \"Full documentation: L</INPUT FROM VMWARE VMX>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:40\nmsgid \"\"\n\"If you either have a F<GUEST.vmx> file and one or more F<GUEST.vmdk> disk \"\n\"image files, or if you are able to NFS-mount the VMware storage, then you \"\n\"can use the I<-i vmx> method to read the source guest.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:44\nmsgid \"B<-i vmx> B<-it ssh> ssh://...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:48\nmsgid \"\"\n\"This is similar to the method above, except it uses an SSH connection to \"\n\"ESXi to read the F<GUEST.vmx> file and associated disks.  This requires that \"\n\"you have enabled SSH access to the VMware ESXi hypervisor - in the default \"\n\"ESXi configuration this is turned off.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:53\nmsgid \"\"\n\"This transport is incompatible with guests that have snapshots; refer to L</\"\n\"NOTES>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:56\nmsgid \"B<-ic vpx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:58\nmsgid \"B<-ic esx://...> B<-it vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:60\nmsgid \"Full documentation: L</INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:62\nmsgid \"\"\n\"This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access \"\n\"the VMware vCenter server or VMware ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:65\nmsgid \"\"\n\"If you have the proprietary library then this method is usually the fastest \"\n\"and most flexible.  If you don't have or don't want to use non-free software \"\n\"then the VMX or SSH methods above will be best.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:69\nmsgid \"B<-i ova> DISKB<.ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:71\nmsgid \"Full documentation: L</INPUT FROM VMWARE OVA>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:73\nmsgid \"\"\n\"With this method you must first export the guest (eg. from vSphere) as an \"\n\"F<.ova> file, which virt-v2v can then read directly.  Note this method only \"\n\"works with files exported from VMware, not OVA files that come from other \"\n\"hypervisors or management systems, since OVA is only a pretend standard and \"\n\"is not compatible or interoperable between vendors.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:80\nmsgid \"B<-ic vpx://...> \\\"GUEST NAME\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:82\nmsgid \"Full documentation: L</INPUT FROM VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:84\nmsgid \"\"\n\"If none of the above methods is available, then use this method to import a \"\n\"guest from VMware vCenter.  This is the slowest method.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:89 docs/virt-v2v.pod:1284\nmsgid \"NOTES\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:91\nmsgid \"\"\n\"When accessing the F<I<guest>.vmx> file on ESXi over an SSH connection (that \"\n\"is, when using the I<-i vmx> I<-it ssh> options), the conversion will not \"\n\"work if the guest has snapshots (files called F<I<guest>-000001.vmdk> and \"\n\"similar).  Either collapse the snapshots for the guest and retry the \"\n\"conversion with the same I<-i vmx> I<-it ssh> options, or leave the \"\n\"snapshots intact and use a transport different from SSH: just I<-i vmx>, or \"\n\"I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>.  Refer to \"\n\"L<https://bugzilla.redhat.com/1774386>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:101\nmsgid \"INPUT FROM VMWARE VMX\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:103\nmsgid \"Virt-v2v is able to import guests from VMware’s vmx files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:105\nmsgid \"This is useful in two cases:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:109 docs/virt-v2v-input-vmware.pod:215\n#: docs/virt-v2v-input-vmware.pod:586 docs/virt-v2v-output-local.pod:92\n#: docs/virt-v2v.pod:1774\nmsgid \"1.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:111\nmsgid \"\"\n\"VMware virtual machines are stored on a separate NFS server and you are able \"\n\"to mount the NFS storage directly.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:114 docs/virt-v2v-input-vmware.pod:222\n#: docs/virt-v2v-input-vmware.pod:590 docs/virt-v2v-output-local.pod:106\n#: docs/virt-v2v.pod:1781\nmsgid \"2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:116\nmsgid \"\"\n\"You have enabled SSH access to the VMware ESXi hypervisor and there is a C</\"\n\"vmfs/volumes> folder containing the virtual machines.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:121\nmsgid \"\"\n\"If you find a folder of files called F<I<guest>.vmx>, F<I<guest>.vmxf>, \"\n\"F<I<guest>.nvram> and one or more F<.vmdk> disk images, then you can use \"\n\"this method.  The SSH transport is not usable if the guest has snapshots; \"\n\"refer to L</NOTES>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:126\nmsgid \"VMX: Guest must be shut down\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:128\nmsgid \"\"\n\"B<The guest must be shut down before conversion starts>.  Because the I<-i \"\n\"vmx> method works directly against the storage, checking for concurrent \"\n\"access is not possible.  See also L<virt-v2v(1)/The guest should not be \"\n\"running>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:133\nmsgid \"VMX: Access to the storage containing the VMX and VMDK files\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:135\nmsgid \"\"\n\"If the vmx and vmdk files aren't available locally then you must I<either> \"\n\"mount the NFS storage on the conversion server I<or> enable passwordless SSH \"\n\"on the ESXi hypervisor.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:139\nmsgid \"VMX: SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:141\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the VMware server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:147\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</etc/ssh/keys-root/authorized_keys> \"\n\"(on the ESXi hypervisor).  After doing this, you should check that \"\n\"passwordless access works from the virt-v2v server to the ESXi hypervisor.  \"\n\"For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:153\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@esxi.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:156 docs/virt-v2v-input-xen.pod:35\nmsgid \"\"\n\"Note that support for non-interactive authentication via the I<-ip> option \"\n\"is incomplete.  Some operations remain that still require the user to enter \"\n\"the password manually.  Therefore ssh-agent is recommended over the I<-ip> \"\n\"option.  See L<https://bugzilla.redhat.com/1854275>.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:161\nmsgid \"VMX: Construct the SSH URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:163\nmsgid \"\"\n\"When using the SSH input transport you must specify a remote C<ssh://...> \"\n\"URI pointing to the VMX file.  A typical URI looks like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:166\n#, no-wrap\nmsgid \"\"\n\" ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:168\nmsgid \"The username is not required if it is the same as your local username.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:170\nmsgid \"\"\n\"You may optionally supply a port number after the hostname if the SSH server \"\n\"is not listening on the default port (22).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:173\nmsgid \"\"\n\"For determining the pathname component of the URI, log in to the ESXi server \"\n\"via SSH interactively, and identify the absolute pathname of the VMX file on \"\n\"the ESXi server, such as:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:177\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my guest/my guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:179\nmsgid \"\"\n\"Subsequently, on the virt-v2v command line, L<percent-encode any reserved \"\n\"characters|https://en.wikipedia.org/wiki/Percent-\"\n\"encoding#Reserved_characters> that you find in the individual pathname \"\n\"components.  For example, space characters must be specified as C<%20>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:185\n#, no-wrap\nmsgid \"\"\n\" /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:187\nmsgid \"Refer to L<https://bugzilla.redhat.com/1938954>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:189\nmsgid \"VMX: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:191\nmsgid \"To import a vmx file from a local file or NFS, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:193\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:195\nmsgid \"\"\n\"To import a vmx file over SSH, add I<-it ssh> to select the SSH transport \"\n\"and supply a remote SSH URI:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:198\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -i vmx -it ssh \\\\\\n\"\n\"     \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:203\nmsgid \"\"\n\"Virt-v2v processes the vmx file and uses it to find the location of any vmdk \"\n\"disks.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:206\nmsgid \"INPUT FROM VDDK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:208\nmsgid \"\"\n\"Virt-v2v is able to import guests using VMware’s proprietary VDDK library \"\n\"(a.k.a. VixDiskLib).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:211\nmsgid \"VDDK: Prerequisites\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:217\nmsgid \"\"\n\"As the VDDK library is not open source, and the license of this library does \"\n\"not permit redistribution or commercial use, you must obtain VDDK yourself \"\n\"and satisfy yourself that your usage of the library is permitted by the \"\n\"license.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:224\nmsgid \"\"\n\"nbdkit E<ge> 1.6 is recommended, as it ships with the VDDK plugin enabled \"\n\"unconditionally.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:227 docs/virt-v2v-output-local.pod:114\n#: docs/virt-v2v.pod:1787\nmsgid \"3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:229\nmsgid \"VDDK imports require a feature added in libvirt E<ge> 3.7.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:231 docs/virt-v2v-output-local.pod:135\nmsgid \"4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:233\nmsgid \"The VMware server must not be in maintenance mode.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:237\nmsgid \"VDDK: ESXi NFC service memory limits\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:239\nmsgid \"In the verbose log you may see errors like:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:241\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg:\\n\"\n\" received NFC error 5 from server: Failed to allocate the\\n\"\n\" requested 2097176 bytes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:245\nmsgid \"\"\n\"This seems especially common when there are multiple parallel connections \"\n\"open to the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:248\nmsgid \"\"\n\"These can be caused by resource limits set on the VMware server.  You can \"\n\"increase the limit for the NFC service by editing F</etc/vmware/hostd/\"\n\"config.xml> and adjusting the C<E<lt>maxMemoryE<gt>> setting:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:253\n#, no-wrap\nmsgid \"\"\n\" <nfcsvc>\\n\"\n\"   <path>libnfcsvc.so</path>\\n\"\n\"   <enabled>true</enabled>\\n\"\n\"   <maxMemory>50331648</maxMemory>\\n\"\n\"   <maxStreamMemory>10485760</maxStreamMemory>\\n\"\n\" </nfcsvc>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:260\nmsgid \"and restarting the C<hostd> service:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:262\n#, no-wrap\nmsgid \"\"\n\" # /etc/init.d/hostd restart\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:264\nmsgid \"For more information see L<https://bugzilla.redhat.com/1614276>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:266\nmsgid \"\"\n\"VDDK: \\\"error: VixDiskLibVim: Failed to open disk using NFC. VixError 1\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:268\nmsgid \"If you see an error similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:270\n#, no-wrap\nmsgid \"\"\n\" nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:272\nmsgid \"\"\n\"then it is caused by a bug in VDDK E<le> 6.7.  The suggested solution it to \"\n\"upgrade to the latest VDDK.  See also L<https://bugzilla.redhat.com/1684075>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:276\nmsgid \"VDDK: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:278\nmsgid \"\"\n\"Construct the correct C<vpx://> (for vCenter) or C<esx://> (for ESXi)  URL.  \"\n\"It will look something like these:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:281\n#, no-wrap\nmsgid \"\"\n\" vpx://root@vcenter.example.com/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:283\n#, no-wrap\nmsgid \"\"\n\" esx://root@esxi.example.com\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:285\nmsgid \"\"\n\"To verify that you have the correct URL, use the L<virsh(1)> command to list \"\n\"the guests on the server:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:288 docs/virt-v2v-input-vmware.pod:525\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all\\n\"\n\" Enter root's password for vcenter.example.com: ***\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:291 docs/virt-v2v-input-vmware.pod:528\n#, no-wrap\nmsgid \"\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  -     Fedora 20                      shut off\\n\"\n\"  -     Windows 2003                   shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:296 docs/virt-v2v-input-vmware.pod:533\nmsgid \"\"\n\"If you get an error \\\"Peer certificate cannot be authenticated with given CA \"\n\"certificates\\\" or similar, then you can either import the vCenter host’s \"\n\"certificate, or bypass signature verification by adding the C<?no_verify=1> \"\n\"flag:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:301 docs/virt-v2v-input-vmware.pod:538\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:303 docs/virt-v2v-input-vmware.pod:540\n#: docs/virt-v2v-input-xen.pod:87\nmsgid \"\"\n\"You should also try dumping the metadata from any guest on your server, like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:306\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\"   <vmware:moref>vm-123</vmware:moref>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:313\nmsgid \"\"\n\"If C<E<lt>vmware:morefE<gt>> does not appear in the metadata, then you need \"\n\"to upgrade libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:316\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your URI and/or your VMware server before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:320\nmsgid \"VDDK: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:322\nmsgid \"\"\n\"The I<-it vddk> parameter selects VDDK as the input transport for disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:324\nmsgid \"\"\n\"To import a particular guest from vCenter server or ESXi hypervisor, use a \"\n\"command like the following, substituting the URI and guest name:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:327\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v \\\\\\n\"\n\"     -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"     -it vddk \\\\\\n\"\n\"     -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \\\\\\n\"\n\"     \\\"Windows 2003\\\" \\\\\\n\"\n\"     -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:334\nmsgid \"\"\n\"Other options that you might need to add in rare circumstances include I<-io \"\n\"vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, \"\n\"I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-\"\n\"thumbprint> and I<-io vddk-transports>, which are all explained in the \"\n\"L<nbdkit-vddk-plugin(1)> documentation.  Do not use these options unless you \"\n\"know what you are doing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:341\nmsgid \"VDDK: Thumbprint\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:343\nmsgid \"\"\n\"You may specify the thumbprint of the VMware server using the I<-io vddk-\"\n\"thumbprint=XX:XX...> parameter.  Doing so increases security against some \"\n\"man-in-the-middle attacks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:347\nmsgid \"\"\n\"Since virt-v2v 2.10, this parameter is not required.  Virt-v2v will get the \"\n\"thumbprint from the server if it is not specified (but the L<openssl(1)> \"\n\"command must be installed for this to work).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:351\nmsgid \"VDDK: Debugging VDDK failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:353\nmsgid \"\"\n\"The VDDK library can be operated in a verbose mode where it gives (very) \"\n\"verbose messages.  Use ‘virt-v2v -v -x’ as usual to enable verbose messages.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:357\nmsgid \"VDDK: Slow imports and repeated NBD_ClientOpen messages\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:359\nmsgid \"\"\n\"If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many \"\n\"C<NBD_ClientOpen> messages, then you are hitting an apparent bug in S<VDDK \"\n\"6.7> (https://bugzilla.redhat.com/1901489).  Upgrade to at least S<VDDK 7> \"\n\"to resolve the issue.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:364\nmsgid \"INPUT FROM VMWARE OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:366\nmsgid \"\"\n\"Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization \"\n\"Appliance) files.  Only OVAs exported from VMware vSphere will work.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:370\nmsgid \"OVA: Create OVA\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:372\nmsgid \"\"\n\"To create an OVA in vSphere, use the \\\"Export OVF Template\\\" option (from \"\n\"the VM context menu, or from the File menu).  Either \\\"Folder of files\\\" \"\n\"(OVF) or \\\"Single file\\\" (OVA) will work, but OVA is probably easier to deal \"\n\"with.  OVA files are really just uncompressed tar files, so you can use \"\n\"commands like C<tar tf VM.ova> to view their contents.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:379\nmsgid \"Create OVA with ovftool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:381\nmsgid \"You can also use VMware’s proprietary C<ovftool>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:383\n#, no-wrap\nmsgid \"\"\n\" ovftool --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@esxi.example.com/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:387\nmsgid \"To connect to vCenter:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:389\n#, no-wrap\nmsgid \"\"\n\" ovftool  --noSSLVerify \\\\\\n\"\n\"   vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \\\\\\n\"\n\"   VM.ova\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:393\nmsgid \"\"\n\"For Active Directory-aware authentication using down-level logon names \"\n\"(C<DOMAIN\\\\USER>), you have to express the C<\\\\> character in the form of \"\n\"its ascii hex-code (C<%5c>):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:397\n#, no-wrap\nmsgid \"\"\n\" vi://DOMAIN%5cUSER:PASSWORD@...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:399\nmsgid \"OVA: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:401\nmsgid \"To import an OVA file called F<VM.ova>, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:403\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova VM.ova -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:405\nmsgid \"\"\n\"If you exported the guest as a \\\"Folder of files\\\", I<or> if you unpacked \"\n\"the OVA tarball yourself, then you can point virt-v2v at the directory \"\n\"containing the files:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:409\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -i ova /path/to/files -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:411\nmsgid \"OVA: Permissions issues with oVirt import\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:413\nmsgid \"\"\n\"oVirt provides a graphical user interface for importing from OVA files which \"\n\"uses this method.  It requires that oVirt is able to access the OVA file \"\n\"which can be a problem if the file is owned by root (oVirt runs as a non-\"\n\"root user).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:418\nmsgid \"\"\n\"The suggested workaround is to copy the OVA to a public directory such as F</\"\n\"var/tmp> before doing the import and perhaps change the user and group \"\n\"ownership of the file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:422\nmsgid \"For more information see these links:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:428\nmsgid \"\"\n\"L<https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/\"\n\"html-single/virtual_machine_management_guide/\"\n\"index#Importing_a_virtual_machine_from_a_host>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:432\nmsgid \"L<https://bugzilla.redhat.com/show_bug.cgi?id=2039597>\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:436\nmsgid \"INPUT FROM VMWARE VCENTER SERVER\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:438\nmsgid \"Virt-v2v is able to import guests from VMware vCenter Server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:440\nmsgid \"\"\n\"vCenter E<ge> 5.0 is required.  If you don’t have vCenter, using OVA or VMX \"\n\"is recommended instead (see L</INPUT FROM VMWARE OVA> and/or L</INPUT FROM \"\n\"VMWARE VMX>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:444\nmsgid \"\"\n\"Virt-v2v uses libvirt for access to vCenter, and therefore the input mode \"\n\"should be I<-i libvirt>.  As this is the default, you don't need to specify \"\n\"it on the command line.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:448\nmsgid \"vCenter: URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:450\nmsgid \"The libvirt URI of a vCenter server looks something like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:452\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:454\nmsgid \"where:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:458\nmsgid \"C<user@>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:460\nmsgid \"is the (optional, but recommended) user to connect as.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:462\nmsgid \"\"\n\"If the username contains a backslash (eg. C<DOMAIN\\\\USER>) then you will \"\n\"need to URI-escape that character using C<%5c>: C<DOMAIN%5cUSER> (5c is the \"\n\"hexadecimal ASCII code for backslash.)  Other punctuation may also have to \"\n\"be escaped.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:467\nmsgid \"\"\n\"The user's password must be supplied in a local file using the separate I<-\"\n\"ip> parameter.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:470\nmsgid \"C<server>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:472\nmsgid \"is the vCenter Server (I<not> hypervisor).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:474\nmsgid \"C<Datacenter>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:476\nmsgid \"is the name of the datacenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:478\nmsgid \"\"\n\"If the name contains a space, replace it with the URI-escape code C<%20>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-input-vmware.pod:481\nmsgid \"C<esxi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:483\nmsgid \"is the name of the ESXi hypervisor running the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:487\nmsgid \"\"\n\"If the VMware deployment is using folders, then these may need to be added \"\n\"to the URI, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:490\n#, no-wrap\nmsgid \"\"\n\" vpx://user@server/Folder/Datacenter/esxi\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:492\nmsgid \"\"\n\"For full details of libvirt URIs, see: L<http://libvirt.org/drvesx.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:494\nmsgid \"Typical errors from libvirt / virsh when the URI is wrong include:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:500\nmsgid \"Could not find datacenter specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:504\nmsgid \"Could not find compute resource specified in [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:508\nmsgid \"Path [...] does not specify a compute resource\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:512\nmsgid \"Path [...] does not specify a host system\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:516\nmsgid \"Could not find host system specified in [...]\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:520\nmsgid \"vCenter: Test libvirt connection to vCenter\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:522\nmsgid \"\"\n\"Use the L<virsh(1)> command to list the guests on the vCenter Server like \"\n\"this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:543\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml \\\"Windows 2003\\\"\\n\"\n\" <domain type='vmware'>\\n\"\n\"   <name>Windows 2003</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:549\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration and/or your VMware vCenter Server \"\n\"before continuing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:553\nmsgid \"vCenter: Supplying the password\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:555\nmsgid \"\"\n\"The vCenter password (usually for the root account, or the account specified \"\n\"by C<user@> in the vpx URL) has to be written to a local file, and the name \"\n\"of that file specified on the virt-v2v command line using I<-ip \"\n\"passwordfile>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:560\nmsgid \"vCenter: Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:562\nmsgid \"To import a particular guest from vCenter Server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:564\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \\\\\\n\"\n\"   -ip passwordfile \\\\\\n\"\n\"   \\\"Windows 2003\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:569\nmsgid \"\"\n\"where C<Windows 2003> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:572 docs/virt-v2v-input-xen.pod:115\nmsgid \"\"\n\"In this case the output flags are set to write the converted guest to a \"\n\"temporary directory as this is just an example, but you can also write to \"\n\"libvirt or any other supported target.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:576\nmsgid \"vCenter: Non-administrator role\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:578\nmsgid \"\"\n\"Instead of using the vCenter Administrator role, you can create a custom non-\"\n\"administrator role to perform the conversion.  You will however need enable \"\n\"the following permissions (or as many as are available, older versions of \"\n\"VMware were missing some of these settings):\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:588\nmsgid \"Create a custom role in vCenter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:592\nmsgid \"Enable (check) the following objects:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:594\n#, no-wrap\nmsgid \"\"\n\" Datastore:\\n\"\n\"  - Browse datastore\\n\"\n\"  - Low level file operations\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:598\n#, no-wrap\nmsgid \"\"\n\" Sessions:\\n\"\n\"  - Validate session\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:601\n#, no-wrap\nmsgid \"\"\n\" Virtual Machine:\\n\"\n\"   Interaction:\\n\"\n\"     - Guest operating system management by VIX API\\n\"\n\"   Provisioning:\\n\"\n\"     - Allow disk access\\n\"\n\"     - Allow read-only disk access\\n\"\n\"     - Allow virtual machine download\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:609\n#, no-wrap\nmsgid \"\"\n\" Cryptographic operations:\\n\"\n\"  - Decrypt\\n\"\n\"  - Direct Access\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:615\nmsgid \"vCenter: Firewall and proxy settings\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v-input-vmware.pod:617\nmsgid \"vCenter: Ports\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:619\nmsgid \"\"\n\"If there is a firewall between the virt-v2v conversion server and the \"\n\"vCenter server, then you will need to open port 443 (https) and port 5480.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:623\nmsgid \"\"\n\"Port 443 is used to copy the guest disk image(s).  Port 5480 is used to \"\n\"query vCenter for guest metadata.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:626\nmsgid \"\"\n\"These port numbers are only the defaults.  It is possible to reconfigure \"\n\"vCenter to use other port numbers.  In that case you would need to specify \"\n\"those ports in the C<vpx://> URI.  See L</vCenter: URI> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:631\nmsgid \"\"\n\"These ports only apply to virt-v2v conversions.  You may have to open other \"\n\"ports for other vCenter functionality, for example the web user interface.  \"\n\"VMware documents the required ports for vCenter in their online \"\n\"documentation.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:636\n#, no-wrap\nmsgid \"\"\n\" ┌────────────┐   port 443 ┌────────────┐        ┌────────────┐\\n\"\n\" │ virt-v2v   │────────────▶ vCenter    │────────▶ ESXi       │\\n\"\n\" │ conversion │────────────▶ server     │        │ hypervisor │\\n\"\n\" │ server     │  port 5480 │            │        │   ┌─────┐  │\\n\"\n\" └────────────┘            └────────────┘        │   │guest│  │\\n\"\n\"                                                 └───┴─────┴──┘\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:643\nmsgid \"\"\n\"(In the diagram above the arrows show the direction in which the TCP \"\n\"connection is initiated, I<not> necessarily the direction of data transfer.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:647\nmsgid \"\"\n\"Virt-v2v itself does not connect directly to the ESXi hypervisor containing \"\n\"the guest.  However vCenter connects to the hypervisor and forwards the \"\n\"information, so if you have a firewall between vCenter and its hypervisors \"\n\"you may need to open additional ports (consult VMware documentation).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:653\nmsgid \"\"\n\"The proxy environment variables (C<https_proxy>, C<all_proxy>, C<no_proxy>, \"\n\"C<HTTPS_PROXY>, C<ALL_PROXY> and C<NO_PROXY>) are B<ignored> when doing \"\n\"vCenter conversions.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:657\nmsgid \"vCenter: SSL/TLS certificate problems\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:659\nmsgid \"You may see this error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:661\n#, no-wrap\nmsgid \"\"\n\"  CURL: Error opening file: SSL: no alternative certificate subject\\n\"\n\"  name matches target host name\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:664\nmsgid \"\"\n\"(You may need to enable debugging with ‘virt-v2v -v -x’ to see this message).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:667\nmsgid \"\"\n\"This can be caused by using an IP address instead of the fully-qualified DNS \"\n\"domain name of the vCenter server, ie.  use C<vpx://vcenter.example.com/...> \"\n\"instead of C<vpx://11.22.33.44/...>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:671\nmsgid \"\"\n\"Another certificate problem can be caused by the vCenter server having a \"\n\"mismatching FQDN and IP address, for example if the server acquired a new IP \"\n\"address from DHCP.  To fix this you need to change your DHCP server or \"\n\"network configuration so that the vCenter server always gets a stable IP \"\n\"address.  After that log in to the vCenter server’s admin console at \"\n\"C<https://vcenter:5480/>.  Under the C<Admin> tab, select C<Certificate \"\n\"regeneration enabled> and then reboot it.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-vmware.pod:679\nmsgid \"vCenter: \\\"Out of HTTP sessions: Limited to ...\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:681\nmsgid \"\"\n\"VMware vCenter appears to limit HTTP sessions and in some circumstances virt-\"\n\"v2v may exceed this number.  You can adjust or remove the limit by editing \"\n\"F</etc/vmware-vpx/vpxd.cfg> on the vCenter server.  Increase the \"\n\"C<E<lt>maxSessionCountE<gt>> field, or set it to C<0> which makes it \"\n\"unlimited:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-vmware.pod:687\n#, no-wrap\nmsgid \"\"\n\" <soap>\\n\"\n\"   <maxSessionCount>0</maxSessionCount>\\n\"\n\" </soap>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-vmware.pod:693 docs/virt-v2v-input-xen.pod:146\n#: docs/virt-v2v-output-local.pod:145 docs/virt-v2v-output-ovirt.pod:223\n#: docs/virt-v2v-release-notes-1.42.pod:213\n#: docs/virt-v2v-release-notes-2.10.pod:272\n#: docs/virt-v2v-release-notes-2.4.pod:155\n#: docs/virt-v2v-release-notes-2.6.pod:182\n#: docs/virt-v2v-release-notes-2.8.pod:317\nmsgid \"L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-vmware.pod:695 docs/virt-v2v-input-xen.pod:148\n#: docs/virt-v2v-output-local.pod:147 docs/virt-v2v-output-openstack.pod:233\n#: docs/virt-v2v-output-ovirt.pod:225 docs/virt-v2v-support.pod:142\nmsgid \"AUTHOR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:3\nmsgid \"virt-v2v-input-xen - Using virt-v2v to convert guests from Xen\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic 'xen+ssh://root@xen.example.com'\\n\"\n\"          -ip passwordfile\\n\"\n\"          GUEST_NAME [-o* options]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:13\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests from RHEL 5 \"\n\"Xen, or SLES and OpenSUSE Xen hosts.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-input-xen.pod:16\nmsgid \"INPUT FROM XEN\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:18\nmsgid \"SSH authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:20\nmsgid \"\"\n\"You can use SSH password authentication, by supplying the name of a file \"\n\"containing the password to the I<-ip> option (note this option does I<not> \"\n\"take the password directly).  You may need to adjust F</etc/ssh/sshd_config> \"\n\"on the Xen server to set C<PasswordAuthentication yes>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:26\nmsgid \"\"\n\"If you are not using password authentication, an alternative is to use ssh-\"\n\"agent, and add your ssh public key to F</root/.ssh/authorized_keys> (on the \"\n\"Xen host).  After doing this, you should check that passwordless access \"\n\"works from the virt-v2v server to the Xen host.  For example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:32\n#, no-wrap\nmsgid \"\"\n\" $ ssh root@xen.example.com\\n\"\n\" [ logs straight into the shell, no password is requested ]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:40\nmsgid \"\"\n\"With some modern ssh implementations, legacy crypto algorithms required to \"\n\"interoperate with RHEL 5 sshd are disabled.  To enable them, you may need to \"\n\"add the following C<Host> stanza to your F<~/.ssh/config>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:44\n#, no-wrap\nmsgid \"\"\n\" Host xen.example.com\\n\"\n\"   KexAlgorithms            +diffie-hellman-group14-sha1\\n\"\n\"   MACs                     +hmac-sha1\\n\"\n\"   HostKeyAlgorithms        +ssh-rsa\\n\"\n\"   PubkeyAcceptedKeyTypes   +ssh-rsa\\n\"\n\"   PubkeyAcceptedAlgorithms +ssh-rsa\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:51\nmsgid \"\"\n\"(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have identical \"\n\"meaning; the former is the old option name, the latter is the new one. Virt-\"\n\"v2v uses both C<libssh> and C<ssh> when converting a guest from Xen, and on \"\n\"some operating systems, C<libssh> and C<ssh> may not both accept the same \"\n\"option variant.)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:57\nmsgid \"\"\n\"When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in \"\n\"signatures has to be re-enabled at the OpenSSL level, in addition to the \"\n\"above SSH configuration.  Create a file called F<$HOME/openssl-sha1.cnf> \"\n\"with the following contents:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:62\n#, no-wrap\nmsgid \"\"\n\" .include /etc/ssl/openssl.cnf\\n\"\n\" [openssl_init]\\n\"\n\" alg_section = evp_properties\\n\"\n\" [evp_properties]\\n\"\n\" rh-allow-sha1-signatures = yes\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:68\nmsgid \"\"\n\"and export the following variable into the environment of the C<virt-v2v> \"\n\"process:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:71\n#, no-wrap\nmsgid \"\"\n\" OPENSSL_CONF=$HOME/openssl-sha1.cnf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:73\nmsgid \"\"\n\"Note that the C<OPENSSL_CONF> environment variable will only take effect if \"\n\"the libvirt client library used by virt-v2v is at least version 8.6.0.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:77\nmsgid \"Test libvirt connection to remote Xen host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:79\nmsgid \"Use the L<virsh(1)> command to list the guests on the remote Xen host:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:81\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com list --all\\n\"\n\"  Id    Name                           State\\n\"\n\" ----------------------------------------------------\\n\"\n\"  0     Domain-0                       running\\n\"\n\"  -     rhel49-x86_64-pv               shut off\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:90\n#, no-wrap\nmsgid \"\"\n\" $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv\\n\"\n\" <domain type='xen'>\\n\"\n\"   <name>rhel49-x86_64-pv</name>\\n\"\n\"   [...]\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:96\nmsgid \"\"\n\"B<If the above commands do not work, then virt-v2v is not going to work \"\n\"either>.  Fix your libvirt configuration or the remote server before \"\n\"continuing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:100\nmsgid \"\"\n\"B<If the guest disks are located on a host block device>, then the \"\n\"conversion will fail.  See L</Xen or ssh conversions from block devices> \"\n\"below for a workaround.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:104\nmsgid \"Importing a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:106\nmsgid \"To import a particular guest from a Xen server, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:108\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \\\\\\n\"\n\"           rhel49-x86_64-pv \\\\\\n\"\n\"           -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:112\nmsgid \"\"\n\"where C<rhel49-x86_64-pv> is the name of the guest (which must be shut down).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-input-xen.pod:119\nmsgid \"Xen or ssh conversions from block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:121\nmsgid \"\"\n\"Currently virt-v2v cannot directly access a Xen guest (or any guest located \"\n\"remotely over ssh) if that guest’s disks are located on host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:125\nmsgid \"\"\n\"To tell if a Xen guest uses host block devices, look at the guest XML.  You \"\n\"will see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-input-xen.pod:128\n#, no-wrap\nmsgid \"\"\n\"  <disk type='block' device='disk'>\\n\"\n\"    ...\\n\"\n\"    <source dev='/dev/VG/guest'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:132\nmsgid \"\"\n\"where C<type='block'>, C<source dev=> and C</dev/...> are all indications \"\n\"that the disk is located on a host block device.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:135\nmsgid \"\"\n\"This happens because the qemu ssh block driver that we use to access remote \"\n\"disks uses the ssh sftp protocol, and this protocol cannot correctly detect \"\n\"the size of host block devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-input-xen.pod:139\nmsgid \"\"\n\"The workaround is to copy the block device from the remote Xen server to a \"\n\"regular local file, copy the libvirt guest XML, adjust the C<disk> element \"\n\"to point to the local file, and use C<-i libvirtxml> mode instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:3\nmsgid \"\"\n\"virt-v2v-output-local - Using virt-v2v to convert guests to local files or \"\n\"libvirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:8\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] [-o libvirt] -os POOL\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:10\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o local -os DIRECTORY\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:14\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o null\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:18\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to local \"\n\"files or to a locally running libvirt instance.  There are four output modes \"\n\"you can select on the virt-v2v command line:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:24\nmsgid \"B<-o libvirt -os> C<POOL>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:26\nmsgid \"B<-os> C<POOL>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:28\nmsgid \"\"\n\"This converts the guest to a libvirt directory pool call C<POOL>, and \"\n\"instantiates the guest in libvirt (but does not start it running).  See L</\"\n\"OUTPUT TO LIBVIRT> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:32\nmsgid \"\"\n\"I<-o libvirt> is the default if no I<-o> option is given, so you can omit it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:35\nmsgid \"B<-o local -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:37\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  A libvirt XML file is \"\n\"also created, but unlike I<-o libvirt> the guest is not instantiated in \"\n\"libvirt, only files are created.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:41\nmsgid \"The files will be called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:43\n#, no-wrap\nmsgid \"\"\n\" NAME-sda, NAME-sdb, etc.      Guest disk(s).\\n\"\n\" NAME.xml                      Libvirt XML.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:46\nmsgid \"where C<NAME> is the guest name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:48\nmsgid \"B<-o qemu -os> C<DIRECTORY>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:50\nmsgid \"B<-o qemu -os> C<DIRECTORY> B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:52\nmsgid \"\"\n\"This converts the guest to files in C<DIRECTORY>.  Unlike I<-o local> above, \"\n\"a shell script is created which contains the raw qemu command you would need \"\n\"to boot the guest.  However the shell script is not run, I<unless> you also \"\n\"add the I<-oo qemu-boot> option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-local.pod:57\nmsgid \"B<-o null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:59\nmsgid \"\"\n\"The guest is converted, but the final result is thrown away and no metadata \"\n\"is created.  This is mainly useful for testing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-local.pod:64\nmsgid \"OUTPUT TO LIBVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:66\nmsgid \"\"\n\"The I<-o libvirt> option lets you upload the converted guest to a libvirt-\"\n\"managed host.  There are several limitations:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:73\nmsgid \"\"\n\"You can only use a local libvirt connection [see below for how to workaround \"\n\"this].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:78\nmsgid \"\"\n\"The I<-os pool> option must specify a directory pool, not anything more \"\n\"exotic such as iSCSI [but see below].\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:83\nmsgid \"You can only upload to a KVM hypervisor.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-local.pod:87\nmsgid \"\"\n\"Workaround for output to a remote libvirt instance and/or a non-directory \"\n\"storage pool\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:94\nmsgid \"\"\n\"Use virt-v2v in I<-o local> mode to convert the guest disks and metadata \"\n\"into a local temporary directory:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:97\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:99\nmsgid \"This creates two (or more) files in F</var/tmp> called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:101\n#, no-wrap\nmsgid \"\"\n\" /var/tmp/NAME.xml     # the libvirt XML (metadata)\\n\"\n\" /var/tmp/NAME-sda     # the guest’s first disk\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:104\nmsgid \"(for C<NAME> substitute the guest’s name).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:108\nmsgid \"Upload the converted disk(s) into the storage pool called C<POOL>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:110\n#, no-wrap\nmsgid \"\"\n\" size=$(stat -c%s /var/tmp/NAME-sda)\\n\"\n\" virsh vol-create-as POOL NAME-sda $size --format raw\\n\"\n\" virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:116\nmsgid \"\"\n\"Edit F</var/tmp/NAME.xml> to change F</var/tmp/NAME-sda> to the pool name.  \"\n\"In other words, locate the following bit of XML:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:119\n#, no-wrap\nmsgid \"\"\n\" <disk type='file' device='disk'>\\n\"\n\"   <driver name='qemu' type='raw' />\\n\"\n\"   <source file='/var/tmp/NAME-sda' />\\n\"\n\"   <target dev='hda' bus='ide' />\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:125\nmsgid \"\"\n\"and change two things: The C<type='file'> attribute must be changed to \"\n\"C<type='volume'>, and the C<E<lt>sourceE<gt>> element must be changed to \"\n\"include C<pool> and C<volume> attributes:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:129\n#, no-wrap\nmsgid \"\"\n\" <disk type='volume' device='disk'>\\n\"\n\"   ...\\n\"\n\"   <source pool='POOL' volume='NAME-sda' />\\n\"\n\"   ...\\n\"\n\" </disk>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-local.pod:137\nmsgid \"Define the final guest in libvirt:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-local.pod:139\n#, no-wrap\nmsgid \"\"\n\" virsh define /var/tmp/NAME.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:3\nmsgid \"\"\n\"virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o openstack\\n\"\n\"                        -oo server-id=SERVER\\n\"\n\"                        [-oo guest-id=GUEST]\\n\"\n\"                        [-oo verify-server-certificate=false]\\n\"\n\"                        [-oo os-username=admin] [-oo os-*=*]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:13\n#, no-wrap\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, `\\n\"\n\" virt-v2v [-i* options] -o glance\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:19\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to run on \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:22\nmsgid \"\"\n\"ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but \"\n\"only I<-o openstack> should be used normally.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:29\nmsgid \"B<-o openstack> B<-oo server-id=>SERVER [...]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:31\nmsgid \"Full description: L</OUTPUT TO OPENSTACK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:33\nmsgid \"\"\n\"This is the modern method for uploading to OpenStack via the REST API.  \"\n\"Guests can be directly converted into Cinder volumes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:36 docs/virt-v2v-output-openstack.pod:188\n#: docs/virt-v2v.pod:487 docs/virt-v2v.pod:979 docs/virt-v2v.pod:1156\nmsgid \"ifelse(ENABLE_GLANCE, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-openstack.pod:38\nmsgid \"B<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:40\nmsgid \"Full description: L</OUTPUT TO GLANCE>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:42\nmsgid \"\"\n\"This is the old method for uploading to Glance.  Unfortunately Glance is not \"\n\"well suited to storing converted guests (since virt-v2v deals with \\\"pets\\\" \"\n\"not templated \\\"cattle\\\"), so this method is not recommended unless you \"\n\"really know what you are doing.  ')\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:50\nmsgid \"OUTPUT TO OPENSTACK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:52\nmsgid \"To output to OpenStack, use the I<-o openstack> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:54\nmsgid \"OpenStack: Setting up a conversion appliance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:56\nmsgid \"\"\n\"When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v \"\n\"B<must> be running inside a virtual machine running on top of the OpenStack \"\n\"overcloud.  This virtual machine is called the \\\"conversion appliance\\\".  \"\n\"Note this virtual machine is unrelated to the guest which is being converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:62\nmsgid \"\"\n\"The reason for this is because to create Cinder volumes that will contain \"\n\"the guest data (for the converted guest) we must attach those Cinder volumes \"\n\"to an OpenStack virtual machine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:66\nmsgid \"\"\n\"The C<openstack> command must be installed in the appliance.  We use it for \"\n\"communicating with OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:69\nmsgid \"\"\n\"When virt-v2v is running in the conversion appliance, you must supply the \"\n\"name or UUID of the conversion appliance to virt-v2v, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:72\n#, no-wrap\nmsgid \"\"\n\" $ openstack server list\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | ID                                   | Name      | Status |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\" | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1     | ACTIVE |\\n\"\n\" +--------------------------------------+-----------+--------+\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:79\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] \\\\\\n\"\n\"       -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:82 docs/virt-v2v-output-openstack.pod:105\nmsgid \"or:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:84\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [...] -o openstack -oo server-id=test1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:86\nmsgid \"\"\n\"You can run many parallel conversions inside a single conversion appliance \"\n\"if you want, subject to having enough resources available.  However \"\n\"OpenStack itself imposes a limit that you should be aware of: OpenStack \"\n\"cannot attach more than around 25 disks [the exact number varies with \"\n\"configuration] to a single appliance, and that limits the number of guests \"\n\"which can be converted in parallel, because each guest's disk must be \"\n\"attached to the appliance while being copied.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:94\nmsgid \"OpenStack: Authentication\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:96\nmsgid \"\"\n\"Converting to OpenStack requires access to the tenant (non-admin) API \"\n\"endpoints.  You will need to either set up your C<$OS_*> environment \"\n\"variables or use output options on the virt-v2v command line to authenticate \"\n\"with OpenStack.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:103\n#, no-wrap\nmsgid \"\"\n\" export OS_USERNAME=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:107\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo os-username=admin\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:109\nmsgid \"\"\n\"are equivalent, and have the same effect as using I<--os-username> on the \"\n\"command line of OpenStack tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:112\nmsgid \"\"\n\"Normally there is a file called F<overcloudrc> or F<keystonerc_admin> which \"\n\"you can simply C<source> to set everything up.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:115\nmsgid \"\"\n\"If you need to copy F<overcloudrc> to another machine, check if it \"\n\"references the C<OS_CLOUD> environment variable.  If so, you may have to \"\n\"copy the F<clouds.yaml> file from F</etc/openstack/> or F<$HOME/.config/\"\n\"openstack/> to the other machine as well.  See the section \\\"CLOUD \"\n\"CONFIGURATION\\\" in the openstack CLI manual.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:121\nmsgid \"OpenStack: Running as root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:123\nmsgid \"\"\n\"Because virt-v2v must access Cinder volumes which are presented as F</dev> \"\n\"devices to the conversion appliance, virt-v2v must usually run as root in I<-\"\n\"o openstack> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:127\nmsgid \"\"\n\"If you use C<sudo> to start virt-v2v and you are using environment variables \"\n\"for authentication, remember to use the C<sudo -E> option to preserve the \"\n\"environment.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:131\nmsgid \"OpenStack: Guest ID\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:133\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] -o openstack -oo guest-id=123-456-7890\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:135\nmsgid \"\"\n\"You may optionally specify I<-oo guest-id=...> on the command line.  The ID \"\n\"(which can be any string) is saved on each Cinder volume in the \"\n\"C<virt_v2v_guest_id> volume property.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:139\nmsgid \"\"\n\"This can be used to find disks associated with a guest, or to associate \"\n\"which disks are related to which guests when converting many guests.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:143\nmsgid \"OpenStack: Ignore server certificate\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:145\nmsgid \"\"\n\"Using I<-oo verify-server-certificate=false> you can tell the openstack \"\n\"client to ignore the server certificate when connecting to the OpenStack API \"\n\"endpoints.  This has the same effect as passing the I<--insecure> option to \"\n\"the C<openstack> command.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:150\nmsgid \"OpenStack: Converting a guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:152\nmsgid \"The final command to convert the guest, running as root, will be:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:154\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:157\nmsgid \"If you include authentication options on the command line then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:159\n#, no-wrap\nmsgid \"\"\n\" # virt-v2v [-i options ...] \\\\\\n\"\n\"       -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:162\nmsgid \"OpenStack: Booting the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:164\nmsgid \"\"\n\"Guests are converted as Cinder volume(s) (one volume per disk in the \"\n\"original guest).  To boot them use the C<openstack server create --volume> \"\n\"option:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-openstack.pod:168\n#, no-wrap\nmsgid \"\"\n\" $ openstack volume list\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | ID                                   | Name          | Status    |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available |\\n\"\n\" +--------------------------------------+---------------+-----------+\\n\"\n\" $ openstack server create \\\\\\n\"\n\"       --flavor x1.small \\\\\\n\"\n\"       --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \\\\\\n\"\n\"       myguest\\n\"\n\" $ openstack console url show myguest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:180\nmsgid \"OpenStack: Other conversion options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:182\nmsgid \"\"\n\"To specify the Cinder volume type, use I<-os>.  If not specified then no \"\n\"Cinder volume type is used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:185\nmsgid \"\"\n\"The following options are B<not> supported with OpenStack: I<-oa>, I<-of>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-openstack.pod:190\nmsgid \"OUTPUT TO GLANCE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:192\nmsgid \"\"\n\"Note this is a legacy option.  In most cases you should use L</OUTPUT TO \"\n\"OPENSTACK> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:195\nmsgid \"To output to OpenStack Glance, use the I<-o glance> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:197\nmsgid \"\"\n\"This runs the L<glance(1)> CLI program which must be installed on the virt-\"\n\"v2v conversion host.  For authentication to work, you will need to set \"\n\"C<OS_*> environment variables.  See L</OpenStack: Authentication> above.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:202\nmsgid \"\"\n\"Virt-v2v adds metadata for the guest to Glance, describing such things as \"\n\"the guest operating system and what drivers it requires.  The command \"\n\"C<glance image-show> will display the metadata as \\\"Property\\\" fields such \"\n\"as C<os_type> and C<hw_disk_bus>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:207\nmsgid \"Glance and sparseness\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:209\nmsgid \"\"\n\"Glance image upload doesn’t appear to correctly handle sparseness.  For this \"\n\"reason, using qcow2 will be faster and use less space on the Glance server.  \"\n\"Use the virt-v2v S<I<-of qcow2>> option.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-openstack.pod:213\nmsgid \"Glance and multiple disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:215\nmsgid \"\"\n\"If the guest has a single disk, then the name of the disk in Glance will be \"\n\"the name of the guest.  You can control this using the I<-on> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:219\nmsgid \"\"\n\"Glance doesn’t have a concept of associating multiple disks with a single \"\n\"guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks \"\n\"either.  If the guest has multiple disks, then the first (assumed to be the \"\n\"system disk) will have the name of the guest, and the second and subsequent \"\n\"data disks will be called C<I<guestname>-disk2>, C<I<guestname>-disk3> etc.  \"\n\"It may be best to leave the system disk in Glance, and import the data disks \"\n\"to Cinder.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-openstack.pod:230\nmsgid \"\"\n\"L<virt-v2v(1)>, ifelse(ENABLE_GLANCE, yes, L<glance(1)>,)  L<https://\"\n\"docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:3\nmsgid \"virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE\\n\"\n\"                        [-op PASSWORD] [-of raw]\\n\"\n\"                        [-oo ovirt-cafile=FILE]\\n\"\n\"                        [-oo ovirt-cluster=CLUSTER]\\n\"\n\"                        [-oo ovirt-proxy]\\n\"\n\"                        [-oo ovirt-disk-uuid=UUID ...]\\n\"\n\"                        [-oo ovirt-verifypeer]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:15\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o ovirt -os [esd:/path|/path]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:17\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i* options] -o vdsm\\n\"\n\"                        [-oo vdsm-image-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vol-uuid=UUID]\\n\"\n\"                        [-oo vdsm-vm-uuid=UUID]\\n\"\n\"                        [-oo vdsm-ovf-output=DIR]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:25\nmsgid \"\"\n\"This page documents how to use L<virt-v2v(1)> to convert guests to an oVirt \"\n\"management instance.  There are three output modes that you can select, but \"\n\"only I<-o ovirt-upload> should be used normally, the other two are \"\n\"deprecated:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:32\nmsgid \"B<-o ovirt-upload> B<-os> STORAGE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:34\nmsgid \"Full description: L</OUTPUT TO OVIRT>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:36\nmsgid \"\"\n\"This is the modern method for uploading to oVirt via the REST API.  It \"\n\"requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:39\nmsgid \"B<-o ovirt> B<-os> esd:/path\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:41\nmsgid \"B<-o ovirt> B<-os> /path\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:43\nmsgid \"Full description: L</OUTPUT TO EXPORT STORAGE DOMAIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:45\nmsgid \"\"\n\"This is the old method for uploading to oVirt via the Export Storage Domain \"\n\"(ESD).  The ESD can either be accessed over NFS (using the I<-os esd:/path> \"\n\"form) or if you have already NFS-mounted it somewhere specify the path to \"\n\"the mountpoint as I<-os /path>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:50\nmsgid \"\"\n\"The Export Storage Domain was deprecated in oVirt 4, and so we expect that \"\n\"this method will stop working at some point in the future.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:53\nmsgid \"B<-o vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:55\nmsgid \"\"\n\"This is the old method used internally by the oVirt user interface.  It is \"\n\"never intended to be used directly by end users.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:60\nmsgid \"OUTPUT TO OVIRT\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:62\nmsgid \"\"\n\"This new method to upload guests to oVirt directly via the REST API requires \"\n\"oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:65\nmsgid \"\"\n\"You need to specify I<-o ovirt-upload> as well as the following extra \"\n\"parameters:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:70\nmsgid \"I<-oc> C<https://ovirt-engine.example.com/ovirt-engine/api>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:72\nmsgid \"\"\n\"The URL of the REST API which is usually the server name with C</ovirt-\"\n\"engine/api> appended, but might be different if you installed oVirt Engine \"\n\"on a different path.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:76\nmsgid \"\"\n\"You can optionally add a username and port number to the URL.  If the \"\n\"username is not specified then virt-v2v defaults to using C<admin@internal> \"\n\"which is the typical superuser account for oVirt instances.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:81\nmsgid \"I<-of raw>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:83\nmsgid \"\"\n\"Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:85\nmsgid \"These restrictions will be loosened in a future version.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:87\nmsgid \"I<-op> F<password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:89\nmsgid \"\"\n\"A file containing a password to be used when connecting to the oVirt \"\n\"engine.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:94\nmsgid \"I<-os> C<ovirt-data>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:96\nmsgid \"The storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:98\nmsgid \"I<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:100\nmsgid \"\"\n\"The F<ca.pem> file (Certificate Authority), copied from F</etc/pki/ovirt-\"\n\"engine/ca.pem> on the oVirt engine.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:103\nmsgid \"\"\n\"If I<-oo ovirt-verifypeer> is enabled then this option can be used to \"\n\"control which CA is used to verify the client’s identity.  If this option is \"\n\"not used then the system’s global trust store is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:108\nmsgid \"I<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:110\nmsgid \"Set the oVirt Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:112\nmsgid \"I<-oo ovirt-disk-uuid=>C<UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:114\nmsgid \"\"\n\"This option can used to manually specify UUIDs for the disks when creating \"\n\"the virtual machine.  If not specified, the oVirt engine will generate \"\n\"random UUIDs for the disks.  Please note that:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:122\nmsgid \"\"\n\"you B<must> pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount \"\n\"of disks in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:127\nmsgid \"the specified UUIDs must not conflict with the UUIDs of existing disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:131\nmsgid \"I<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:133\nmsgid \"\"\n\"Proxy the upload through oVirt Engine.  This is slower than uploading \"\n\"directly to the oVirt node but may be necessary if you do not have direct \"\n\"network access to the nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:137\nmsgid \"I<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:139\nmsgid \"\"\n\"Verify the oVirt server’s identity by checking the server‘s certificate \"\n\"against the Certificate Authority.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v-output-ovirt.pod:144\nmsgid \"OUTPUT TO EXPORT STORAGE DOMAIN\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:146\nmsgid \"\"\n\"This section only applies to the I<-o ovirt> output mode.  If you use virt-\"\n\"v2v from the oVirt user interface, then behind the scenes the import is \"\n\"managed by VDSM using the I<-o vdsm> output mode (which end users should not \"\n\"try to use directly).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:151\nmsgid \"\"\n\"You have to specify I<-o ovirt> and an I<-os> option that points to the \"\n\"oVirt Export Storage Domain.  You can either specify the NFS server and \"\n\"mountpoint, eg. S<C<-os ovirt-storage:/ovirt/export>>, or you can mount that \"\n\"first and point to the directory where it is mounted, eg. S<C<-os /tmp/\"\n\"mnt>>.  Be careful not to point to the Data Storage Domain by accident as \"\n\"that will not work.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:158\nmsgid \"\"\n\"On successful completion virt-v2v will have written the new guest to the \"\n\"Export Storage Domain, but it will not yet be ready to run.  It must be \"\n\"imported into oVirt using the UI before it can be used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:162\nmsgid \"\"\n\"In oVirt E<ge> 2.2 this is done from the Storage tab.  Select the export \"\n\"domain the guest was written to.  A pane will appear underneath the storage \"\n\"domain list displaying several tabs, one of which is \\\"VM Import\\\".  The \"\n\"converted guest will be listed here.  Select the appropriate guest an click \"\n\"\\\"Import\\\".  See the oVirt documentation for additional details.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:169\nmsgid \"\"\n\"If you export several guests, then you can import them all at the same time \"\n\"through the UI.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:172\nmsgid \"Testing oVirt conversions\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:174\nmsgid \"\"\n\"If you do not have an oVirt instance to test against, then you can test \"\n\"conversions by creating a directory structure which looks enough like a \"\n\"oVirt Export Storage Domain to trick virt-v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v-output-ovirt.pod:178\n#, no-wrap\nmsgid \"\"\n\" uuid=`uuidgen`\\n\"\n\" mkdir /tmp/ovirt\\n\"\n\" mkdir /tmp/ovirt/$uuid\\n\"\n\" mkdir /tmp/ovirt/$uuid/images\\n\"\n\" mkdir /tmp/ovirt/$uuid/master\\n\"\n\" mkdir /tmp/ovirt/$uuid/master/vms\\n\"\n\" touch /tmp/ovirt/$uuid/dom_md\\n\"\n\" virt-v2v [...] -o ovirt -os /tmp/ovirt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-output-ovirt.pod:187\nmsgid \"Debugging oVirt import failures\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:189\nmsgid \"\"\n\"When you export to the oVirt Export Storage Domain, and then import that \"\n\"guest through the oVirt UI, you may encounter an import failure.  Diagnosing \"\n\"these failures is infuriatingly difficult as the UI generally hides the true \"\n\"reason for the failure.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:194\nmsgid \"There are several log files of interest:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:198\nmsgid \"F</var/log/vdsm/import/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:200\nmsgid \"\"\n\"In oVirt E<ge> 4.1.0, VDSM preserves the virt-v2v log file for 30 days in \"\n\"this directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:203\nmsgid \"\"\n\"This directory is found on the host which performed the conversion.  The \"\n\"host can be selected in the import dialog, or can be found under the \"\n\"C<Events> tab in oVirt administration.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:207\nmsgid \"F</var/log/vdsm/vdsm.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:209\nmsgid \"\"\n\"As above, this file is present on the host which performed the conversion.  \"\n\"It contains detailed error messages from low-level operations executed by \"\n\"VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-output-ovirt.pod:214\nmsgid \"F</var/log/ovirt-engine/engine.log>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-output-ovirt.pod:216\nmsgid \"\"\n\"This log file is stored on the oVirt server.  It contains more detail for \"\n\"any errors caused by the oVirt GUI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 1.42\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 1.42>>, released on S<B<16th \"\n\"April 2020>>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:10\n#: docs/virt-v2v-release-notes-2.0.pod:19\n#: docs/virt-v2v-release-notes-2.10.pod:18\n#: docs/virt-v2v-release-notes-2.2.pod:20\n#: docs/virt-v2v-release-notes-2.4.pod:18\n#: docs/virt-v2v-release-notes-2.6.pod:18\n#: docs/virt-v2v-release-notes-2.8.pod:18\nmsgid \"New features\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:12\nmsgid \"\"\n\"This is the first release where virt-v2v lives in a separate repository from \"\n\"libguestfs.  The two projects are now broadly decoupled from one another.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:16\nmsgid \"\"\n\"Add a new I<-o json> output mode.  Primarily this is used to do conversions \"\n\"to KubeVirt (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:19\nmsgid \"\"\n\"Use new libvirt C<E<lt>firmwareE<gt>> feature to get the source guest \"\n\"firmware (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:22\nmsgid \"\"\n\"virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs \"\n\"to be specified.  Also I<-oo rhv-cafile> is now optional (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:26\nmsgid \"\"\n\"Conversions over ssh now use L<nbdkit-ssh-plugin(1)> instead of the QEMU ssh \"\n\"driver.  Similarly L<nbdkit-curl-plugin(1)> is used instead of the QEMU curl \"\n\"driver.  This allowed us to add more flexible features such as password \"\n\"authentication, bandwidth throttling (new I<--bandwidth> option), readahead, \"\n\"and automatic retry on network failures.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:33\nmsgid \"\"\n\"For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:36\n#: docs/virt-v2v-release-notes-2.0.pod:61\n#: docs/virt-v2v-release-notes-2.10.pod:68\n#: docs/virt-v2v-release-notes-2.2.pod:42\n#: docs/virt-v2v-release-notes-2.4.pod:33\n#: docs/virt-v2v-release-notes-2.6.pod:48\n#: docs/virt-v2v-release-notes-2.8.pod:103\nmsgid \"Other fixes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:38\nmsgid \"In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:40\nmsgid \"Fix Ubuntu Server conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:42\nmsgid \"\"\n\"Fix installation of qemu-ga by only installing arch-specific files in the \"\n\"guest (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:45\nmsgid \"\"\n\"Delay installation of qemu-ga until after virtio-win drivers have been \"\n\"installed and rebooted (Tomáš Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:48\nmsgid \"\"\n\"Save the log from running RHEV-APT installer to allow debugging (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:51\nmsgid \"\"\n\"Check RHV cluster exists before trying to convert when using I<-o rhv-\"\n\"upload> mode.  Also allows us to detect and reject various other conditions \"\n\"early.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:55\nmsgid \"Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:58\nmsgid \"You can use a block device as the Windows virtio driver ISO.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:60\nmsgid \"\"\n\"Multiple fixes to RHV uploads: Set C<DISKTYPE> field correctly when \"\n\"converting to RHV and VDSM.  Properly clean up on failure.  Display disk ID \"\n\"in error messages, and log script parameters, to help with debugging.  \"\n\"Multiple code cleanups.  (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:65\nmsgid \"Support conversions to RHV in qcow2 format (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:67\nmsgid \"\"\n\"Fix detection of disk status and failures after conversion to RHV (Daniel \"\n\"Erez).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:70\nmsgid \"\"\n\"Cancel disk transfer and remove uploaded disks on failure of conversion to \"\n\"RHV (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:73\nmsgid \"\"\n\"Images containing small holes (sparse regions) should now convert faster \"\n\"(Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:76\nmsgid \"\"\n\"The L<nbdkit-cacheextents-filter(1)> is used to accelerate sources which \"\n\"have slow sparseness detection, primarily this means VMware sources using \"\n\"VDDK (Martin Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:80\nmsgid \"\"\n\"Require at least 100 free inodes on each guest filesystem before doing \"\n\"conversion, since lack of inodes could cause conversion failures (Pino \"\n\"Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:84\nmsgid \"Fix osinfo output for CentOS 8 conversions (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:86\nmsgid \"\"\n\"VMware tools are now removed from Windows guests automatically in most cases \"\n\"(Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:89\nmsgid \"\"\n\"I<-i ova> mode no longer reads the whole input OVF into memory, but parses \"\n\"it off disk (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:92\nmsgid \"\"\n\"When converting to OpenStack, we now wait up to 5 minutes (instead of 60 \"\n\"seconds) for the Cinder volume to get attached to the conversion appliance, \"\n\"since in some cases it was taking a long time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:96\nmsgid \"\"\n\"If using a new enough version of nbdkit, virt-v2v logs should be much less \"\n\"verbose.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:99\n#: docs/virt-v2v-release-notes-2.0.pod:15\n#: docs/virt-v2v-release-notes-2.10.pod:14\n#: docs/virt-v2v-release-notes-2.2.pod:12\n#: docs/virt-v2v-release-notes-2.4.pod:14\n#: docs/virt-v2v-release-notes-2.6.pod:14\n#: docs/virt-v2v-release-notes-2.8.pod:14\nmsgid \"Security\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:101\n#: docs/virt-v2v-release-notes-2.0.pod:17\nmsgid \"There were no security-related bugs found in this release.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:103\n#: docs/virt-v2v-release-notes-2.0.pod:113\n#: docs/virt-v2v-release-notes-2.10.pod:152\n#: docs/virt-v2v-release-notes-2.2.pod:106\n#: docs/virt-v2v-release-notes-2.4.pod:75\n#: docs/virt-v2v-release-notes-2.6.pod:71\n#: docs/virt-v2v-release-notes-2.8.pod:143\nmsgid \"Build changes\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:105\nmsgid \"\"\n\"Libguestfs E<ge> 1.40 is required, it is now packaged and distributed \"\n\"separately from virt-v2v.  For developers you can use a locally built (and \"\n\"not installed) copy of libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:109\nmsgid \"\"\n\"Libvirt is now required to build virt-v2v.  Additionally you will require \"\n\"the OCaml bindings to libvirt (L<https://libvirt.org/ocaml/>), although a \"\n\"copy is bundled for now (it will be removed later).  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:114\nmsgid \"\"\n\"Libosinfo is required to build virt-v2v.  It is used to query information \"\n\"about guest drivers.  (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:117\nmsgid \"\"\n\"Fixes for OCaml E<ge> 4.10.  The minimum version of OCaml required is still \"\n\"4.01, but may be increased to 4.05 in future.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:120\nmsgid \"Test conversions of Debian 9 and Fedora 29 (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:122\nmsgid \"Various fixes to srcdir != builddir (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:124\nmsgid \"Remove gnulib modules not used by virt-v2v (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:126\n#: docs/virt-v2v-release-notes-2.0.pod:132\n#: docs/virt-v2v-release-notes-2.10.pod:173\n#: docs/virt-v2v-release-notes-2.2.pod:126\n#: docs/virt-v2v-release-notes-2.4.pod:87\n#: docs/virt-v2v-release-notes-2.6.pod:86\n#: docs/virt-v2v-release-notes-2.8.pod:171\nmsgid \"Internals\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:128\nmsgid \"\"\n\"When converting SUSE guests, always try to install QXL driver (Mike Latimer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:131\nmsgid \"\"\n\"Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit \"\n\"operations and nbdkit source operations respectively.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:134\nmsgid \"Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:136\nmsgid \"\"\n\"Tests have been moved to the F<tests/> subdirectory, and manuals to the \"\n\"F<docs/> subdirectory.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-1.42.pod:139\n#: docs/virt-v2v-release-notes-2.0.pod:136\n#: docs/virt-v2v-release-notes-2.10.pod:182\n#: docs/virt-v2v-release-notes-2.2.pod:133\n#: docs/virt-v2v-release-notes-2.4.pod:91\n#: docs/virt-v2v-release-notes-2.6.pod:90\n#: docs/virt-v2v-release-notes-2.8.pod:206\nmsgid \"Bugs fixed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:143\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.40.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:149\nmsgid \"L<https://bugzilla.redhat.com/1791802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:151\nmsgid \"virt-v2v does not install qemu-ga on EL8 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:153\nmsgid \"L<https://bugzilla.redhat.com/1791257>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:155\nmsgid \"\"\n\"update-crypto-policies command example is incorrect in virt-v2v-input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:157\nmsgid \"L<https://bugzilla.redhat.com/1791240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:159\nmsgid \"[RFE] Make the rhv-cafile optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:161\nmsgid \"L<https://bugzilla.redhat.com/1785528>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:163\nmsgid \"\"\n\"Should remove info about \\\"Remove VMware tools from Windows guests\\\" in virt-\"\n\"v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:165\nmsgid \"L<https://bugzilla.redhat.com/1746699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:167\nmsgid \"\"\n\"Can't import guest from export domain to data domain on rhv4.3 due to error \"\n\"\\\"Invalid parameter: 'DiskType=1'\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:169\nmsgid \"L<https://bugzilla.redhat.com/1733168>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:171\nmsgid \"virt-v2v: Use scp -T in -i vmx -it ssh mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:173\nmsgid \"L<https://bugzilla.redhat.com/1723305>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:175\nmsgid \"\"\n\"Delete info \\\"export PATH=/path/to/nbdkit-1.1.x:$PATH\\\" in virt-v2v-input-\"\n\"vmware manual page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:177\nmsgid \"L<https://bugzilla.redhat.com/1691659>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:179\nmsgid \"\"\n\"virt-v2v should show a message when qemu-guest-agent is installed in guest \"\n\"successfully during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:181\nmsgid \"L<https://bugzilla.redhat.com/1690574>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:183\nmsgid \"\"\n\"virt-v2v fails to import a guest while cannot find `file_architecture` for a \"\n\"file\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:185\nmsgid \"L<https://bugzilla.redhat.com/1680361>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:187\nmsgid \"\"\n\"[v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for \"\n\"transfer to finalize\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:189\nmsgid \"L<https://bugzilla.redhat.com/1626503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:191\nmsgid \"Unable to maintain static IP address configuration post VM migration\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:193\nmsgid \"L<https://bugzilla.redhat.com/1612653>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:195\nmsgid \"\"\n\"Guest has no disk after rhv-upload converting if target data domain has \"\n\"similar name with other data domain on rhv4.2\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:197\nmsgid \"L<https://bugzilla.redhat.com/1605242>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:199\nmsgid \"Update nbdkit info for vddk in v2v man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:201\nmsgid \"L<https://bugzilla.redhat.com/1584678>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:203\nmsgid \"\"\n\"On W2K12r2 rhev-apt does not run non-interactively, causing race when \"\n\"starting rhev-apt service from the command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:205\nmsgid \"L<https://bugzilla.redhat.com/1518539>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:207\nmsgid \"Macvtap network will be lost during v2v conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:215\nmsgid \"\"\n\"Previous release notes covering virt-v2v can be found in the libguestfs \"\n\"project: L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:220\nmsgid \"Daniel Erez\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:224\n#: docs/virt-v2v-release-notes-2.2.pod:320 docs/virt-v2v.pod:1965\n#: in-place/virt-v2v-in-place.pod:387 inspector/virt-v2v-inspector.pod:249\n#: open/virt-v2v-open.pod:161\nmsgid \"Tomáš Golembiovský\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-1.42.pod:226\n#: docs/virt-v2v-release-notes-2.0.pod:384\nmsgid \"Martin Kletzander\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:228 docs/virt-v2v.pod:1973\n#: in-place/virt-v2v-in-place.pod:395 inspector/virt-v2v-inspector.pod:257\n#: open/virt-v2v-open.pod:169\nmsgid \"Mike Latimer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:230\n#: docs/virt-v2v-release-notes-2.0.pod:388\n#: docs/virt-v2v-release-notes-2.6.pod:206 docs/virt-v2v.pod:1975\n#: in-place/virt-v2v-in-place.pod:397 inspector/virt-v2v-inspector.pod:259\n#: open/virt-v2v-open.pod:171\nmsgid \"Nir Soffer\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:232\n#: docs/virt-v2v-release-notes-2.0.pod:390 docs/virt-v2v.pod:1977\n#: in-place/virt-v2v-in-place.pod:399 inspector/virt-v2v-inspector.pod:261\n#: open/virt-v2v-open.pod:173\nmsgid \"Pino Toscano\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-1.42.pod:234\n#: docs/virt-v2v-release-notes-2.2.pod:306 docs/virt-v2v.pod:1981\n#: in-place/virt-v2v-in-place.pod:403 inspector/virt-v2v-inspector.pod:265\n#: open/virt-v2v-open.pod:177\nmsgid \"Ming Xie\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.0\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.0>>.  This describes the \"\n\"major changes since 1.42.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:10\nmsgid \"\"\n\"No release notes were published for 1.44, so that release is covered here.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:13\nmsgid \"Virt-v2v 2.0.0 was released on S<B<14 March 2022>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:21\nmsgid \"\"\n\"Virt-v2v has been modularised allowing external programs to examine the \"\n\"state of the conversion and inject their own copying step.  Further \"\n\"enhancements will be made to this new architecture in forthcoming releases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:26\nmsgid \"\"\n\"The command line is almost identical apart from some debugging features that \"\n\"were removed (see below).  The only significant difference is that the \"\n\"output format (I<-of>) now has to be specified if it is different from the \"\n\"input format, whereas previous versions of virt-v2v would use the same \"\n\"output format as input format automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:33\nmsgid \"\"\n\"A lot of time was spent improving the performance of virt-v2v in common \"\n\"cases.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:36\nmsgid \"Implement conversion of ALT Linux guests (Mikhail Gordeev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:38\nmsgid \"\"\n\"Many bug fixes and performance enhancements were made to oVirt imageio \"\n\"output (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:41\nmsgid \"\"\n\"There is a new L<virt-v2v-in-place(1)> tool which replaces the existing virt-\"\n\"v2v I<--in-place> option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:44\nmsgid \"\"\n\"Virt-v2v can now convert guests which use LUKS encrypted logical volumes \"\n\"(Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:47\nmsgid \"\"\n\"Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct \"\n\"mode (which is much faster) is now the default when writing to oVirt, with \"\n\"proxy mode available for restricted network configurations (thanks: Nir \"\n\"Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:52\nmsgid \"\"\n\"The following command line options were removed: I<--print-estimate>, I<--\"\n\"debug-overlays>, I<--no-copy>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:55\nmsgid \"\"\n\"Virt-v2v no longer installs the RHEV-APT tool in Windows guests.  This tool \"\n\"was deprecated and then removed in oVirt 4.3.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:58\nmsgid \"\"\n\"Deprecated tool virt-v2v-copy-to-local has been removed.  This was \"\n\"deprecated in November 2018.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:63\nmsgid \"\"\n\"Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis \"\n\"Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:66\nmsgid \"\"\n\"Fix conversions of UEFI Linux guests that don't provide their own fallback \"\n\"bootloader (Denis Plotnikov).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:69\nmsgid \"\"\n\"Remove use of L<nbdkit-readahead-filter(1)>.  This filter uses a naive \"\n\"strategy and it had several negative effects on conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:72\nmsgid \"\"\n\"Remove prompts for interactive passwords.  Normally you should try to use \"\n\"the I<-ip> and/or I<-op> options to supply passwords.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:75\nmsgid \"\"\n\"For Windows guests, we insert a schtasks command.  However the parameters of \"\n\"this command are timezone dependent and so it failed in non-European \"\n\"timezones.  (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark \"\n\"Zealey, Xiaodai Wang)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:80\nmsgid \"\"\n\"Virt-v2v will reauthenticate with vCenter servers periodically when copying \"\n\"guests over HTTPS which stops large guests and/or slow copies taking longer \"\n\"than about 30 minutes from failing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:84\nmsgid \"\"\n\"Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, \"\n\"which helps performance of certain conversion steps.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:87\nmsgid \"\"\n\"Virt-v2v output to oVirt now attempts to set the machine and firmware type \"\n\"correctly.  Note an exact mapping is not always possible and oVirt may \"\n\"ignore our recommendations (incorrectly) sometimes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:91\nmsgid \"\"\n\"Virt-v2v now generates a virtio-vsock device for guests which support it \"\n\"(Valeriy Vdovin).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:94\nmsgid \"\"\n\"All guests now need at least 100 MB of free space for conversion to succeed \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:97\nmsgid \"\"\n\"Standard VGA instead of QXL is now used as the video type for converted \"\n\"guests (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:100\nmsgid \"\"\n\"Older guests (eg RHEL 6) will use the virtio-transitional model after \"\n\"conversion.  This feature and the machine type are now usually determined \"\n\"from the libosinfo database, falling back to hard-coded values if libosinfo \"\n\"is not available (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:105\nmsgid \"\"\n\"When virt-v2v prints messages to a pipe or file it no longer wraps them, \"\n\"making parsing simpler.  You can enable wrapping in this mode using I<--\"\n\"wrap> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:109\nmsgid \"\"\n\"Windows guest firstboot scripts installed by virt-v2v now run in the right \"\n\"order, making network configuration happen earlier (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:115\nmsgid \"libguestfs E<ge> 1.44 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:117\nmsgid \"\"\n\"L<nbdcopy(1)> and OCaml NBD bindings, both from libnbd E<ge> 1.10, are now \"\n\"required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:120\nmsgid \"nbdkit E<ge> 1.22 is now required (Nir Soffer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:122\nmsgid \"pcre2 (instead of pcre) is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:124\nmsgid \"gnulib is no longer bundled or used by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:126\nmsgid \"\"\n\"OCaml E<ge> 4.04 is now required.  OCaml 4.13 support has been added in this \"\n\"release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:129\nmsgid \"\"\n\"OpenSSH scp E<ge> 8.8 is now required.  Earlier versions will fail because \"\n\"the command line syntax was changed incompatibly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:134\nmsgid \"Weblate instead of Zanata is now used for translations (Pino Toscano).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:140\nmsgid \"https_proxy= ./bugs-in-changelog.sh v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:146\nmsgid \"L<https://bugzilla.redhat.com/2051394>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:148\nmsgid \"\"\n\"Missing error message of 'insufficient free space in the conversion server \"\n\"temporary directory'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:150\nmsgid \"L<https://bugzilla.redhat.com/2044922>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:152\nmsgid \"nbdinfo output to stdout instead of stderr during virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:154\nmsgid \"L<https://bugzilla.redhat.com/2044911>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:156\nmsgid \"virt-p2v conversion hangs with RHEL9 virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:158\nmsgid \"L<https://bugzilla.redhat.com/2043333>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:160\nmsgid \"\"\n\"'model='virtio-transitional' is wrongly added when converting windows guest \"\n\"to local by rhel9 v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:162\nmsgid \"L<https://bugzilla.redhat.com/2041886>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:164\nmsgid \"\"\n\"virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with \"\n\"incorrect IP address\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:166\nmsgid \"L<https://bugzilla.redhat.com/2041852>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:168\nmsgid \"Improve the unclear assertion failure at input_xen_ssh.ml\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:170\nmsgid \"L<https://bugzilla.redhat.com/2041850>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:172\nmsgid \"Can not specify '-oo json-disks-pattern' in '-o json' mode\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:174\nmsgid \"L<https://bugzilla.redhat.com/2039597>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:176\nmsgid \"Failed to import VM when selecting OVA as a source on RHV webadmin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:178\nmsgid \"L<https://bugzilla.redhat.com/2039255>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:180\nmsgid \"\"\n\"Conversion performance is not good when convert guest by modular virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:182\nmsgid \"L<https://bugzilla.redhat.com/2034240>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:184\nmsgid \"\"\n\"calling \\\"get_disk_allocated\\\" in \\\"create_ovf\\\" breaks the rhv-upload \"\n\"output plugin\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:186\nmsgid \"L<https://bugzilla.redhat.com/2033096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:188\nmsgid \"RFE: Remove -oo rhv-direct and add -oo rhv-proxy option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:190\nmsgid \"L<https://bugzilla.redhat.com/2032324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:192\nmsgid \"\"\n\"nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk \"\n\"> 6.5 + rhv-upload to rhv4.4\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:194\nmsgid \"L<https://bugzilla.redhat.com/2032112>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:196\nmsgid \"Add virt-v2v and libvirt version to the beginning of v2v debug log\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:198\nmsgid \"L<https://bugzilla.redhat.com/2027673>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:200\nmsgid \"\"\n\"V2V can't convert guest from VMware via vmx+ssh when openssh version is \"\n\"8.7p1-5\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:202\nmsgid \"L<https://bugzilla.redhat.com/2027598>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:204\nmsgid \"\"\n\"There is no guest listed in export domain if use v2v to convert guest to rhv \"\n\"via -o rhv\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:206\nmsgid \"L<https://bugzilla.redhat.com/1994984>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:208\nmsgid \"\"\n\"virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/\"\n\"mapper/cryptsda: No such file or directory\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:210\nmsgid \"L<https://bugzilla.redhat.com/1977681>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:212\nmsgid \"\"\n\"The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be \"\n\"updated\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:214\nmsgid \"L<https://bugzilla.redhat.com/1976607>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:216\nmsgid \"[RFE] Drop QXL for guests on CentOS 9 clusters\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:218\nmsgid \"L<https://bugzilla.redhat.com/1976024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:220\nmsgid \"\"\n\"[RFE][v2v] [upload/download disk/CBT] Failed to attach disk to the VM - disk \"\n\"is OK but image transfer still holds a lock on the disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:222\nmsgid \"L<https://bugzilla.redhat.com/1972125>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:224\nmsgid \"\"\n\"Update privileges for Non-admin vmware role when ESXi host has enabled host \"\n\"encryption mode in virt-v2v-input-vmware man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:226\nmsgid \"L<https://bugzilla.redhat.com/1967941>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:228\nmsgid \"\"\n\"virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:230\nmsgid \"L<https://bugzilla.redhat.com/1964324>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:232\nmsgid \"assertion failed at parse_ova.ml when ova directory ends with '/'\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:234\nmsgid \"L<https://bugzilla.redhat.com/1961107>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:236\nmsgid \"Change video type from qxl to vga after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:238\nmsgid \"L<https://bugzilla.redhat.com/1960087>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:240\nmsgid \"\"\n\"v2v import from vCenter fails when using interactive password because cookie-\"\n\"script tries to be interactive\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:242\nmsgid \"L<https://bugzilla.redhat.com/1949147>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:244\nmsgid \"\"\n\"Should improve the minimum free space for windows guest in v2v man page and \"\n\"better to improve v2v error message about no space left for windows guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:246\nmsgid \"L<https://bugzilla.redhat.com/1945549>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:248\nmsgid \"\"\n\"Delete or improve the warning info about rhev-apt during v2v converting \"\n\"windows guest on rhel9\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:250\nmsgid \"L<https://bugzilla.redhat.com/1942325>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:252\nmsgid \"\"\n\"Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio \"\n\"devices during conversion if target is rhel9 system\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:254\nmsgid \"L<https://bugzilla.redhat.com/1926102>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:256\nmsgid \"\"\n\"\\\"virt-v2v: warning: there is no QXL driver for this version of Windows\\\" \"\n\"still shows, even though we copied qxldod driver to the guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:258\nmsgid \"L<https://bugzilla.redhat.com/1917760>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:260\nmsgid \"VMware tools not getting uninstalled as part of IMS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:262\nmsgid \"L<https://bugzilla.redhat.com/1903960>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:264\nmsgid \"\"\n\"Should hidden \\\"virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is \"\n\"missing..\\\"during conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:266\nmsgid \"L<https://bugzilla.redhat.com/1901489>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:268\nmsgid \"\"\n\"VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: \"\n\"attempting to create connection to vpxa-nfc:// followed by virt-v2v failure\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:270\nmsgid \"L<https://bugzilla.redhat.com/1895323>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:272\nmsgid \"\"\n\"After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is \"\n\"not M/d/yyyy format\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:274\nmsgid \"L<https://bugzilla.redhat.com/1872100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:276\nmsgid \"\"\n\"Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:278\nmsgid \"L<https://bugzilla.redhat.com/1872094>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:280\nmsgid \"\"\n\"Virt-v2v should convert UEFI guest to openstack via openstack option \"\n\"successfully\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:282\nmsgid \"L<https://bugzilla.redhat.com/1871754>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:284\nmsgid \"\"\n\"RFE: Should clarify which file is correct authentication file for openstack/\"\n\"glance conversion in virt-v2v-output-openstack man page\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:286\nmsgid \"L<https://bugzilla.redhat.com/1868690>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:288\nmsgid \"\"\n\"Ceph block device will be destroyed if v2v convert guest to ceph block \"\n\"device and guest disk size is greater than ceph block device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:290\nmsgid \"L<https://bugzilla.redhat.com/1858775>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:292\nmsgid \"RFE: virt-v2v should check the ip info when specify guest's ip\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:294\nmsgid \"L<https://bugzilla.redhat.com/1858765>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:296\nmsgid \"\"\n\"V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for \"\n\"device\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:259\n#: docs/virt-v2v-release-notes-2.6.pod:100\nmsgid \"L<https://bugzilla.redhat.com/1854275>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:300\n#: docs/virt-v2v-release-notes-2.2.pod:261\n#: docs/virt-v2v-release-notes-2.6.pod:102\nmsgid \"\"\n\"document that vmx+ssh \\\"-ip\\\" auth doesn't cover ssh / scp shell commands\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:302\nmsgid \"L<https://bugzilla.redhat.com/1842440>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:304\nmsgid \"\"\n\"nbdkit cannot read the password interactively when started from virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:306\nmsgid \"L<https://bugzilla.redhat.com/1841096>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:308\nmsgid \"\"\n\"Option --bandwidth and --bandwidth-file isn't working as expected during v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:310\nmsgid \"L<https://bugzilla.redhat.com/1839917>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:312\nmsgid \"\"\n\"There is no info \\\"Opening the source -i libvirt -ic vpx://...\\\" shown if \"\n\"any IP is wrong in vpx:// URL during v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:314\nmsgid \"L<https://bugzilla.redhat.com/1838425>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:316\nmsgid \"\"\n\"V2V doesn't ask password if there is no option about password file in v2v \"\n\"command line\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:318\nmsgid \"L<https://bugzilla.redhat.com/1837453>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:320\nmsgid \"[RFE]Remove cache=none for guest after v2v converting to libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:322\nmsgid \"L<https://bugzilla.redhat.com/1837328>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:324\nmsgid \"Virt-v2v cannot convert guest from ESXI7.0 server without vddk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:326\nmsgid \"L<https://bugzilla.redhat.com/1832805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:328\nmsgid \"\"\n\"v2v conversion will be failed because of memory allocation failure if \"\n\"convert guest from ESXi6.0 or ESXi6.5 via vddk, or use vddk6.5 to convert \"\n\"guest from VMware\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:330\nmsgid \"L<https://bugzilla.redhat.com/1789279>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:332\nmsgid \"\"\n\"virt-v2v should give more clear error info when use some special invalid \"\n\"uuids for disks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:334\nmsgid \"L<https://bugzilla.redhat.com/1788823>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:336\nmsgid \"\"\n\"Virt-v2v firstboot scripts should run in order, with v2v network \"\n\"configuration happening first\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:338\nmsgid \"L<https://bugzilla.redhat.com/1764569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:340\nmsgid \"V2V conversion fails when a filesystem has no free inodes\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:342\nmsgid \"L<https://bugzilla.redhat.com/1658126>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:344\nmsgid \"Virt-v2v can't convert guest using LUKS-on-LV\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:346\nmsgid \"L<https://bugzilla.redhat.com/1637857>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:348\nmsgid \"\"\n\"q35 switch caused: error: unsupported configuration: IDE controllers are \"\n\"unsupported for this QEMU binary or machine type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:350\nmsgid \"L<https://bugzilla.redhat.com/1581428>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:352\nmsgid \"virt-v2v use Q35 as default machine-type\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:354\nmsgid \"L<https://bugzilla.redhat.com/1534644>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:356\nmsgid \"New way of parsing OVF from OVA that was created by VMware fails.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:362\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-1.42(1)>, L<guestfs-release-\"\n\"notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:368\nmsgid \"Authors of virt-v2v 2.0:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:372\nmsgid \"git shortlog -s v1.42.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:378\nmsgid \"Denis Plotnikov\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:380\nmsgid \"Kevin Locke\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.0.pod:382\n#: docs/virt-v2v-release-notes-2.2.pod:302\n#: docs/virt-v2v-release-notes-2.4.pod:181 docs/virt-v2v.pod:1963\n#: in-place/virt-v2v-in-place.pod:385 inspector/virt-v2v-inspector.pod:247\n#: open/virt-v2v-open.pod:159\nmsgid \"Laszlo Ersek\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:386\nmsgid \"Mikhail Gordeev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.0.pod:394\nmsgid \"Valeriy Vdovin\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.10\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.10>>.  This describes the \"\n\"major changes since 2.8.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:10\nmsgid \"Virt-v2v 2.10.0 was released on S<B<6th January 2026>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:20\nmsgid \"\"\n\"In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let \"\n\"you respectively override the output disk names, and avoid disk creation, \"\n\"letting you pre-create disks before running virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:24\nmsgid \"For VDDK sources:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:30\nmsgid \"\"\n\"A new I<-io vddk-compression> option lets you enable compression for data \"\n\"read over the network.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:35\nmsgid \"\"\n\"I<-io vddk-thumbprint> is now optional.  If omitted, virt-v2v will \"\n\"automatically work it out from the VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:40\nmsgid \"\"\n\"New I<--memsize> and I<--smp> options which let you override the default \"\n\"amount of memory and number of vCPUs assigned to the appliance.  For certain \"\n\"complex guests it is occasionally necessary to adjust these, although \"\n\"usually virt-v2v should do the right thing automatically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:46\nmsgid \"\"\n\"L<virt-v2v-inspector(1)> now detects Windows Antivirus and Group policy, and \"\n\"if found adds C<E<lt>windows_antivirus/E<gt>> and \"\n\"C<E<lt>windows_group_policy/E<gt>> elements respectively.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:50\n#: docs/virt-v2v-release-notes-2.8.pod:58\nmsgid \"Features removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:52\nmsgid \"The following virt-v2v options have been removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:56\nmsgid \"I<-io vddk-noextents>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:58\nmsgid \"\"\n\"This was an undocumented troubleshooting option.  Any uses of it can simply \"\n\"be removed.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:61\nmsgid \"I<--sm*> options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:63\nmsgid \"\"\n\"The Red Hat Subscription Manager customization options did not work and have \"\n\"been removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:70\nmsgid \"\"\n\"When checking ext4 filesystems before conversion, replay the dirty log to \"\n\"avoid e2fsck failing (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:73\nmsgid \"\"\n\"When checking XFS filesystems before and after conversion, cap the amount of \"\n\"memory used by the L<xfs_repair(8)> utility (thanks Ming Xie, Eric Sandeen).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:77\nmsgid \"\"\n\"For output modes that write to local disk, in debugging output we now report \"\n\"the amount of space on the local (host) disk, in order to make it easier to \"\n\"debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:82\nmsgid \"\"\n\"Use L<nbdkit-count-filter(1)> (if installed).  In debugging mode this will \"\n\"print a summary of the number of bytes read, written, trimmed and zeroed \"\n\"when copying the guest, which can be useful when you want to know how much \"\n\"data was sent over the wire by virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:87\nmsgid \"For Windows virtio driver installation:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:93\nmsgid \"Fix this when there is a pending Windows Update (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:97\nmsgid \"\"\n\"Fix this when Windows changes the timezone during firstboot (Vadim \"\n\"Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:102\nmsgid \"\"\n\"Skip driver installation when a newer/better virtio driver is already \"\n\"installed (Vadim Rozenfeld).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:107\nmsgid \"\"\n\"Slightly modify how we patch the regsitry so that we don't break both \"\n\"Windows Update and C<pnputil /e> driver enumeration.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:112\nmsgid \"Display the versions of libnbd and nbdcopy in debugging output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:114\nmsgid \"\"\n\"Fix SELinux relabelling for guests which use a separate F</usr> partition \"\n\"(thanks Germano Veit Michel, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:117\nmsgid \"\"\n\"We now attempt to generate correct boot order for Linux BIOS guests.  This \"\n\"is necessary with current SeaBIOS so that it initializes the correct boot \"\n\"disk, allowing the guest to boot if the bootloader is not on the first disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:122\nmsgid \"\"\n\"Name nbdkit subprocesses using the new I<--name> option in S<nbdkit E<ge> \"\n\"1.46>.  This allows debugging and error messages from different nbdkit \"\n\"instances to be distinguished in log files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:126\nmsgid \"\"\n\"A virtual floppy disk is no longer added to the output guest if qemu does \"\n\"not support it, even if the input guest has a floppy disk (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:130\nmsgid \"\"\n\"During conversion of Windows guests, if we have to create S<F<C:\\\\Program \"\n\"Files\\\\Guestfs>>, it is now created read-only for non-Administrator accounts \"\n\"(Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:134\nmsgid \"\"\n\"For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which \"\n\"previously caused a crash in Augeas during conversion (thanks Sean Haselden, \"\n\"Alasdair Kergon).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:138\nmsgid \"\"\n\"Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:141\nmsgid \"\"\n\"Fix UEFI conversions of Windows guests if F<C:\\\\Windows\\\\Temp> exists but \"\n\"has a different upper/lowercase from the directory that Windows normally \"\n\"creates.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.10.pod:145\nmsgid \"Documentation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:147\nmsgid \"Refactored and improved documentation (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:149\nmsgid \"\"\n\"Link from L<virt-v2v(1)> directly to official VMware documentation for \"\n\"removing VMware Tools.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:154\nmsgid \"libguestfs E<ge> 1.58 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:156\nmsgid \"nbdkit E<ge> 1.46 is required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:158\nmsgid \"\"\n\"Update C<make check-slow> (\\\"slow tests\\\") so we test more recent guest \"\n\"types.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:161\nmsgid \"We now test Windows UEFI conversions in the test suite.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:163\nmsgid \"C<./configure> output has been colourized.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:165\nmsgid \"\"\n\"New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-\"\n\"ovirt> and I<--disable-xen> options allowing you to disable those features \"\n\"at compile time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:169\nmsgid \"\"\n\"Basic github CI has been implemented.  Pull requests now do the equivalent \"\n\"of C<./configure --enable-werror && make && make check> on a few common \"\n\"platforms.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:175\nmsgid \"\"\n\"The internal podwrapper tool used to process the documentation now has a new \"\n\"I<--pp> to allow a preprocessor to be used.  In particular we now use \"\n\"L<m4(1)> to preprocess some documentation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:179\nmsgid \"\"\n\"In F<Makefile.am>, C<$(NULL)> can be used as a list terminator.  This \"\n\"improves patch application.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:186\nmsgid \"./bugs-in-changelog.sh v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:192\nmsgid \"L<https://issues.redhat.com/browse/RHEL-100682>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:194\nmsgid \"\"\n\"Installing drivers on firstboot sometimes fail with PnP service not \"\n\"available [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:197\nmsgid \"L<https://issues.redhat.com/browse/RHEL-101599>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:199\nmsgid \"RFE: Allow -o kubevirt disks to be specified\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:201\nmsgid \"L<https://issues.redhat.com/browse/RHEL-102734>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:203\nmsgid \"\"\n\"virt-v2v can't convert guest with multiple disks from VMware since \"\n\"nbdkit-1.44.0-1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:206\nmsgid \"L<https://issues.redhat.com/browse/RHEL-104352>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:208\nmsgid \"Change permission of guestfs folder created\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:210\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108174>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:212\nmsgid \"\"\n\"selinux-relabel doesn't work across filesystem boundaries (because setfiles \"\n\"doesn't) [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:215\nmsgid \"L<https://issues.redhat.com/browse/RHEL-108991>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:217\nmsgid \"\"\n\"RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:220\nmsgid \"L<https://issues.redhat.com/browse/RHEL-110742>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:222\nmsgid \"RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:224\nmsgid \"L<https://issues.redhat.com/browse/RHEL-113820>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:226\nmsgid \"guestfs crashed when running aug-init during a conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:228\nmsgid \"L<https://issues.redhat.com/browse/RHEL-121728>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:230\nmsgid \"v2v can't convert guest with multiple windows OS on rhel10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:232\nmsgid \"L<https://issues.redhat.com/browse/RHEL-124569>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:234\nmsgid \"\"\n\"Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or \"\n\"directory [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:237\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:239\nmsgid \"setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:241\nmsgid \"L<https://issues.redhat.com/browse/RHEL-125956>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:243\nmsgid \"virt-inspector detect if AV/GPOs are present in a VM [virt-v2v]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-90175>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:247\nmsgid \"\"\n\"Should remove floppy device for the guest after v2v conversion [rhel-10.2]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-97600>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:252\nmsgid \"Virt-v2v fails to convert some guests with libguestfs error: e2fsck\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99313>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:256\nmsgid \"\"\n\"Improve the error info when converting a guest with less than 100 inodes by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-99745>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:261\nmsgid \"\"\n\"Improve info about guest must not be running or must be shut down in virt-\"\n\"v2v related man page [rhel-10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:264\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/100>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:266\nmsgid \"Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:276\nmsgid \"Authors of virt-v2v 2.10:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:280\nmsgid \"git shortlog -s v2.8.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:286\nmsgid \"Alan Alberghini\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:288\n#: docs/virt-v2v-release-notes-2.8.pod:331\nmsgid \"Cole Robinson\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:290\nmsgid \"Fco. Javier F. Serrador\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:294\n#: docs/virt-v2v-release-notes-2.2.pod:314\n#: docs/virt-v2v-release-notes-2.8.pod:337\nmsgid \"Ricky Tigg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:296\nmsgid \"Vadim Rozenfeld\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.10.pod:298\n#: docs/virt-v2v-release-notes-2.2.pod:322\n#: docs/virt-v2v-release-notes-2.4.pod:193\n#: docs/virt-v2v-release-notes-2.6.pod:214\n#: docs/virt-v2v-release-notes-2.8.pod:339\nmsgid \"Yuri Chornoivan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.10.pod:304\nmsgid \"Copyright (C) 2009-2026 Red Hat Inc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.2>>.  This describes the \"\n\"major changes since 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:10\nmsgid \"Virt-v2v 2.2.0 was released on S<B<Tuesday 10 January 2023>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:14\nmsgid \"\"\n\"When running virt-v2v as root, NBD Unix domain sockets in the v2v directory \"\n\"were openable by any user.  We now set the directory owner so only qemu can \"\n\"access the sockets.  See: https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=2066773 (thanks Xiaodai Wang, S<Dr David Gilbert>, Daniel Berrangé, \"\n\"Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:22\nmsgid \"\"\n\"New L<virt-v2v-inspector(1)> tool.  This tool can be used before conversion \"\n\"to collect facts about the source guest, such as number of disks, and to \"\n\"estimate the disk space required after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:26\nmsgid \"\"\n\"Add support for NVMe devices and SATA hard disks when importing from VMware \"\n\"VMX files (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:29\nmsgid \"\"\n\"Add support for importing to KubeVirt using the new B<experimental> I<-o \"\n\"kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:32\nmsgid \"Windows 11 guests are now supported.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:34\nmsgid \"Rocky Linux guest support has been added (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-release-notes-2.2.pod:36\n#: docs/virt-v2v-release-notes-2.4.pod:29\n#: docs/virt-v2v-release-notes-2.6.pod:44\nmsgid \"Feature removed\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:38\nmsgid \"\"\n\"The I<-o json> mode was removed.  It was intended to be used with KubeVirt \"\n\"but was never actually used there.  Use I<-o kubevirt> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:44\nmsgid \"\"\n\"Fix detection of virtio-socket support in Linux guests (Laszlo Ersek).  In \"\n\"addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:48\nmsgid \"\"\n\"Allow importing OVAs where the user or group name inside the tarball \"\n\"contains a space (Jiří Sléžka).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:51\nmsgid \"Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:53\nmsgid \"\"\n\"Improve documentation for the need to enable PasswordAuthentication on the \"\n\"server side when importing over SSH (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:56\nmsgid \"\"\n\"Don't use the deprecated qemu I<-balloon> option.  This caused deprecation \"\n\"warnings with I<-o qemu> mode.  Use I<-device> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:59\nmsgid \"\"\n\"Rewrite device mapping in I<-o qemu> mode, removing some strange / non-\"\n\"existent cases like SCSI floppies.  This should result in more consistent \"\n\"device layout when using this mode (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:63\nmsgid \"\"\n\"Remove more left over open-vm-tools packages from Linux guests (Tim Kent).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:66\nmsgid \"\"\n\"In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš \"\n\"Golembiovský).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:69\nmsgid \"Greatly improved vCPU model handling (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:71\nmsgid \"\"\n\"Document extra permissions needed for non-admin conversion with S<VMware 7> \"\n\"(Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:74\nmsgid \"\"\n\"QEMU guest agent is now installed unconditionally and where possible a \"\n\"virtio-serial socket is created in the guest metadata (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:77\nmsgid \"\"\n\"In the various RHV output modes, the number of disks is now limited to 23.  \"\n\"RHV doesn't support anything greater and would break (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:81\nmsgid \"\"\n\"I<-oo compressed> is now working again.  It was temporarily broken in virt-\"\n\"v2v 2.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:84\nmsgid \"\"\n\"The documentation no longer advises you to use the dangerous global \\\"LEGACY \"\n\"crypto\\\" option, but provides more targeted advice (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:88\nmsgid \"Remove the LVM2 devices file during conversion (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:90\nmsgid \"Add support for guests using Zstandard compressed kernel modules.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:92\nmsgid \"\"\n\"Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash \"\n\"with some guests with graphical boot displays (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:95\nmsgid \"\"\n\"The UEFI fallback boot loader is now fixed up if we detect that it was \"\n\"broken (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:98\nmsgid \"\"\n\"Improve detection of guests using BIOS boot with GPT partitions so that we \"\n\"no longer confuse them with UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:101\nmsgid \"\"\n\"Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:104\nmsgid \"Fix Windows 11 support for RHV outputs (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:108\nmsgid \"Enable malloc debugging in tests with glibc E<ge> 2.34.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:110\nmsgid \"\"\n\"When using C<make check-valgrind>, valgrind output is no longer written to \"\n\"separate files under F<tmp/>.  Instead it is written to the normal test log \"\n\"file.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:114\nmsgid \"\"\n\"We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep \"\n\"in Jan 2012).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:117\nmsgid \"\"\n\"The OCaml libvirt bindings are no longer bundled.  They must be available at \"\n\"build time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:120\nmsgid \"Updated the phony test images.  The tests should all pass.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:122\nmsgid \"Add compatibility with OCaml 4.14.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:124\nmsgid \"We now require PCRE2 instead of PCRE.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:128\nmsgid \"New LUKS-on-LVM test added (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:130\nmsgid \"\"\n\"Added F<scripts/git.orderfile> which orders files when we prepare patches.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:137\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:143\nmsgid \"L<https://bugzilla.redhat.com/2152465>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:145\nmsgid \"\"\n\"v2v should set ovirt:id correctly after converting windows11/2019/2022 \"\n\"guests to rhv via -o rhv-upload\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:147\nmsgid \"L<https://bugzilla.redhat.com/2151752>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:149\nmsgid \"\"\n\"qemufwcfg device cannot start or has no driver after v2v converting windows \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:151\nmsgid \"L<https://bugzilla.redhat.com/2149863>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:153\nmsgid \"\"\n\"The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-\"\n\"v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:155\nmsgid \"L<https://bugzilla.redhat.com/2149811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:157\nmsgid \"\"\n\"Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v \"\n\"conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:159\nmsgid \"L<https://bugzilla.redhat.com/2149629>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:161\nmsgid \"\"\n\"Win 2022 fails to boot after virt-p2v conversion from physical host with \"\n\"nvme disk\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:163\nmsgid \"L<https://bugzilla.redhat.com/2131123>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:165\nmsgid \"RHEL7 UEFI guest turns into black after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:167\nmsgid \"L<https://bugzilla.redhat.com/2116811>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:169\nmsgid \"\"\n\"virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line \"\n\"190, char 11\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:171\nmsgid \"L<https://bugzilla.redhat.com/2112801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:173\nmsgid \"RHEL9 guest hangs during boot after conversion by virt-p2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:175\nmsgid \"L<https://bugzilla.redhat.com/2107503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:177\nmsgid \"\"\n\"RHEL 8.6 VM with \\\"qemu64\\\" CPU model can't start because \\\"the CPU is \"\n\"incompatible with host CPU: Host CPU does not provide required features: \"\n\"svm\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:179\nmsgid \"L<https://bugzilla.redhat.com/2101665>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:181\nmsgid \"\"\n\"\\\"/dev/nvme0n1\\\" is not remapped to \\\"/dev/vda\\\" (etc) in boot config files \"\n\"such as \\\"/boot/grub2/device.map\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:183\nmsgid \"L<https://bugzilla.redhat.com/2089623>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:185\nmsgid \"Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:187\nmsgid \"L<https://bugzilla.redhat.com/2082603>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:189\nmsgid \"\"\n\"virt-v2v -o qemu prints cosmetic warning: \\\"warning: short-form boolean \"\n\"option 'readonly' deprecated\\\"\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:191\nmsgid \"L<https://bugzilla.redhat.com/2076013>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:193\nmsgid \"RHEL9.1 guest can't boot into OS after v2v conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:195\nmsgid \"L<https://bugzilla.redhat.com/2074805>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:197\nmsgid \"\"\n\"-o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and \"\n\"other problems\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:199\nmsgid \"L<https://bugzilla.redhat.com/2074801>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:201\nmsgid \"\"\n\"do not pass \\\"--non-bootable --read-write\\\" to \\\"volume create \\\" in \"\n\"openstack output module\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:203\nmsgid \"L<https://bugzilla.redhat.com/2070530>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:205\nmsgid \"\"\n\"Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:207\nmsgid \"L<https://bugzilla.redhat.com/2070186>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:209\nmsgid \"fix virtio-vsock check (for Linux guests) in virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:211\nmsgid \"L<https://bugzilla.redhat.com/2069768>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:213\nmsgid \"Import of OVA fails if the user/group name contains spaces\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:215\nmsgid \"L<https://bugzilla.redhat.com/2066773>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:217\nmsgid \"The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:219\nmsgid \"L<https://bugzilla.redhat.com/2062360>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:221\nmsgid \"\"\n\"RFE: Virt-v2v should replace hairy \\\"enable LEGACY crypto\\\" advice which a \"\n\"more targeted mechanism\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:223\nmsgid \"L<https://bugzilla.redhat.com/2059287>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:225\nmsgid \"RFE: Rebase virt-v2v to 2.0 in RHEL 9.1\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:227\nmsgid \"L<https://bugzilla.redhat.com/2051564>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:229\nmsgid \"[RFE]Limiting the maximum number of disks per guest for v2v conversions\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:231\nmsgid \"L<https://bugzilla.redhat.com/2047660>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:233\nmsgid \"Add '--compressed' support in modular v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:235\nmsgid \"L<https://bugzilla.redhat.com/2028764>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:237\nmsgid \"Install the qemu-guest-agent package during the conversion process\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:239\nmsgid \"L<https://bugzilla.redhat.com/2003503>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:241\nmsgid \"\"\n\"There is virt-v2v warning: fstrim on guest filesystem /dev/mapper/osprober-\"\n\"linux-sdb1 failed if non-os disk of source guest has few/no inodes lef\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:243\nmsgid \"L<https://bugzilla.redhat.com/1985827>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:245\nmsgid \"Start or remove VM failure even v2v has already finished\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:247\nmsgid \"L<https://bugzilla.redhat.com/1953286>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:249\nmsgid \"\"\n\"No error shows when using virt-v2v -o rhv to convert guest to data domain\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:251\nmsgid \"L<https://bugzilla.redhat.com/1938954>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:253\nmsgid \"-i vmx -it ssh: document percent encoding in ssh URIs\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:255\nmsgid \"L<https://bugzilla.redhat.com/1883802>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:257\nmsgid \"-i vmx: SATA disks are not parsed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:263\nmsgid \"L<https://bugzilla.redhat.com/1817050>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:265\nmsgid \"\"\n\"Can't convert guest from VMware with non-admin account and vddk >=7.0 by \"\n\"virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:267\nmsgid \"L<https://bugzilla.redhat.com/1774386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:269\nmsgid \"input_vmx: cleanly reject guests with snapshots when using \\\"-it ssh\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:275\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-v2v-release-notes-2.0(1)>, L<virt-v2v-release-\"\n\"notes-1.42(1)>, L<guestfs-release-notes-1.40(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:282\nmsgid \"Authors of virt-v2v 2.2:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.2.pod:286\nmsgid \"git shortlog -s v2.0.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:292\n#: docs/virt-v2v-release-notes-2.4.pod:169\nmsgid \"Andrey Drobyshev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:294\n#: docs/virt-v2v-release-notes-2.4.pod:171\nmsgid \"Emilio Herrera\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:296\nmsgid \"Ettore Atalan\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:298\nmsgid \"Hela Basa\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:300\n#: docs/virt-v2v-release-notes-2.4.pod:177\nmsgid \"Jan Kuparinen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:304\nmsgid \"Marcin Stanclik\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:308\n#: docs/virt-v2v-release-notes-2.4.pod:183\nmsgid \"Pavel Borecki\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:310\n#: docs/virt-v2v-release-notes-2.4.pod:185\nmsgid \"Piotr Drąg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:316\n#: docs/virt-v2v-release-notes-2.4.pod:191\nmsgid \"Temuri Doghonadze\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.2.pod:318\nmsgid \"Tim Kent\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.4\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.4>>.  This describes the \"\n\"major changes since 2.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:10\nmsgid \"Virt-v2v 2.4.0 was released on S<B<5 January 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:20\nmsgid \"\"\n\"New I<--block-driver> option which can be used to choose to install either \"\n\"virtio-blk or virtio-scsi drivers (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:23\nmsgid \"\"\n\"The virt-v2v I<--key> option now recognizes LVM names like F</dev/mapper/\"\n\"rhel_bootp--73--75--123-root> (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:26\nmsgid \"\"\n\"The I<--key> option also supports a new S<I<--key all:...>> selector to try \"\n\"the same key on all devices.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:31\nmsgid \"Support for RHEL 3 conversions has been removed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:35\nmsgid \"\"\n\"Conversions now set the C<host-model> CPU in the output metadata, except \"\n\"where the source hypervisor overrides this.  The exception is I<-o qemu> \"\n\"mode which uses I<-cpu host>.  (Thanks Ming Xie, Laszlo Ersek, Dr. David \"\n\"Alan Gilbert, Daniel Berrangé)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:40\nmsgid \"\"\n\"virt-v2v will now look for bootloader configuration in F</boot/grub/\"\n\"grub.cfg> for UEFI guests (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:43\nmsgid \"\"\n\"Invoke pnputil (if available) to install drivers, fixing some Windows \"\n\"conversions (Andrey Drobyshev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:46\nmsgid \"\"\n\"Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:49\nmsgid \"\"\n\"Several output modes now generate metadata to indicate whether the guest \"\n\"requires the RTC to be set to UTC (Linux) or localtime (most Windows).  For \"\n\"example with I<-o libvirt> this generates S<E<lt>clock offset=\\\"utc|\"\n\"localtime\\\"/E<gt>>.  (Thanks Lee Garrett, Laszlo Ersek)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:55\nmsgid \"\"\n\"I<-i ova> mode is now less strict about parsing the manifest file, which \"\n\"helps when converting some non-conforming OVA files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:58\nmsgid \"\"\n\"Input modes using I<-it ssh> now use the correct quoting (thanks Bill \"\n\"Sanders, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:61\nmsgid \"\"\n\"I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user \"\n\"confusion (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:64\nmsgid \"\"\n\"Multiple fixes to I<-o kubevirt> mode.  Also implement I<-oo compressed> for \"\n\"this mode.  (Thanks Xiaodai Wang, Ming Xie)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:67\nmsgid \"I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:69\nmsgid \"\"\n\"I<-o openstack> documentation for cloud configurations fixed (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:72\nmsgid \"\"\n\"I<-o rhv-upload> mode has an improved error when the I<-os> parameter is \"\n\"invalid or missing (thanks Junqin Zhou).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:77\nmsgid \"\"\n\"Support for OCaml 5, and OCaml E<ge> 4.07 is now the minimum (thanks \"\n\"Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, \"\n\"Vincent Laviron).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:81\nmsgid \"\"\n\"Fix several tests so they can handle the case where the operating system \"\n\"does not support btrfs or NTFS, instead of failing (Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:85\nmsgid \"Fix compatibility issues with libxml2 2.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:89\nmsgid \"Fix an off-by-one error which caused very rare crashes in virt-v2v.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:95\nmsgid \"https_proxy= ./bugs-in-changelog.sh v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:101\nmsgid \"L<https://bugzilla.redhat.com/2182024>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:103\nmsgid \"improve UX when running as root and we can't chown v2v tmpdir or socks\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:105\nmsgid \"L<https://bugzilla.redhat.com/2175703>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:107\nmsgid \"\"\n\"virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-\"\n\"core subpackage split\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:110\nmsgid \"L<https://bugzilla.redhat.com/2172075>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:112\nmsgid \"\"\n\"Modify virt-v2v-output-openstack man page to add cloud.yaml related \"\n\"information\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:115\nmsgid \"L<https://bugzilla.redhat.com/2168506>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:117\nmsgid \"\"\n\"RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel \"\n\"boot--73--75--123-root' in related keys option\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:120\nmsgid \"L<https://bugzilla.redhat.com/2168082>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:122\nmsgid \"\"\n\"win11/2022 failed to start into OS after converting to local libvirt via \"\n\"virt-v2v on AMD EPYC-Milan CPU model host\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:125\nmsgid \"L<https://bugzilla.redhat.com/2166619>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:127\nmsgid \"\"\n\"kernel panic when booting into OS with rocky9 guest converted by v2v to \"\n\"local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:130\nmsgid \"L<https://bugzilla.redhat.com/2166618>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:132\nmsgid \"\"\n\"There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 \"\n\"x86_64 when convert rocky guests to local libvirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:135\nmsgid \"L<https://bugzilla.redhat.com/2162444>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:137\nmsgid \"Enable '--oo compressed' for -o kubevirt\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:139\nmsgid \"L<https://bugzilla.redhat.com/2162332>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:141\nmsgid \"\"\n\"-o kubevirt mode must rename guest to comply with KubeVirt requirements: \"\n\"metadata.name: Invalid value: \\\"esx8.0-rhel8.8-x86_64\\\": a lowercase RFC \"\n\"1123 subdomain must consist of lower case alphanumeric characters, '-' or \"\n\"'.', and must start and end with an a\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:146\nmsgid \"L<https://bugzilla.redhat.com/1986386>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:148\nmsgid \"\"\n\"Improve error message when converting to rhv using the wrong data domain \"\n\"name which has a specific character\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:159\nmsgid \"Authors of virt-v2v 2.4:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:163\nmsgid \"git shortlog -s v2.2.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:173\nmsgid \"grimst\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:175\nmsgid \"HATAYAMA Daisuke\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.4.pod:179\nmsgid \"Jürgen Hötzel\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.4.pod:189 docs/virt-v2v.pod:1971\n#: in-place/virt-v2v-in-place.pod:393 inspector/virt-v2v-inspector.pod:255\n#: open/virt-v2v-open.pod:167\nmsgid \"Roman Kagan\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.6\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.6>>.  This describes the \"\n\"major changes since 2.4.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:10\nmsgid \"Virt-v2v 2.6.0 was released on S<B<8 October 2024>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:20\nmsgid \"\"\n\"You can now use most L<virt-customize(1)> options, such as installing \"\n\"arbitrary firstboot scripts, uploading or editing files, etc. during \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:24\nmsgid \"\"\n\"Installation of QEMU Guest Agent in Windows guests has been revised and made \"\n\"much more reliable.  Note that a visible effect of this change is that \"\n\"Windows guests may reboot four or more times during the first boot after \"\n\"conversion (which is necessary).  (Thanks Vadim Rozenfeld, Konstantin \"\n\"Kostiuk, Yuri Benditovich, Yan Vugenfirer).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:30\nmsgid \"\"\n\"We now forcibly online all virtio disks during firstboot, working around a \"\n\"security mitigation in recent versions of Windows that offlines them if they \"\n\"change bus (Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:34\nmsgid \"\"\n\"QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on \"\n\"the virtio-win ISO.  This improves statistics gathering for these guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:38\nmsgid \"Add support for Circle Linux (Bella Zhang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:40\nmsgid \"Add some support for LoongArch guests (liuxiang).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:50\nmsgid \"\"\n\"I<-i ova> mode now uses the detected guest firmware, if it's not specified \"\n\"in the OVA metadata (Bella Khizgiyaev).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:53\nmsgid \"\"\n\"I<-o kubevirt> output mode has been substantially changed to fix multiple \"\n\"problems.  It should be more compatible with real KubeVirt instances now.  \"\n\"(Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:58\nmsgid \"\"\n\"I<-o libvirt> mode now includes an E<lt>os firmwareE<gt> attribute \"\n\"specifying whether the guest needs BIOS or UEFI to boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:61\nmsgid \"\"\n\"The output of L<virt-v2v-inspector(1)> has been revised, with much more \"\n\"metadata available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:64\nmsgid \"\"\n\"The I<--mac> option now allows the gateway and network mask length to be \"\n\"empty (Arik Hadas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:67\nmsgid \"\"\n\"The debug output of virt-v2v has been improved.  Now when searching the log \"\n\"for important events, you can just use the regular expression C</^info:/>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:73\nmsgid \"\"\n\"We no longer require external ssh/scp commands for input mode I<-i vmx>.  \"\n\"Instead we use L<nbdkit-ssh-plugin(1)> (this is not a new requirement as it \"\n\"is already being used for file transfer).  This makes remote file detection \"\n\"more predictable, and also allows the I<-ip> option to be used to specify a \"\n\"password.  (Thanks Ming Xie, Laszlo Ersek).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:80\nmsgid \"\"\n\"OCaml bytecode compilation now outputs the whole exe to make it more \"\n\"resistant to being stripped (Jerry James).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:83\nmsgid \"\"\n\"Multiple test files which were copied over from libguestfs but not actually \"\n\"used by virt-v2v tests have been deleted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:88\nmsgid \"Added a test for I<-o kubevirt> mode.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:94\nmsgid \"./bugs-in-changelog.sh v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:104\nmsgid \"L<https://issues.redhat.com/browse/RHEL-21365>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:106\nmsgid \"\"\n\"Exact string (including the literal *) should be used when converting guest \"\n\"via vmx by v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:109\nmsgid \"L<https://issues.redhat.com/browse/RHEL-28197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:111\nmsgid \"Missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:113\nmsgid \"L<https://issues.redhat.com/browse/RHEL-33699>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:115\nmsgid \"Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:117\nmsgid \"L<https://issues.redhat.com/browse/RHEL-36591>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:119\nmsgid \"\"\n\"Migrated Windows VMs require the BLNSVR.exe service to be installed for \"\n\"accurate memory reporting\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:122\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45527>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:124\nmsgid \"\"\n\"Re-add the info about non-interactive authentication back into virt-v2v-\"\n\"input-xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:127\nmsgid \"L<https://issues.redhat.com/browse/RHEL-45992>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:129\nmsgid \"Missing OS info for kubevirt output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:131\nmsgid \"L<https://issues.redhat.com/browse/RHEL-49761>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:133\nmsgid \"\"\n\"qemu-guest-agent not being installed at first boot in Windows Server 2022\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:135\nmsgid \"L<https://issues.redhat.com/browse/RHEL-50731>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:137\nmsgid \"Allow --mac gw and len fields to be optional\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:139\nmsgid \"L<https://issues.redhat.com/browse/RHEL-51169>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:141\nmsgid \"\"\n\"Uninstalling vmware-tools from windows guest sometimes fails with exit code \"\n\"1618 or exit code 1603\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:144\nmsgid \"L<https://issues.redhat.com/browse/RHEL-53990>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:146\nmsgid \"network configuration script does not work for Windows 10 i386 guest\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:148\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55763>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:150\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.5]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:152\nmsgid \"L<https://issues.redhat.com/browse/RHEL-55837>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:154\nmsgid \"Re-enable Windows disks post-live migration [rhel-9.4.z]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:156\nmsgid \"L<https://issues.redhat.com/browse/RHEL-56784>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:158\nmsgid \"\"\n\"window version shows incorrect during converting win11 guest with build \"\n\"number 22631 by virt-v2v\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:161\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58065>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:163\nmsgid \"v2v: The -o kubevirt firmware is not compatible with kubevirt api\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:165\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/42>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:167\nmsgid \"rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:169\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/45>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:171\nmsgid \"virt-v2v missing firmware type for kubvirt and local output\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:173\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/46>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:175\nmsgid \"\"\n\"Clustername not working when on same Data Center, sharing same storage \"\n\"domains\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:186\nmsgid \"Authors of virt-v2v 2.6:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.6.pod:190\nmsgid \"git shortlog -s v2.4.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:196\nmsgid \"Andi Chandler\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:198\nmsgid \"Bella Khizgiyaev\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:200\nmsgid \"Bella Zhang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:202\nmsgid \"Jerry James\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:204\nmsgid \"liuxiang\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:210\nmsgid \"Schamane187\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.6.pod:212\nmsgid \"Thorsten Bolten\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:3\nmsgid \"virt-v2v-release-notes - virt-v2v release notes for 2.8\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:7\nmsgid \"\"\n\"These are the release notes for S<B<virt-v2v 2.8>>.  This describes the \"\n\"major changes since 2.6.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:10\nmsgid \"Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:20\nmsgid \"\"\n\"New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v source \"\n\"and run a user program on it.  For example L<virt-inspector(1)> or \"\n\"L<guestfish(1)> can be used to examine the source to discover what operating \"\n\"systems or files are present before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:25\nmsgid \"Windows Server 2025 is supported (thanks Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:27\nmsgid \"\"\n\"Two features have been added to enhance data integrity.  Firstly you can \"\n\"specify a C<E<lt>checksumE<gt>> field for each input disk (when importing \"\n\"from libvirt).  Virt-v2v will verify the checksum of the actual disk matches \"\n\"the expected checksum.  Secondly virt-v2v in debug mode now computes the \"\n\"blkhash (a type of checksum) of the converted disk and prints it out, \"\n\"allowing you to compare the blkhash with the final output.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:35\nmsgid \"\"\n\"The UEFI secureboot property is now modelled correctly, and (for outputs \"\n\"which support it) is reflected in the output metadata (thanks Daniel \"\n\"Berrange, Andrea Bolognani, Ming Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:39\nmsgid \"\"\n\"Parallel disk copies are now possible, using the I<--parallel=N> option.  \"\n\"The default behaviour is still to do serial copies.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:42\nmsgid \"\"\n\"L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the same \"\n\"output as L<virt-v2v-inspector(1)>, allowing callers to combine both passes \"\n\"into one.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:46\nmsgid \"\"\n\"Virtio-win driver selection has been made more robust.  It now selects the \"\n\"correct drivers to install in more cases, and avoids installing unnecessary \"\n\"debugging and SRIOV files.  Libosinfo is no longer used for this as the \"\n\"osinfo metadata used had grown out of date.  (Cole Robinson)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:52\nmsgid \"\"\n\"We now check filesystem integrity (using tools like L<fsck(8)>) before and \"\n\"after conversion, to ensure both that we fully understand the filesystem \"\n\"before conversion and that no corruption has happened during conversion.  At \"\n\"the moment this is only implemented for Btrfs, ext4 and XFS.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:60\nmsgid \"\"\n\"Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL 3 and \"\n\"RHEL 4 guests being converted from very ancient versions of Xen (Cole \"\n\"Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:64\nmsgid \"\"\n\"Some options that have been deprecated since 2018 and earlier were removed:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:69\nmsgid \"I<--compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:71\nmsgid \"Use I<-oo compressed> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:73\nmsgid \"I<--no-trim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:75\n#: docs/virt-v2v-release-notes-2.8.pod:95\nmsgid \"This did nothing.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:77\nmsgid \"I<--password-file>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:79\nmsgid \"Use I<--ip> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:81\nmsgid \"I<--qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:83\nmsgid \"Use I<-oo qemu-boot> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:85\nmsgid \"I<--vddk-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:87\nmsgid \"Use I<--io vddk-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:89\nmsgid \"I<--vdsm-*>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:91\nmsgid \"Use I<--oo vdsm-*> instead.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:93\nmsgid \"I<--vmtype>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:99\nmsgid \"\"\n\"The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-\"\n\"upload> and I<-o ovirt> respectively, although aliases for the other names \"\n\"remain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:105\nmsgid \"Update support page to cover RHEL 10 and Windows Server 2025.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:107\nmsgid \"\"\n\"When importing from libvirt sources, trim whitespace from around the \"\n\"C<E<lt>nameE<gt>> element, rather than creating a guest name containing that \"\n\"whitespace.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:111\nmsgid \"\"\n\"We no longer overwrite the EFI grub2 wrapper file (F</boot/efi/EFI/\"\n\"E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL E<ge> 9.0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:115\nmsgid \"\"\n\"When removing packages during conversion, use yum, apt, and similar tools so \"\n\"that dependencies are also removed (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:118\nmsgid \"\"\n\"When some rpm commands run in the context of the guest produced more than \"\n\"4MB of output, virt-v2v conversions would fail.  This has now been fixed \"\n\"(thanks Nijin Ashok).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:122\nmsgid \"Virt-v2v is now compatible with guests that use dnf5.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:124\nmsgid \"I<-i vmx> mode now supports importing guests with SATA-emulated disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:126\nmsgid \"\"\n\"Converting from a VMware snapshot is now possible, when using VDDK, using \"\n\"the I<io vddk-file=...> options (thanks Martin Necas).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:129\nmsgid \"\"\n\"Conversion failures when guest F</etc/resolv.conf> is immutable are common \"\n\"enough that we have now documented this problem in the manual (thanks Dan \"\n\"Clark).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:133\nmsgid \"\"\n\"Debug information now contains much more readable information about guest \"\n\"mountpoints, similar to the output of L<virt-df(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:136\nmsgid \"\"\n\"I<-o libvirt> mode no longer generates its own osinfo short IDs.  Instead we \"\n\"use the osinfo short IDs from libguestfs inspection (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:140\nmsgid \"\"\n\"Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming \"\n\"Xie).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:145\nmsgid \"\"\n\"json-c is now required.  This replaces Jansson which was previously used for \"\n\"parsing JSON input files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:148\nmsgid \"libguestfs E<ge> 1.56 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:150\nmsgid \"OCaml E<ge> 4.08 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:152\nmsgid \"libnbd E<ge> 1.14 is now required.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:154\nmsgid \"\"\n\"nbdkit E<ge> 1.28 is now required, although it is better to use more recent \"\n\"versions where possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:157\nmsgid \"OCaml oUnit is no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:159\nmsgid \"\"\n\"We now assume that C<__attribute__((cleanup))> always works.  This requires \"\n\"gcc or Clang.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:162\nmsgid \"\"\n\"The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been \"\n\"removed.  It was only needed for very old versions of nbdkit and Python.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:166\nmsgid \"Tests should no longer break if ntfs-3g is not supported by libguestfs.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:169\nmsgid \"Fix compatibility with GNU gettext 0.25.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:173\nmsgid \"\"\n\"The tests were modified to use a set of common functions and remove use of \"\n\"the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:177\nmsgid \"\"\n\"The way we generate the phony virtio-win drivers (for testing) has been \"\n\"simplified.  Also there are new regression tests to ensure that virt-v2v \"\n\"installs the correct set of driver files.  (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:181\nmsgid \"\"\n\"Phony Windows guests are now generated for several different versions of \"\n\"Windows, allowing more broad testing (Cole Robinson).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:184\nmsgid \"Some deprecated autoconf macros are no longer used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:186\nmsgid \"\"\n\"L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help \"\n\"performance now that we have switched to using L<nbdcopy(1)> (thanks Martin \"\n\"Kletzander).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:190\nmsgid \"\"\n\"With multi-disk guests, in some common cases we are now able to use a single \"\n\"L<nbdkit(1)> instance to read or write all disks, instead of needing to run \"\n\"an nbdkit instance per disk, which can greatly reduce the number of external \"\n\"processes that virt-v2v will run.  The performance and results should not be \"\n\"different.  To take full advantage of this you have to use nbdkit E<ge> 1.44.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:197\nmsgid \"\"\n\"Several typos and spelling mistakes in the documentation were fixed (thanks \"\n\"Eric Blake).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:200\nmsgid \"\"\n\"Duplicated code used to parse input (I<-i>) and output (I<-o>) options \"\n\"across the tools has been refactored in one place.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:203\nmsgid \"\"\n\"Some internal OCaml List and String functions that we used have been \"\n\"replaced by ones from the OCaml stdlib, reducing code maintenance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:210\nmsgid \"./bugs-in-changelog.sh v2.6.0..\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:212\nmsgid \"# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:218\nmsgid \"L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:220\nmsgid \"Document issues with upgrading Windows guests after conversion\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:222\nmsgid \"L<https://issues.redhat.com/browse/RHEL-32099>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:224\nmsgid \"\"\n\"Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:226\nmsgid \"L<https://issues.redhat.com/browse/RHEL-39077>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:228\nmsgid \"\"\n\"v2v can't convert the guest if info \\\"add_dracutmodules+=\\\" network-legacy \"\n\"\\\" is added to network-legacy.conf [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:231\nmsgid \"L<https://issues.redhat.com/browse/RHEL-58032>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:233\nmsgid \"v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:235\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65009>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:237\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 10.0]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:240\nmsgid \"L<https://issues.redhat.com/browse/RHEL-65010>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:242\nmsgid \"\"\n\"Can't find drivers from virtio-win for win2025 guests during v2v conversion \"\n\"[rhel 9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:245\nmsgid \"L<https://issues.redhat.com/browse/RHEL-66197>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:247\nmsgid \"\"\n\"[MTV] migration failed with module \\\"network-legacy\\\" configured in RHEL 8 \"\n\"guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:250\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67007>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:252\nmsgid \"[RFE] Add secureboot info in kubevirt output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:254\nmsgid \"L<https://issues.redhat.com/browse/RHEL-67836>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:256\nmsgid \"\"\n\"RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:259\nmsgid \"L<https://issues.redhat.com/browse/RHEL-71522>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:261\nmsgid \"\"\n\"Migration Plan / vddk pod cannot remove open-vm-tools in case of \"\n\"dependencies [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:264\nmsgid \"L<https://issues.redhat.com/browse/RHEL-77989>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:266\nmsgid \"CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:268\nmsgid \"L<https://issues.redhat.com/browse/RHEL-80080>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:270\nmsgid \"\"\n\"Converting a SUSE VM will fail if the kernel-source package is installed in \"\n\"the source VM\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:273\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85508>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:275\nmsgid \"\"\n\"Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:278\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85512>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:280\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:282\nmsgid \"L<https://issues.redhat.com/browse/RHEL-85514>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:284\nmsgid \"Print blkhash of converted image in virt-v2v debugging output [10.1]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:286\nmsgid \"L<https://issues.redhat.com/browse/RHEL-86022>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:288\nmsgid \"\"\n\"There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 \"\n\"[rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:291\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88543>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:293\nmsgid \"virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:295\nmsgid \"L<https://issues.redhat.com/browse/RHEL-88985>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:297\nmsgid \"Add possible roots to the virt-v2v-inspector output [rhel-9.7]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:299\nmsgid \"L<https://issues.redhat.com/browse/RHEL-70840>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:301\nmsgid \"\"\n\"v2v can't convert win11-efi-secure guest with vtpm: \\\"Activation of \"\n\"partially decrypted BITLK device is not supported\\\" [rhel-9.6]\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:304\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/79>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:306\nmsgid \"\"\n\"virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive \"\n\"before guestfs_launch\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:309\nmsgid \"L<https://github.com/libguestfs/virt-v2v/issues/86>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:311\nmsgid \"Rename RHV to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:321\nmsgid \"Authors of virt-v2v 2.8:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-release-notes-2.8.pod:325\nmsgid \"git shortlog -s v2.6.0..\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-release-notes-2.8.pod:333\nmsgid \"Krascovict Petrov\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:3\nmsgid \"\"\n\"virt-v2v-support - Supported hypervisors, virtualization management systems \"\n\"and guests in virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:8\nmsgid \"\"\n\"This page documents which foreign hypervisors, virtualization management \"\n\"systems and guest types that L<virt-v2v(1)> can support.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:11\nmsgid \"\"\n\"Note this page applies to upstream virt-v2v from L<http://libguestfs.org> \"\n\"and in downstream distributions of virt-v2v sometimes features are \"\n\"intentionally removed, or are present but not supported.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:16\nmsgid \"Hypervisors (Input)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:20\nmsgid \"VMware ESXi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:22\nmsgid \"Must be managed by VMware vCenter E<ge> 5.0 unless VDDK is available.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:24\nmsgid \"OVA exported from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:26\nmsgid \"OVAs from other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:28\nmsgid \"VMX from VMware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:30\nmsgid \"VMX files generated by other hypervisors will not work.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:32\nmsgid \"RHEL 5 Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:34\nmsgid \"SUSE Xen\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:36\nmsgid \"Citrix Xen\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:38\nmsgid \"Citrix Xen has not been recently tested.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:40\nmsgid \"Hyper-V\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:42\nmsgid \"\"\n\"Not recently tested.  Requires that you export the disk or use L<virt-\"\n\"p2v(1)> on Hyper-V.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:45\nmsgid \"Direct from disk images\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:47\nmsgid \"\"\n\"Only disk images exported from supported hypervisors, and using container \"\n\"formats supported by qemu.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:50\nmsgid \"Physical machines\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:52\nmsgid \"Using the L<virt-p2v(1)> tool.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:56\nmsgid \"Hypervisors (Output)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:58\nmsgid \"QEMU and KVM only.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:60\nmsgid \"Virtualization management systems (Output)\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:64\nmsgid \"OpenStack\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:66\nmsgid \"oVirt 4.1 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:68\nmsgid \"Local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:70\nmsgid \"And hence L<virsh(1)>, L<virt-manager(1)>, and similar tools.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:72\nmsgid \"Local disk\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:76\nmsgid \"Guests\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:80\nmsgid \"Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:82\nmsgid \"CentOS 4, 5, 6, 7, 8, 9, 10\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:84\nmsgid \"Scientific Linux 4, 5, 6, 7\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:86\nmsgid \"Oracle Linux\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:88\nmsgid \"Fedora\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:90\nmsgid \"SLES 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:92\nmsgid \"OpenSUSE 10 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:94\nmsgid \"ALT Linux 9 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:96\nmsgid \"Debian 6 and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:98\nmsgid \"Ubuntu 10.04, 12.04, 14.04, 16.04, and up\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:100\nmsgid \"Windows XP to Windows 11 / Windows Server 2025\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v-support.pod:104\nmsgid \"Guest firmware\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:106\nmsgid \"BIOS is supported for all guest types and hypervisors.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:108\nmsgid \"\"\n\"VMware allows you to present UEFI firmware to guests (instead of the \"\n\"ordinary PC BIOS).  Virt-v2v can convert these guests, but requires that \"\n\"UEFI is supported by the target hypervisor.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:112\nmsgid \"\"\n\"Currently KVM supports OVMF, an open source UEFI firmware, and can run these \"\n\"guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:115\nmsgid \"\"\n\"Since OVMF support was only recently added to KVM (in 2014/2015), not all \"\n\"target environments support UEFI guests yet:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:120\nmsgid \"UEFI on libvirt, qemu\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:122\nmsgid \"\"\n\"Supported.  Virt-v2v will generate the correct libvirt XML (metadata)  \"\n\"automatically, but note that the same version of OVMF must be installed on \"\n\"the conversion host as is installed on the target hypervisor, else you will \"\n\"have to adjust paths in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:127\nmsgid \"UEFI on OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:129\nmsgid \"Supported since virt-v2v E<ge> 1.43.2.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v-support.pod:131\nmsgid \"UEFI on oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:133\nmsgid \"Supported since oVirt E<ge> 4.2 and virt-v2v E<ge> 1.39.12.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v-support.pod:139\nmsgid \"L<virt-v2v(1)>, L<http://libguestfs.org>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:3\nmsgid \"virt-v2v - Convert a guest to use KVM\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [-i mode] [other -i* options]\\n\"\n\"          [-o mode] [other -o* options]\\n\"\n\"          [virt-customize options]\\n\"\n\"          [guest|filename]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:14\nmsgid \"\"\n\"Virt-v2v converts a single guest from a foreign hypervisor to run on KVM.  \"\n\"It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, \"\n\"yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM \"\n\"managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several \"\n\"other targets.  It can modify the guest to make it bootable on KVM and \"\n\"install virtio drivers so it will run quickly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:22\nmsgid \"\"\n\"There is also a companion front-end called L<virt-p2v(1)> which comes as an \"\n\"ISO, CD or PXE image that can be booted on physical machines to virtualize \"\n\"those machines (physical to virtual, or p2v).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:26\nmsgid \"\"\n\"To estimate the disk space needed before conversion, see L<virt-v2v-\"\n\"inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:29\nmsgid \"\"\n\"For in-place conversion, there is a separate tool called L<virt-v2v-in-\"\n\"place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:32\nmsgid \"Input and Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:34\nmsgid \"\"\n\"You normally run virt-v2v with several I<-i*> options controlling the input \"\n\"mode and also several I<-o*> options controlling the output mode.  In this \"\n\"sense, \\\"input\\\" refers to the source foreign hypervisor such as VMware, and \"\n\"\\\"output\\\" refers to the target KVM-based management system such as oVirt or \"\n\"OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:40\nmsgid \"\"\n\"The input and output sides of virt-v2v are separate and unrelated.  Virt-v2v \"\n\"can read from any input and write to any output.  Therefore these sides of \"\n\"virt-v2v are documented separately in this manual.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:44\nmsgid \"\"\n\"Virt-v2v normally copies from the input to the output, called \\\"copying \"\n\"mode\\\".  In this case the source guest is always left unchanged.  In-place \"\n\"conversions may be done using L<virt-v2v-in-place(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:48\nmsgid \"Customization\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:50\nmsgid \"\"\n\"Virt-v2v can also customize the guest during conversion, using the same \"\n\"options as L<virt-customize(1)>.  For example, injecting files using I<--\"\n\"upload>, or using I<--firstboot-script> to add additional script(s) to run \"\n\"at the first boot after conversion.  Read the virt-customize manual for more \"\n\"information on this topic.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:56\nmsgid \"Other virt-v2v topics\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:58\nmsgid \"\"\n\"L<virt-v2v-support(1)> — Supported hypervisors, virtualization management \"\n\"systems, guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:61\nmsgid \"L<virt-v2v-input-vmware(1)> — Input from VMware.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:63\nmsgid \"\"\n\"ifelse(ENABLE_XEN, yes, ` L<virt-v2v-input-xen(1)> — Input from Xen.  ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:67\nmsgid \"L<virt-v2v-output-local(1)> — Output to local files or local libvirt.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:69\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes,` L<virt-v2v-output-ovirt(1)> — Output to oVirt ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:73\nmsgid \"L<virt-v2v-output-openstack(1)> — Output to OpenStack.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:75\nmsgid \"L<virt-v2v-release-notes-1.42(1)> — Release notes for 1.42 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:77\nmsgid \"L<virt-v2v-release-notes-2.0(1)> — Release notes for 2.0 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:79\nmsgid \"L<virt-v2v-release-notes-2.2(1)> — Release notes for 2.2 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:81\nmsgid \"L<virt-v2v-release-notes-2.4(1)> — Release notes for 2.4 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:83\nmsgid \"L<virt-v2v-release-notes-2.6(1)> — Release notes for 2.6 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:85\nmsgid \"L<virt-v2v-release-notes-2.8(1)> — Release notes for 2.8 release.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:87\nmsgid \"L<virt-v2v-release-notes-2.10(1)> — Release notes for 2.10 release.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:89 in-place/virt-v2v-in-place.pod:59\nmsgid \"EXAMPLES\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:91\nmsgid \"Convert from VMware vCenter server to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:93\nmsgid \"\"\n\"You have a VMware vCenter server called C<vcenter.example.com>, a datacenter \"\n\"called C<Datacenter>, and an ESXi hypervisor called C<esxi>.  You want to \"\n\"convert a guest called C<vmware_guest> to run locally under libvirt.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:98\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:100\nmsgid \"\"\n\"In this case you will most likely have to run virt-v2v as C<root>, since it \"\n\"needs to talk to the system libvirt daemon and copy the guest disks to F</\"\n\"var/lib/libvirt/images>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:104\nmsgid \"For more information see L<virt-v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:106 docs/virt-v2v.pod:559 docs/virt-v2v.pod:593\n#: docs/virt-v2v.pod:677 docs/virt-v2v.pod:709 docs/virt-v2v.pod:1114\nmsgid \"ifelse(ENABLE_OVIRT, yes, `\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:108\nmsgid \"Convert from VMware to oVirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:110\nmsgid \"\"\n\"This is the same as the previous example, except you want to send the guest \"\n\"to an oVirt Data Domain using the oVirt REST API.  Guest network \"\n\"interface(s) are connected to the target network called C<ovirtmgmt>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:114\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \\\\\\n\"\n\"   -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \\\\\\n\"\n\"   -os ovirt-data -op /tmp/ovirt-admin-password -of raw \\\\\\n\"\n\"   -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:119\nmsgid \"In this case the host running virt-v2v acts as a B<conversion server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:121\nmsgid \"For more information see L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:124\nmsgid \"Convert from ESXi hypervisor over SSH to local libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:126\nmsgid \"\"\n\"You have an ESXi hypervisor called C<esxi.example.com> with SSH access \"\n\"enabled.  You want to convert from VMFS storage on that server to a local \"\n\"file.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:130\n#, no-wrap\nmsgid \"\"\n\" virt-v2v \\\\\\n\"\n\"   -i vmx -it ssh \\\\\\n\"\n\"   \\\"ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx\\\" \\\\\\n\"\n\"   -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:135\nmsgid \"The guest must not be running.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:137\nmsgid \"Virt-v2v does I<not> need to be run as root.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:139\nmsgid \"\"\n\"For more information about converting from VMX files see L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:142\nmsgid \"Convert disk image to OpenStack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:144\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v \"\n\"inside an OpenStack VM (called C<v2v-vm> below), and do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:148\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:150\nmsgid \"See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:152\nmsgid \"Convert disk image to disk image\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:154\nmsgid \"\"\n\"Given a disk image from another hypervisor that you want to convert to run \"\n\"on KVM, you have two options.  The simplest way is to try:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:159\nmsgid \"\"\n\"where virt-v2v guesses everything about the input F<disk.img> and (in this \"\n\"case) writes the converted result to F</var/tmp>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:162\nmsgid \"\"\n\"A more complex method is to write some L<libvirt XML|http://libvirt.org/\"\n\"formatdomain.html> describing the input guest (if you can get the source \"\n\"hypervisor to provide you with libvirt XML, then so much the better).  You \"\n\"can then do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:167\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:169\nmsgid \"\"\n\"Since F<guest-domain.xml> contains the path(s) to the guest disk image(s) \"\n\"you do not need to specify the name of the disk image on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:173\nmsgid \"\"\n\"To convert a local disk image and immediately boot it in local qemu, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:176\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:178 in-place/virt-v2v-in-place.pod:61\n#: inspector/virt-v2v-inspector.pod:129 open/virt-v2v-open.pod:69\nmsgid \"OPTIONS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:182 in-place/virt-v2v-in-place.pod:65\n#: inspector/virt-v2v-inspector.pod:133 open/virt-v2v-open.pod:73\nmsgid \"B<--help>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:184 in-place/virt-v2v-in-place.pod:67\n#: inspector/virt-v2v-inspector.pod:135 open/virt-v2v-open.pod:75\nmsgid \"Display help.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:186\nmsgid \"B<--bandwidth> bps\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:188\nmsgid \"B<--bandwidth-file> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:190\nmsgid \"\"\n\"Some input methods are able to limit the network bandwidth they will use \"\n\"statically or dynamically.  In the first variant this sets the bandwidth \"\n\"limit statically in bits per second.  Formats like C<10M> may be used \"\n\"(meaning 10 megabits per second).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:195\nmsgid \"\"\n\"In the second variant the bandwidth is limited dynamically from the content \"\n\"of the file (also in bits per second, in the same formats supported by the \"\n\"first variant).  You may use both parameters together, meaning: first limit \"\n\"to a static rate, then you can create the file while virt-v2v is running to \"\n\"adjust the rate dynamically.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:201\nmsgid \"This is only supported for:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:205 docs/virt-v2v.pod:1286\nmsgid \"ifelse(ENABLE_XEN, yes, `\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:209\nmsgid \"L<input from Xen|virt-v2v-input-xen(1)> ')\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:214\nmsgid \"\"\n\"L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX> when \"\n\"using the SSH transport method\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:219\nmsgid \"L<input from VDDK|virt-v2v-input-vmware(1)/INPUT FROM VDDK>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:223\nmsgid \"I<-i libvirtxml> when using HTTP or HTTPS disks\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:227\nmsgid \"\"\n\"L<input from VMware vCenter server|virt-v2v-input-vmware(1)/INPUT FROM \"\n\"VMWARE VCENTER SERVER>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:231\nmsgid \"The options are silently ignored for other input methods.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:233 in-place/virt-v2v-in-place.pod:69\n#: inspector/virt-v2v-inspector.pod:177\nmsgid \"B<-b> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:235 in-place/virt-v2v-in-place.pod:71\n#: inspector/virt-v2v-inspector.pod:179\nmsgid \"B<--bridge> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:237 in-place/virt-v2v-in-place.pod:73\nmsgid \"See I<--network> below.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:239 in-place/virt-v2v-in-place.pod:75\nmsgid \"ifelse(ENABLE_BLOCK_DRIVER, yes, `\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:241 in-place/virt-v2v-in-place.pod:77\nmsgid \"B<--block-driver> B<virtio-blk>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:243 in-place/virt-v2v-in-place.pod:79\nmsgid \"B<--block-driver> B<virtio-scsi>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:245 in-place/virt-v2v-in-place.pod:81\nmsgid \"\"\n\"When choosing a block driver for Windows guests, prefer C<virtio-blk> or \"\n\"C<virtio-scsi>.  The default is C<virtio-blk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:248 in-place/virt-v2v-in-place.pod:84\nmsgid \"\"\n\"Note this has no effect for Linux guests at the moment.  That may be added \"\n\"in future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:252 in-place/virt-v2v-in-place.pod:88\n#: inspector/virt-v2v-inspector.pod:181 open/virt-v2v-open.pod:108\nmsgid \"B<--colors>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:254 in-place/virt-v2v-in-place.pod:90\n#: inspector/virt-v2v-inspector.pod:183 open/virt-v2v-open.pod:110\nmsgid \"B<--colours>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:256 in-place/virt-v2v-in-place.pod:92\nmsgid \"\"\n\"Use ANSI colour sequences to colourize messages.  This is the default when \"\n\"the output is a tty.  If the output of the program is redirected to a file, \"\n\"ANSI colour sequences are disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:261 in-place/virt-v2v-in-place.pod:97\n#: inspector/virt-v2v-inspector.pod:185\nmsgid \"B<--echo-keys>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:263 in-place/virt-v2v-in-place.pod:99\nmsgid \"\"\n\"When prompting for keys and passphrases, virt-v2v normally turns echoing off \"\n\"so you cannot see what you are typing.  If you are not worried about Tempest \"\n\"attacks and there is no one else in the room you can specify this flag to \"\n\"see what you are typing.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:268 in-place/virt-v2v-in-place.pod:104\nmsgid \"\"\n\"Note this options only applies to keys and passphrases for encrypted devices \"\n\"and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:272 in-place/virt-v2v-in-place.pod:108\nmsgid \"B<-i> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:274 in-place/virt-v2v-in-place.pod:110\nmsgid \"Set the input method to I<disk>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:276 in-place/virt-v2v-in-place.pod:112\nmsgid \"\"\n\"In this mode you can read a virtual machine disk image with no metadata.  \"\n\"virt-v2v tries to guess the best default metadata.  This is usually adequate \"\n\"but you can get finer control (eg. of memory and vCPUs) by using I<-i \"\n\"libvirtxml> instead.  Only guests that use a single disk can be imported \"\n\"this way.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:282 in-place/virt-v2v-in-place.pod:118\nmsgid \"B<-i> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:284 in-place/virt-v2v-in-place.pod:120\nmsgid \"Set the input method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:286 in-place/virt-v2v-in-place.pod:122\nmsgid \"\"\n\"In this mode you have to specify a libvirt guest name or UUID on the command \"\n\"line.  You may also specify a libvirt connection URI (see I<-ic>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:290\nmsgid \"See L</Starting the libvirt system instance> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:292 in-place/virt-v2v-in-place.pod:126\nmsgid \"B<-i> B<libvirtxml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:294 in-place/virt-v2v-in-place.pod:128\nmsgid \"Set the input method to I<libvirtxml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:296 in-place/virt-v2v-in-place.pod:130\nmsgid \"\"\n\"In this mode you have to pass a libvirt XML file on the command line.  This \"\n\"file is read in order to get metadata about the source guest (such as its \"\n\"name, amount of memory), and also to locate the input disks.  See L</Minimal \"\n\"XML for -i libvirtxml option> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:301 in-place/virt-v2v-in-place.pod:135\nmsgid \"B<-i> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:303 in-place/virt-v2v-in-place.pod:137\nmsgid \"This is the same as I<-i disk>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:305\nmsgid \"B<-i> B<ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:307\nmsgid \"Set the input method to I<ova>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:309\nmsgid \"\"\n\"In this mode you can read a VMware ova file.  Virt-v2v will read the ova \"\n\"manifest file and check the vmdk volumes for validity (checksums)  as well \"\n\"as analyzing the ovf file, and then convert the guest.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:314\nmsgid \"B<-i> B<vmx>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:316\nmsgid \"Set the input method to I<vmx>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:318\nmsgid \"\"\n\"In this mode you can read a VMware vmx file directly or over SSH.  This is \"\n\"useful when VMware VMs are stored on an NFS server which you can mount \"\n\"directly, or where you have access by SSH to an ESXi hypervisor.  See L<virt-\"\n\"v2v-input-vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:323 in-place/virt-v2v-in-place.pod:139\nmsgid \"B<-ic> libvirtURI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:325 in-place/virt-v2v-in-place.pod:141\nmsgid \"\"\n\"Specify a libvirt connection URI to use when reading the guest.  This is \"\n\"only used when S<I<-i libvirt>>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:328\nmsgid \"\"\n\"Only local libvirt connections, or VMware vCenter connections \"\n\"ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections')  can be used.  \"\n\"Other remote libvirt connections will not work in general.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:333\nmsgid \"\"\n\"See also: L<virt-v2v-input-vmware(1)> ifelse(ENABLE_XEN, yes, `, L<virt-v2v-\"\n\"input-xen(1)>')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:336 in-place/virt-v2v-in-place.pod:146\nmsgid \"B<-if> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:338 in-place/virt-v2v-in-place.pod:148\nmsgid \"\"\n\"For I<-i disk> only, this specifies the format of the input disk image.  For \"\n\"other input methods you should specify the input format in the metadata.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:342 in-place/virt-v2v-in-place.pod:152\nmsgid \"B<-io> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:344 in-place/virt-v2v-in-place.pod:154\nmsgid \"\"\n\"Set input option(s) related to the current input mode or transport.  To \"\n\"display short help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:347\n#, no-wrap\nmsgid \"\"\n\" virt-v2v -it vddk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:349\nmsgid \"B<-io vddk-libdir=>LIBDIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:351\nmsgid \"\"\n\"Set the VDDK library directory.  This directory should I<contain> \"\n\"subdirectories called F<include>, F<lib64> etc., but do not include F<lib64> \"\n\"actually in the parameter.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:355\nmsgid \"\"\n\"In most cases this parameter is required when using the I<-it vddk> (VDDK) \"\n\"transport.  See L<virt-v2v-input-vmware(1)> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:358\nmsgid \"B<-io vddk-thumbprint=>xx:xx:xx:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:360\nmsgid \"Set the thumbprint of the remote VMware server.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:362\nmsgid \"See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:364\nmsgid \"B<-io vddk-compression=>COMPRESSION\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:366\nmsgid \"B<-io vddk-config=>FILENAME\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:368\nmsgid \"B<-io vddk-cookie=>COOKIE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:370\nmsgid \"B<-io vddk-file=>FILE\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:372\nmsgid \"B<-io vddk-nfchostport=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:374\nmsgid \"B<-io vddk-port=>PORT\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:376\nmsgid \"B<-io vddk-snapshot=>SNAPSHOT-MOREF\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:378\nmsgid \"B<-io vddk-transports=>MODE:MODE:...\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:380\nmsgid \"\"\n\"When using VDDK mode, these options are passed unmodified to the \"\n\"L<nbdkit(1)> VDDK plugin.  Please refer to L<nbdkit-vddk-plugin(1)>.  Do not \"\n\"use these options unless you know what you are doing.  These are all \"\n\"optional.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:385 in-place/virt-v2v-in-place.pod:159\nmsgid \"B<-ip> filename\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:387\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:393\nmsgid \"B<-it> B<ssh>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:395\nmsgid \"\"\n\"When using I<-i vmx>, this enables the ssh transport.  See L<virt-v2v-input-\"\n\"vmware(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:398\nmsgid \"B<-it> B<vddk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:400\nmsgid \"\"\n\"Use VMware VDDK as a transport to copy the input disks.  See L<virt-v2v-\"\n\"input-vmware(1)>.  If you use this parameter then you may need to use other \"\n\"I<-io vddk*> options to specify how to connect through VDDK.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:405 in-place/virt-v2v-in-place.pod:167\nmsgid \"__INCLUDE:key-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:407 in-place/virt-v2v-in-place.pod:169\nmsgid \"__INCLUDE:keys-from-stdin-option.pod__\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:409 in-place/virt-v2v-in-place.pod:171\nmsgid \"\"\n\"Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted \"\n\"devices and partitions, not for passwords used to connect to remote servers.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:413 in-place/virt-v2v-in-place.pod:175\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:415 in-place/virt-v2v-in-place.pod:177\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:417 in-place/virt-v2v-in-place.pod:179\nmsgid \"Map source NIC MAC address to a network or bridge.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:419 docs/virt-v2v.pod:477\nmsgid \"See L</Networks and bridges> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:421 in-place/virt-v2v-in-place.pod:183\nmsgid \"B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]]\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:423 in-place/virt-v2v-in-place.pod:185\nmsgid \"\"\n\"Force a particular interface (controlled by its MAC address) to have a \"\n\"static IP address after boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:426\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the optional subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:431 in-place/virt-v2v-in-place.pod:193\nmsgid \"This option can be supplied zero or more times.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:433 in-place/virt-v2v-in-place.pod:195\nmsgid \"\"\n\"You only need to use this option for certain broken guests such as Windows \"\n\"which are unable to preserve MAC to static IP address mappings \"\n\"automatically.  You don't need to use it if Windows is using DHCP.  It is \"\n\"currently ignored for Linux guests since they do not have this problem.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:439 in-place/virt-v2v-in-place.pod:201\n#: inspector/virt-v2v-inspector.pod:193 open/virt-v2v-open.pod:112\nmsgid \"B<--machine-readable>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:441 in-place/virt-v2v-in-place.pod:203\n#: inspector/virt-v2v-inspector.pod:195 open/virt-v2v-open.pod:114\nmsgid \"B<--machine-readable>=format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:443\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L</Machine readable output> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:447 in-place/virt-v2v-in-place.pod:209\n#: inspector/virt-v2v-inspector.pod:197\nmsgid \"B<-m> MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:449 in-place/virt-v2v-in-place.pod:211\n#: inspector/virt-v2v-inspector.pod:199\nmsgid \"B<--memsize> MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:451\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.  Increase this if you see that the \"\n\"conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:455\nmsgid \"See also L</Adjusting memory available for conversion>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:457 in-place/virt-v2v-in-place.pod:217\nmsgid \"B<-n> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:459 in-place/virt-v2v-in-place.pod:219\nmsgid \"B<-n> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:461 in-place/virt-v2v-in-place.pod:221\nmsgid \"B<--network> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:463 in-place/virt-v2v-in-place.pod:223\nmsgid \"B<--network> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:465 in-place/virt-v2v-in-place.pod:225\nmsgid \"B<-b> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:467 in-place/virt-v2v-in-place.pod:227\nmsgid \"B<-b> out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:469 in-place/virt-v2v-in-place.pod:229\nmsgid \"B<--bridge> in:out\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:471 in-place/virt-v2v-in-place.pod:231\nmsgid \"B<--bridge> out\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:473 in-place/virt-v2v-in-place.pod:233\nmsgid \"\"\n\"Map network (or bridge) called C<in> to network (or bridge) called C<out>.  \"\n\"If no C<in:> prefix is given, all other networks (or bridges)  are mapped to \"\n\"C<out>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:479 in-place/virt-v2v-in-place.pod:239\n#: inspector/virt-v2v-inspector.pod:205\nmsgid \"B<--no-fstrim>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:481\nmsgid \"Do not trim the filesystem.  See L</Trimming> below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:483\nmsgid \"B<-o> B<disk>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:485\nmsgid \"This is the same as I<-o local>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:489\nmsgid \"B<-o> B<glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:491\nmsgid \"\"\n\"This is a legacy option.  You should probably use I<-o openstack> instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:494\nmsgid \"\"\n\"Set the output method to OpenStack Glance.  In this mode the converted guest \"\n\"is uploaded to Glance.  See L<virt-v2v-output-openstack(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:498\nmsgid \"B<-o> B<kubevirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:500\nmsgid \"\"\n\"Set the output method to I<kubevirt>.  B<Note the way this mode works is \"\n\"experimental and will change in future.>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:503\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:506\nmsgid \"By default the converted guest’s disks are written to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:508 docs/virt-v2v.pod:538\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda\\n\"\n\" /dir/name-sdb\\n\"\n\" [etc]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:512\nmsgid \"and guest metadata is created in the associated YAML file:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:514\n#, no-wrap\nmsgid \"\"\n\" /dir/name.yaml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:516 docs/virt-v2v.pod:546\nmsgid \"where C<name> is the guest name.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:518\nmsgid \"You can override the disk paths by using I<-oo disk=...> option(s).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:520\nmsgid \"B<-o> B<libvirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:522\nmsgid \"Set the output method to I<libvirt>.  This is the default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:524\nmsgid \"\"\n\"In this mode, the converted guest is created as a libvirt guest.  You may \"\n\"also specify a libvirt connection URI (see I<-oc>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:527\nmsgid \"\"\n\"See L</Starting the libvirt system instance> below, and L<virt-v2v-output-\"\n\"local(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:530\nmsgid \"B<-o> B<local>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:532\nmsgid \"Set the output method to I<local>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:534\nmsgid \"\"\n\"In this mode, the converted guest is written to a local directory specified \"\n\"by I<-os /dir> (the directory must exist).  The converted guest’s disks are \"\n\"written as:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:542\nmsgid \"and a libvirt XML file is created containing guest metadata:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:544\n#, no-wrap\nmsgid \"\"\n\" /dir/name.xml\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:548\nmsgid \"B<-o> B<null>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:550\nmsgid \"Set the output method to I<null>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:552\nmsgid \"\"\n\"The guest is converted and copied but the results are thrown away and no \"\n\"metadata is written.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:555\nmsgid \"B<-o> B<openstack>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:557\nmsgid \"\"\n\"Set the output method to OpenStack.  See L<virt-v2v-output-openstack(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:561\nmsgid \"B<-o> B<ovirt>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:563\nmsgid \"Set the output method to I<ovirt>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:565\nmsgid \"\"\n\"The converted guest is written to an oVirt Export Storage Domain.  The I<-\"\n\"os> parameter must also be used to specify the location of the Export \"\n\"Storage Domain.  Note this does not actually import the guest into oVirt.  \"\n\"You have to do that manually later using the UI.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:570\nmsgid \"See L<virt-v2v-output-ovirt(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:572\nmsgid \"B<-o> B<ovirt-upload>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:574\nmsgid \"Set the output method to I<ovirt-upload>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:576\nmsgid \"\"\n\"The converted guest is written directly to an oVirt Data Domain.  This is a \"\n\"faster method than I<-o ovirt>, but requires oVirt E<ge> 4.2.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:579\nmsgid \"See L<virt-v2v-output-ovirt(1)>.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:582\nmsgid \"B<-o> B<qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:584\nmsgid \"Set the output method to I<qemu>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:586\nmsgid \"\"\n\"This is similar to I<-o local>, except that a shell script is written which \"\n\"you can use to boot the guest in qemu.  The converted disks and shell script \"\n\"are written to the directory specified by I<-os>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:590\nmsgid \"\"\n\"When using this output mode, you can also specify the I<-oo qemu-boot> \"\n\"option which boots the guest under qemu immediately.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:595\nmsgid \"B<-o> B<vdsm>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:597\nmsgid \"Set the output method to I<vdsm>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:599\nmsgid \"\"\n\"This mode is similar to I<-o ovirt>, but the full path to the data domain \"\n\"must be given: F</ovirt/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-\"\n\"domain-uuidE<gt>>.  This mode is only used when virt-v2v runs under VDSM \"\n\"control.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:605\nmsgid \"B<-oa> B<sparse>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:607\nmsgid \"B<-oa> B<preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:609\nmsgid \"Set the output file allocation mode.  The default is C<sparse>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:611\nmsgid \"B<-oc> URI\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:613\nmsgid \"Specify a connection URI to use when writing the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:615\nmsgid \"\"\n\"For S<I<-o libvirt>> this is the libvirt URI.  Only local libvirt \"\n\"connections can be used.  Remote libvirt connections will not work.  See \"\n\"L<virt-v2v-output-local(1)> for further information.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:619\nmsgid \"B<-of> format\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:621\nmsgid \"When converting the guest, convert the disks to the given format.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:623\nmsgid \"If not specified, then the input format is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:625\nmsgid \"B<-on> name\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:627\nmsgid \"\"\n\"Rename the guest when converting it.  If this option is not used then the \"\n\"output name is the same as the input name.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:630\nmsgid \"B<-oo> OPTION=VALUE\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:632\nmsgid \"\"\n\"Set output option(s) related to the current output mode.  To display short \"\n\"help on what options are available you can use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:635\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v -o libvirt -oo \\\"?\\\"\\n\"\n\" Output options that can be used with -o libvirt:\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:638\n#, no-wrap\nmsgid \"\"\n\"  -oo compressed      Compress the output file (used only with\\n\"\n\"                      -of qcow2)\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:641\nmsgid \"B<-oo compressed>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:643\nmsgid \"\"\n\"For outputs which support qcow2 format (I<-of qcow2>), this writes a \"\n\"compressed qcow2 file.  It is the equivalent to the I<-c> option of L<qemu-\"\n\"img(1)>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:647\nmsgid \"B<-oo create=false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:649\nmsgid \"\"\n\"For I<-o kubevirt>, indicate that another management process will create the \"\n\"output disks, so do not (re-)create them in virt-v2v.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:652\nmsgid \"B<-oo disk=>DISK\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:654\nmsgid \"\"\n\"For I<-o kubevirt> this overrides the path to each output disk, instead of \"\n\"using the default which is C<DISK-sda> etc in the output storage (I<-os>) \"\n\"path.  If you use this option at all, you must repeat it once for each guest \"\n\"disk.  If you don't use it, then the default method of putting disks in the \"\n\"output storage path is used.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:660\nmsgid \"B<-oo guest-id=>C<ID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:662\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID \"\n\"which is saved on each Cinder volume in the C<virt_v2v_guest_id> volume \"\n\"property.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:666\nmsgid \"B<-oo qemu-boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:668\nmsgid \"\"\n\"When using I<-o qemu> only, this boots the guest immediately after virt-v2v \"\n\"finishes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:671\nmsgid \"B<-oo os->*B<=>*\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:673\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional \"\n\"OpenStack authentication.  For example I<-oo os-username=>NAME is equivalent \"\n\"to C<openstack --os-username=NAME>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:679\nmsgid \"B<-oo ovirt-cafile=>F<ca.pem>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:681\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, the F<ca.pem> \"\n\"file (Certificate Authority), copied from F</etc/pki/ovirt-engine/ca.pem> on \"\n\"the oVirt engine.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:685\nmsgid \"B<-oo ovirt-cluster=>C<CLUSTERNAME>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:687\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, set the oVirt \"\n\"Cluster Name.  If not given it uses C<Default>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:690\nmsgid \"B<-oo ovirt-proxy>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:692\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, proxy the upload \"\n\"through oVirt Engine.  This is slower than uploading directly to the oVirt \"\n\"node but may be necessary if you do not have direct network access to the \"\n\"nodes.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:697\nmsgid \"B<-oo ovirt-verifypeer>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:699\nmsgid \"\"\n\"For I<-o ovirt-upload> (L<virt-v2v-output-ovirt(1)>) only, verify the oVirt \"\n\"server’s identity by checking the server‘s certificate against the \"\n\"Certificate Authority.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:704\nmsgid \"B<-oo server-id=>C<NAME|UUID>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:706\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set the name of \"\n\"the conversion appliance where virt-v2v is running.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:711\nmsgid \"B<-oo vdsm-compat=0.10>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:713\nmsgid \"B<-oo vdsm-compat=1.1>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:715\nmsgid \"\"\n\"If I<-o vdsm> and the output format is qcow2, then we add the qcow2 \"\n\"I<compat=0.10> option to the output file for compatibility with RHEL 6 (see \"\n\"L<https://bugzilla.redhat.com/1145582>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:719\nmsgid \"\"\n\"If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I<compat=1.1>)  files \"\n\"are generated instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:722\nmsgid \"\"\n\"Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-\"\n\"oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that \"\n\"everyone is using a modern version of qemu).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:726\nmsgid \"\"\n\"B<Note this option only affects I<-o vdsm> output>.  All other output modes \"\n\"(including I<-o ovirt>) generate modern qcow2 I<compat=1.1> files, always.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:730\nmsgid \"\"\n\"If this option is available, then C<vdsm-compat-option> will appear in the \"\n\"I<--machine-readable> output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:733\nmsgid \"B<-oo vdsm-image-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:735\nmsgid \"B<-oo vdsm-vol-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:737\nmsgid \"B<-oo vdsm-vm-uuid=>UUID\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:739\nmsgid \"B<-oo vdsm-ovf-output=>DIR\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:741\nmsgid \"\"\n\"Normally the oVirt output mode chooses random UUIDs for the target guest.  \"\n\"However VDSM needs to control the UUIDs and passes these parameters when \"\n\"virt-v2v runs under VDSM control.  The parameters control:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:750\nmsgid \"\"\n\"the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option \"\n\"is passed once for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:755\nmsgid \"\"\n\"UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once \"\n\"for each guest disk)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:760\nmsgid \"the OVF file name (I<-oo vdsm-vm-uuid>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:764\nmsgid \"\"\n\"the OVF output directory (default current directory) (I<-oo vdsm-ovf-\"\n\"output>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:768\nmsgid \"\"\n\"The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex \"\n\"digit can be C<0-9> or C<a-f>), conforming to S<OSF DCE 1.1>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:771\nmsgid \"These options can only be used with I<-o vdsm>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:773\nmsgid \"B<-oo vdsm-ovf-flavour=>flavour\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:775\nmsgid \"\"\n\"This option controls the format of the OVF generated at the end of \"\n\"conversion.  Currently there are two possible flavours:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:780\nmsgid \"ovirtexp\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:782\nmsgid \"The OVF format used in oVirt export storage domain.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:784\nmsgid \"ovirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:786\nmsgid \"The OVF format understood by oVirt REST API.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:790\nmsgid \"\"\n\"For backward compatibility the default is I<ovirtexp>, but this may change \"\n\"in the future.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:794\nmsgid \"B<-oo verify-server-certificate>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:796\nmsgid \"B<-oo verify-server-certificate=>C<true|false>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:798\nmsgid \"\"\n\"For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can be used \"\n\"to disable SSL certification validation when connecting to OpenStack by \"\n\"specifying I<-oo verify-server-certificate=false>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:802\nmsgid \"B<-op> file\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:804\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the target \"\n\"hypervisor.  Note the file should contain the whole password, B<without any \"\n\"trailing newline>, and for security the file should have mode C<0600> so \"\n\"that others cannot read it.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:809\nmsgid \"B<-os> storage\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:811\nmsgid \"The location of the storage for the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:813\nmsgid \"\"\n\"For I<-o libvirt>, this is a libvirt directory pool (see S<C<virsh pool-\"\n\"list>>) or pool UUID.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:816\nmsgid \"\"\n\"For I<-o local> and I<-o qemu>, this is a directory name.  The directory \"\n\"must exist.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:819\nmsgid \"For I<-o openstack>, this is the optional Cinder volume type.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:821\nmsgid \"\"\n\"ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the \"\n\"destination Storage Domain.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:825\nmsgid \"\"\n\"For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the \"\n\"form C<E<lt>hostE<gt>:E<lt>pathE<gt>>, eg:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:828\n#, no-wrap\nmsgid \"\"\n\" ovirt-storage.example.com:/ovirt/export\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:830\nmsgid \"\"\n\"The NFS export must be mountable and writable by the user and host running \"\n\"virt-v2v, since the virt-v2v program has to actually mount it when it runs.  \"\n\"So you probably have to run virt-v2v as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:834\nmsgid \"\"\n\"B<Or:> You can mount the Export Storage Domain yourself, and point I<-os> to \"\n\"the mountpoint.  Note that virt-v2v will still need to write to this remote \"\n\"directory, so virt-v2v will still need to run as C<root>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:839\nmsgid \"\"\n\"You will get an error if virt-v2v is unable to mount/write to the Export \"\n\"Storage Domain.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:843\nmsgid \"B<--parallel> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:845\nmsgid \"\"\n\"Enable parallel copying if the guest has multiple disks.  I<N> is the \"\n\"maximum number of parallel L<nbdcopy(1)> instances to run.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:848\nmsgid \"\"\n\"The default is to run at most one instance of nbdcopy (ie. I<--\"\n\"parallel=1>).  All versions of virt-v2v E<le> 2.7.2 also did disk copies one \"\n\"at a time.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:852\nmsgid \"\"\n\"Within each guest disk, nbdcopy tries to copy in parallel if the underlying \"\n\"endpoints support that.  This is not affected by this command line option.  \"\n\"See the L<nbdcopy(1)> manual page for details.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:856 in-place/virt-v2v-in-place.pod:251\nmsgid \"B<--print-source>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:858\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L</Networks and \"\n\"bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:862 in-place/virt-v2v-in-place.pod:257\n#: inspector/virt-v2v-inspector.pod:207 open/virt-v2v-open.pod:116\nmsgid \"B<-q>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:864 in-place/virt-v2v-in-place.pod:259\n#: inspector/virt-v2v-inspector.pod:209 open/virt-v2v-open.pod:118\nmsgid \"B<--quiet>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:866 in-place/virt-v2v-in-place.pod:261\nmsgid \"This disables progress bars and other unnecessary output.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:868\nmsgid \"B<--root ask>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:870\nmsgid \"B<--root single>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:872\nmsgid \"Choose the root filesystem to be converted.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:874\nmsgid \"\"\n\"In the case where the virtual machine is dual-boot or multi-boot, or where \"\n\"the VM has other filesystems that look like operating systems, this option \"\n\"can be used to select the root filesystem (a.k.a. C<C:> drive or F</>) of \"\n\"the operating system that is to be converted.  The Windows Recovery Console, \"\n\"certain attached DVD drives, and bugs in libguestfs inspection heuristics, \"\n\"can make a guest look like a multi-boot operating system.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:882\nmsgid \"\"\n\"Either L<virt-inspector(1)> or L<virt-v2v-open(1)> can be used to list the \"\n\"roots for a dual-boot or multi-boot VM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:885\nmsgid \"\"\n\"The default in virt-v2v E<le> 0.7.1 was S<I<--root single>>, which causes \"\n\"virt-v2v to die if a multi-boot operating system is found.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:888\nmsgid \"\"\n\"Since virt-v2v E<ge> 0.7.2 the default is now S<I<--root ask>>: If the VM is \"\n\"found to be multi-boot, then virt-v2v will stop and list the possible root \"\n\"filesystems and ask the user which to use.  This requires that virt-v2v is \"\n\"run interactively.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:893\nmsgid \"B<--root first>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:895\nmsgid \"\"\n\"Choose the first root device in the case of a multi-boot operating system.  \"\n\"Since this is a heuristic, it may sometimes choose the wrong one, and it may \"\n\"not choose the default option from the guest bootloader.  For predictable \"\n\"results it is better to use L<virt-v2v-open(1)> and L<virt-inspector(1)> to \"\n\"inspect the guest and then specify which root you want to convert.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:902\nmsgid \"B<--root> /dev/sdX\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:904\nmsgid \"B<--root> /dev/VG/LV\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:906\nmsgid \"\"\n\"Name a specific root device to convert, eg. S<I<--root /dev/sda2>> would \"\n\"mean to use the second partition on the first hard drive.  If the named root \"\n\"device does not exist or was not detected as a root device, then virt-v2v \"\n\"will fail.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:911 in-place/virt-v2v-in-place.pod:268\n#: inspector/virt-v2v-inspector.pod:213\nmsgid \"B<--smp> N\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:913\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v \"\n\"will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:916 in-place/virt-v2v-in-place.pod:273\nmsgid \"\"\n\"Increasing this beyond 8 may improve conversion performance, if your host \"\n\"has sufficient physical CPUs.  You may also need to increase the memory size \"\n\"(I<--memsize> option).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:920 in-place/virt-v2v-in-place.pod:277\n#: inspector/virt-v2v-inspector.pod:146 open/virt-v2v-open.pod:77\nmsgid \"B<-v>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:922 in-place/virt-v2v-in-place.pod:279\n#: inspector/virt-v2v-inspector.pod:148 open/virt-v2v-open.pod:79\nmsgid \"B<--verbose>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:924 in-place/virt-v2v-in-place.pod:281\n#: inspector/virt-v2v-inspector.pod:150 open/virt-v2v-open.pod:81\nmsgid \"Enable verbose messages for debugging.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:926 in-place/virt-v2v-in-place.pod:283\n#: inspector/virt-v2v-inspector.pod:152 open/virt-v2v-open.pod:83\nmsgid \"B<-V>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:928 in-place/virt-v2v-in-place.pod:285\n#: inspector/virt-v2v-inspector.pod:154 open/virt-v2v-open.pod:85\nmsgid \"B<--version>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:930 in-place/virt-v2v-in-place.pod:287\n#: inspector/virt-v2v-inspector.pod:156 open/virt-v2v-open.pod:87\nmsgid \"Display version number and exit.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:932 in-place/virt-v2v-in-place.pod:289\n#: inspector/virt-v2v-inspector.pod:215 open/virt-v2v-open.pod:120\nmsgid \"B<--wrap>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:934 in-place/virt-v2v-in-place.pod:291\nmsgid \"\"\n\"Wrap error, warning, and informative messages.  This is the default when the \"\n\"output is a tty.  If the output of the program is redirected to a file, \"\n\"wrapping is disabled unless you use this option.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:938 in-place/virt-v2v-in-place.pod:295\n#: inspector/virt-v2v-inspector.pod:158 open/virt-v2v-open.pod:89\nmsgid \"B<-x>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:940 in-place/virt-v2v-in-place.pod:297\n#: inspector/virt-v2v-inspector.pod:160 open/virt-v2v-open.pod:91\nmsgid \"Enable tracing of libguestfs API calls.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:944\nmsgid \"Customization options\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:946\nmsgid \"__CUSTOMIZE_OPTIONS__\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:948\nmsgid \"RESOURCE REQUIREMENTS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:950\nmsgid \"Network\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:952\nmsgid \"\"\n\"The most important resource for virt-v2v appears to be network bandwidth.  \"\n\"Virt-v2v should be able to copy guest data at gigabit ethernet speeds or \"\n\"greater.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:956\nmsgid \"\"\n\"Ensure that the network connections between servers (conversion server, NFS \"\n\"server, vCenter, etc.) are as fast and as low latency as possible.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:960\nmsgid \"Disk space\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:962\nmsgid \"\"\n\"Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> \"\n\"(usually F</var/tmp>, see also L</ENVIRONMENT VARIABLES> below).  Using \"\n\"tmpfs is a bad idea.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:966\nmsgid \"\"\n\"For each guest disk, an overlay is stored temporarily.  This stores the \"\n\"changes made during conversion, and is used as a cache.  The overlays are \"\n\"not particularly large - tens or low hundreds of megabytes per disk is \"\n\"typical.  In addition to the overlay(s), input and output methods may use \"\n\"disk space, as outlined in the table below.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:974\nmsgid \"I<-i ova>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:976\nmsgid \"\"\n\"This temporarily places a full copy of the uncompressed source disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:981\nmsgid \"I<-o glance>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:983\nmsgid \"\"\n\"This temporarily places a full copy of the output disks in \"\n\"C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:987\nmsgid \"I<-o local>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:989\nmsgid \"I<-o qemu>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:991\nmsgid \"\"\n\"You must ensure there is sufficient space in the output directory for the \"\n\"converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:996\nmsgid \"See also L</Minimum free space check in the host> below.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:998\nmsgid \"VMware vCenter resources\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1000\nmsgid \"\"\n\"Copying from VMware vCenter is currently quite slow, but we believe this to \"\n\"be an issue with VMware.  Ensuring the VMware ESXi hypervisor and vCenter \"\n\"are running on fast hardware with plenty of memory should alleviate this.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1005\nmsgid \"Compute power and RAM\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1007\nmsgid \"\"\n\"Virt-v2v can be run in a virtual machine, but may run faster on bare metal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1010\nmsgid \"\"\n\"Virt-v2v is not especially compute or RAM intensive.  If you are running \"\n\"many parallel conversions, then you may consider allocating one CPU core and \"\n\"2 GB of RAM per running instance.  (You may adjust the amount of memory used \"\n\"by conversion, see the next heading.)\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1015\nmsgid \"Adjusting memory available for conversion\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1017\nmsgid \"\"\n\"Virt-v2v I<--memsize=N> can be used to increase the amount of memory \"\n\"available to do conversion.  This rarely needs to be adjusted, but can help \"\n\"to workaround some conversion problems.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1021\nmsgid \"Linux: setfiles runs out of memory when relabelling\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1023\nmsgid \"\"\n\"For Linux guests that use SELinux, setfiles can run out of memory if a \"\n\"single directory contains millions of files.  As there is no simple way for \"\n\"virt-v2v to detect this problem in advance, you may have to use I<--\"\n\"memsize=4000> (or larger) to convert such guests.  For details see L<https://\"\n\"issues.redhat.com/browse/RHEL-125116>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1029\nmsgid \"Trimming\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1031\nmsgid \"\"\n\"Virt-v2v attempts to optimize the speed of conversion by ignoring guest \"\n\"filesystem data which is not used.  This would include unused filesystem \"\n\"blocks, blocks containing zeroes, and deleted files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1035\nmsgid \"\"\n\"To do this, virt-v2v issues a non-destructive L<fstrim(8)> operation.  As \"\n\"this happens to an overlay placed over the guest data, it does B<not> affect \"\n\"the source in any way.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1039\nmsgid \"\"\n\"If this fstrim operation fails, you will see a warning, but virt-v2v will \"\n\"continue anyway.  It may run more slowly (in some cases much more slowly), \"\n\"because it is copying the unused parts of the disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1043\nmsgid \"\"\n\"Unfortunately support for fstrim is not universal, and it also depends on \"\n\"specific details of the filesystem, partition alignment, and backing \"\n\"storage.  As an example, NTFS filesystems cannot be fstrimmed if they occupy \"\n\"a partition which is not aligned to the underlying storage.  That was the \"\n\"default on Windows before Vista.  As another example, VFAT filesystems (used \"\n\"by UEFI guests) cannot be trimmed at all.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1051\nmsgid \"\"\n\"fstrim support in the Linux kernel is improving gradually, so over time some \"\n\"of these restrictions will be lifted and virt-v2v will work faster.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1055\nmsgid \"Use I<--no-fstrim> to disable trimming.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1057\nmsgid \"Free space for conversion\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1059\nmsgid \"Free space in the guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1061\nmsgid \"\"\n\"Virt-v2v checks there is sufficient free space in the guest filesystem to \"\n\"perform the conversion.  Currently it checks:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1066\nmsgid \"Linux root filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1068 docs/virt-v2v.pod:1079\nmsgid \"Minimum free space: 100 MB\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1070\nmsgid \"Linux F</boot>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1072\nmsgid \"Minimum free space: 50 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1074\nmsgid \"\"\n\"This is because we need to build a new initramfs for some Enterprise Linux \"\n\"conversions.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1077\nmsgid \"Windows C<C:> drive\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1081\nmsgid \"We may have to copy in many virtio drivers and guest agents.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1083\nmsgid \"Any other mountable filesystem\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1085\nmsgid \"Minimum free space: 10 MB\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1089\nmsgid \"\"\n\"In addition to the actual free space, each filesystem is required to have at \"\n\"least 100 available inodes.\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1092\nmsgid \"Minimum free space check in the host\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1094\nmsgid \"\"\n\"You must have sufficient free space in the host directory used to store \"\n\"large temporary overlays.  To find out which directory this is, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1097\n#, no-wrap\nmsgid \"\"\n\" $ df -h \\\"$(guestfish get-cachedir)\\\"\\n\"\n\" Filesystem        Size  Used Avail Use% Mounted on\\n\"\n\" /dev/mapper/root   50G   40G  6.8G  86% /\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1101\nmsgid \"\"\n\"and look under the C<Avail> column.  Virt-v2v will refuse to do the \"\n\"conversion at all unless at least 1GB is available there.  You can change \"\n\"the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1106\nmsgid \"Running virt-v2v as root or non-root\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1108\nmsgid \"\"\n\"Nothing in virt-v2v inherently needs root access, and it will run just fine \"\n\"as a non-root user.  However, certain external features may require either \"\n\"root or a special user:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1116\nmsgid \"Mounting the Export Storage Domain\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1118\nmsgid \"\"\n\"When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient \"\n\"privileges to NFS mount the Export Storage Domain from C<server>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1121\nmsgid \"\"\n\"You can avoid needing root here by mounting it yourself before running virt-\"\n\"v2v, and passing I<-os /mountpoint> instead, but first of all read the next \"\n\"S<section ...>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1125\nmsgid \"Writing to the Export Storage Domain as 36:36\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1127\nmsgid \"\"\n\"oVirt cannot read files and directories from the Export Storage Domain \"\n\"unless they have UID:GID 36:36.  You will see VM import problems if the \"\n\"UID:GID is not correct.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1131\nmsgid \"\"\n\"When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files \"\n\"and directories with the correct ownership.  If you run virt-v2v as non-\"\n\"root, it will probably still work, but you will need to manually change \"\n\"ownership after virt-v2v has finished.  ')\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1137\nmsgid \"Writing to libvirt\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1139\nmsgid \"\"\n\"When using I<-o libvirt>, you may need to run virt-v2v as root so that it \"\n\"can write to the libvirt system instance (ie. C<qemu:///system>)  and to the \"\n\"default location for disk images (usually F</var/lib/libvirt/images>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1144\nmsgid \"\"\n\"You can avoid this by setting up libvirt connection authentication, see \"\n\"L<http://libvirt.org/auth.html>.  Alternatively, use I<-oc qemu:///session>, \"\n\"which will write to your per-user libvirt instance.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1149\nmsgid \"See also L</Starting the libvirt system instance>.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1151\nmsgid \"Writing to Openstack\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1153\nmsgid \"\"\n\"Because of how Cinder volumes are presented as F</dev> block devices, using \"\n\"I<-o openstack> normally requires that virt-v2v is run as root.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1158\nmsgid \"Writing to Glance\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1160\nmsgid \"\"\n\"This does I<not> need root (in fact it probably won’t work), but may require \"\n\"either a special user and/or for you to source a script that sets \"\n\"authentication environment variables.  Consult the Glance documentation.  ')\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1166 docs/virt-v2v.pod:1172\nmsgid \"Writing to block devices\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1168\nmsgid \"This normally requires root.  See the next section.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1174\nmsgid \"\"\n\"Some output modes write to local files.  In general these modes also let you \"\n\"write to block devices, but before you run virt-v2v you may have to arrange \"\n\"for symbolic links to the desired block devices in the output directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1179\nmsgid \"\"\n\"For example if using I<-o local -os /dir> then virt-v2v would normally \"\n\"create files called:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1182\n#, no-wrap\nmsgid \"\"\n\" /dir/name-sda     # first disk\\n\"\n\" /dir/name-sdb     # second disk\\n\"\n\" ...\\n\"\n\" /dir/name.xml     # metadata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1187\nmsgid \"\"\n\"If you wish the disks to be written to block devices then you would need to \"\n\"create F</dir/I<name>-sda> (etc) as symlinks to the block devices:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1191\n#, no-wrap\nmsgid \"\"\n\" # lvcreate -L 10G -n VolumeForDiskA VG\\n\"\n\" # lvcreate -L 6G -n VolumeForDiskB VG\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda\\n\"\n\" # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1196\nmsgid \"\"\n\"Note that you must precreate the correct number of block devices of the \"\n\"correct size.  Typically I<-of raw> has to be used too, but other formats \"\n\"such as qcow2 can be useful occasionally so virt-v2v does not force you to \"\n\"use raw on block devices.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1201\nmsgid \"PRE-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1203\nmsgid \"Remove Anti-Virus (AV) and Group Policy (GPO)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1205\nmsgid \"\"\n\"Anti-Virus software and Windows Group Policy is designed to prevent the kind \"\n\"of driver installation and other changes that we may make to Windows \"\n\"guests.  It is recommended that you disable or remove this before \"\n\"conversion.  It may be enabled again after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1210\nmsgid \"The guest should not be running\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1212\nmsgid \"\"\n\"The guest must be cleanly shut down before conversion begins, and must not \"\n\"be restarted on the source except if conversion fails.  If the guest is \"\n\"running or starts running during conversion then you will end up with \"\n\"filesystem corruption in the converted guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1217\nmsgid \"\"\n\"Virt-v2v tries to ensure the guest is shut down before conversion when it \"\n\"can, but sometimes that is not possible.  It is also not possible to prevent \"\n\"a guest from being started while conversion is going on, or after a \"\n\"successful conversion.  That must be done by some higher layer management \"\n\"tool instead.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1223\nmsgid \"\"\n\"It is possible to convert from a snapshot, but this should only be done to \"\n\"test if a conversion would succeed (with the result being thrown away), and \"\n\"you should fully understand what you are doing.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1227\nmsgid \"POST-CONVERSION TASKS\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1229\nmsgid \"Guest network configuration\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1231\nmsgid \"\"\n\"Virt-v2v cannot currently reconfigure a guest’s network configuration.  If \"\n\"the converted guest is not connected to the same subnet as the source, its \"\n\"network configuration may have to be updated.  See also L<virt-customize(1)>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1236\nmsgid \"Converting a Windows guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1238\nmsgid \"\"\n\"When converting a Windows guests, the conversion process is split into two \"\n\"stages:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1243\nmsgid \"1\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1245\nmsgid \"Offline conversion.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1247\nmsgid \"2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1249\nmsgid \"First boot.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1253\nmsgid \"\"\n\"The guest will be bootable after the offline conversion stage, but will not \"\n\"yet have all necessary drivers installed to work correctly.  These will be \"\n\"installed automatically the first time the guest boots.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1257\nmsgid \"\"\n\"B<N.B.> Windows may reboot 4 or more times the first time after conversion.  \"\n\"This is required to install the required drivers, guest agents, remove \"\n\"VMware Tools, and configure the network.  Take care not to interrupt the \"\n\"automatic driver installation process when logging in to the guest for the \"\n\"first time, as this may prevent the guest from subsequently booting \"\n\"correctly.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1264\nmsgid \"Removing VMware Tools from Windows guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1266\nmsgid \"\"\n\"Virt-v2v attempts to remove VMware Tools.  For Windows guests this is \"\n\"supposed to happen during the first boot after conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1269\nmsgid \"\"\n\"We use VMware's recommended uninstallation method as that is the safest \"\n\"choice.  Unfortunately this method is known not to work in most cases (it \"\n\"makes the assumption that it is running on top of VMware, and fails with \"\n\"error 1603).  So VMware Tools must be manually removed by some other method.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1275\nmsgid \"\"\n\"VMware's officially documented method for manually removing VMware Tools is \"\n\"here: L<https://knowledge.broadcom.com/external/article/315629/clean-\"\n\"uninstallation-of-vmware-tools-in.html>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1279\nmsgid \"\"\n\"Another, unofficial method is described here: L<https://gist.github.com/\"\n\"broestls/f872872a00acee2fca02017160840624> You should carefully check this \"\n\"script since it makes very invasive changes to the Windows Registry and \"\n\"filesystem.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1288\nmsgid \"Xen paravirtualized guests\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1290\nmsgid \"\"\n\"Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into \"\n\"a KVM guest by installing a new kernel.  This version of virt-v2v does \"\n\"I<not> attempt to install any new kernels.  Instead it will give you an \"\n\"error if there are I<only> Xen PV kernels available.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1295\nmsgid \"\"\n\"Therefore before conversion you should check that a regular kernel is \"\n\"installed.  For some older Linux distributions, this means installing a \"\n\"kernel from the table below:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1299\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         i686 with > 10GB of RAM: install \\\"kernel-hugemem\\\"\\n\"\n\"                i686 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i686: install \\\"kernel\\\"\\n\"\n\"                x86-64 SMP with > 8 CPUs: install \\\"kernel-largesmp\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1306\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         i686: install \\\"kernel-PAE\\\"\\n\"\n\"                x86-64: install \\\"kernel\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1309\n#, no-wrap\nmsgid \"\"\n\" SLES 10        i586 with > 10GB of RAM: install \\\"kernel-bigsmp\\\"\\n\"\n\"                i586 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other i586: install \\\"kernel-default\\\"\\n\"\n\"                x86-64 SMP: install \\\"kernel-smp\\\"\\n\"\n\"                other x86-64: install \\\"kernel-default\\\"\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1315\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       i586: install \\\"kernel-pae\\\"\\n\"\n\"                x86-64: install \\\"kernel-default\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1318\n#, no-wrap\nmsgid \"\"\n\" Windows        (Does not apply, as there is no Xen PV Windows kernel)\\n\"\n\"')\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1321\nmsgid \"Enabling virtio\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1323\nmsgid \"\"\n\"\\\"Virtio\\\" is the name for a set of drivers which make disk (block device), \"\n\"network and other guest operations work much faster on KVM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1326\nmsgid \"\"\n\"Older versions of virt-v2v could install these drivers for certain Linux \"\n\"guests.  This version of virt-v2v does I<not> attempt to install new Linux \"\n\"kernels or drivers, but will warn you if they are not installed already.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1331\nmsgid \"\"\n\"In order to enable virtio, and hence improve performance of the guest after \"\n\"conversion, you should ensure that the B<minimum> versions of packages are \"\n\"installed I<before> conversion, by consulting the table below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1336\n#, no-wrap\nmsgid \"\"\n\" RHEL 4         kernel >= 2.5.9-89.EL\\n\"\n\"                lvm2 >= 2.02.42-5.el4\\n\"\n\"                device-mapper >= 1.02.28-2.el4\\n\"\n\"                selinux-policy-targeted >= 1.17.30-2.152.el4\\n\"\n\"                policycoreutils >= 1.18.1-4.13\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1342\n#, no-wrap\nmsgid \"\"\n\" RHEL 5         kernel >= 2.6.18-128.el5\\n\"\n\"                lvm2 >= 2.02.40-6.el5\\n\"\n\"                selinux-policy-targeted >= 2.4.6-203.el5\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1346\n#, no-wrap\nmsgid \"\"\n\" RHEL 6+        All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1348\n#, no-wrap\nmsgid \"\"\n\" Fedora         All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1350\n#, no-wrap\nmsgid \"\"\n\" SLES 11+       All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1352\n#, no-wrap\nmsgid \"\"\n\" SLES 10        kernel >= 2.6.16.60-0.85.1\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1354\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 11+   All versions support virtio\\n\"\n\" \\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1356\n#, no-wrap\nmsgid \"\"\n\" OpenSUSE 10    kernel >= 2.6.25.5-1.1\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1358\n#, no-wrap\nmsgid \"\"\n\" Debian 6+      All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1360\n#, no-wrap\nmsgid \"\"\n\" Ubuntu 10.04+  All versions support virtio\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1362\n#, no-wrap\nmsgid \"\"\n\" Windows        Drivers are installed from the ISO or directory pointed\\n\"\n\"                to by the \\\"VIRTIO_WIN\\\" environment variable if present.\\n\"\n\"                If the \\\"VIRTIO_WIN\\\" environment variable is absent\\n\"\n\"                (which is the recommended setting), then drivers are\\n\"\n\"                searched for in /usr/share/virtio-win, as installed\\n\"\n\"                by the virtio-win RPM.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1370\nmsgid \"RHEL 4: SELinux relabel appears to hang forever\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1372\nmsgid \"\"\n\"In RHEL E<le> 4.7 there was a bug which causes SELinux relabelling to appear \"\n\"to hang forever at:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1375\n#, no-wrap\nmsgid \"\"\n\" *** Warning -- SELinux relabel is required. ***\\n\"\n\" *** Disabling security enforcement.         ***\\n\"\n\" *** Relabeling could take a very long time, ***\\n\"\n\" *** depending on file system size.          ***\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1380\nmsgid \"\"\n\"In reality it is waiting for you to press a key (but there is no visual \"\n\"indication of this).  You can either hit the C<[Return]> key, at which point \"\n\"the guest will finish relabelling and reboot, or you can install \"\n\"policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion.  See \"\n\"also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1387\nmsgid \"RHEL 8: dracut network-legacy error\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1389\nmsgid \"In RHEL 8, a conversion fails with:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1391\n#, no-wrap\nmsgid \"\"\n\" dracut: dracut module 'network-legacy' cannot be found or installed\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1393\nmsgid \"\"\n\"This is caused by an issue with a dracut update during the RHEL 8 \"\n\"lifecycle.  You can fix it by either installing the C<dhclient> package, or \"\n\"by removing the file F</etc/dracut.conf.d/50-network-legacy.conf>.  Either \"\n\"operation should be done inside the guest before conversion.  For more \"\n\"information, see:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1399\nmsgid \"L<https://access.redhat.com/articles/7112814>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1401\nmsgid \"Linux: \\\"rename: /sysroot/etc/resolv.conf\\\" failure\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1403\nmsgid \"In a Linux guest, you see an error such as this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1405\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1407\nmsgid \"\"\n\"This can be caused because the file F</etc/resolv.conf> in the guest has the \"\n\"L<immutable bit|https://en.wikipedia.org/wiki/Chattr> set.  You can use the \"\n\"L<chattr(1)> command before converting the guest:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1411\n#, no-wrap\nmsgid \"\"\n\" chattr -i /etc/resolv.conf\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1413\nmsgid \"and then restore it (I<+i>) after conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1415\nmsgid \"\"\n\"Debian/Ubuntu: \\\"warning: could not determine a way to update the \"\n\"configuration of Grub2\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1417\nmsgid \"\"\n\"Currently, virt-v2v has no way to set the default kernel in Debian and \"\n\"Ubuntu guests using GRUB 2 as bootloader.  This means that virt-v2v will not \"\n\"change the default kernel used for booting, even in case it is not the best \"\n\"kernel available on the guest.  A recommended procedure is, before using \"\n\"virt-v2v, to check that the boot kernel is the best kernel available in the \"\n\"guest (for example by making sure the guest is up-to-date).\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1425\nmsgid \"Debian: \\\"vsyscall attempted with vsyscall=none\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1427\nmsgid \"\"\n\"When run on a recent Debian host virt-v2v may fail to convert guests which \"\n\"were created before 2013.  In the debugging output you will see a crash \"\n\"message similar to:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1431\n#, no-wrap\nmsgid \"\"\n\" vsyscall attempted with vsyscall=none ip:...\\n\"\n\" segfault at ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1434\nmsgid \"\"\n\"This is caused because Debian removed support for running old binaries which \"\n\"used the legacy vsyscall page to call into the kernel.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1437\nmsgid \"\"\n\"You can work around this problem by running this command before running virt-\"\n\"v2v:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1440\n#, no-wrap\nmsgid \"\"\n\" export LIBGUESTFS_APPEND=\\\"vsyscall=emulate\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1442\nmsgid \"For more information, see L<https://bugzilla.redhat.com/1592061>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1444\nmsgid \"Windows: System disk on a Dynamic Disk is not supported\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1446\nmsgid \"\"\n\"If the Windows system disk (the drive containing C<\\\\windows>) is located on \"\n\"a Dynamic Disk then it cannot be converted.  Data disks — that is, disks \"\n\"which are part of the guest but do not contain parts of the Windows \"\n\"operating system — may be Dynamic Disks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1451\nmsgid \"See L<https://bugzilla.redhat.com/2140548>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1453\nmsgid \"Windows E<ge> 8 Fast Startup is incompatible with virt-v2v\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1455\nmsgid \"\"\n\"Guests which use the Windows E<ge> 8 \\\"Fast Startup\\\" feature (or guests \"\n\"which are hibernated) cannot be converted with virt-v2v.  You will see an \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1459\n#, no-wrap\nmsgid \"\"\n\" virt-v2v: error: unable to mount the disk image for writing. This has\\n\"\n\" probably happened because Windows Hibernation or Fast Restart is being\\n\"\n\" used in this guest. You have to disable this (in the guest) in order\\n\"\n\" to use virt-v2v.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1464\nmsgid \"\"\n\"As the message says, you need to boot the guest and disable the \\\"Fast \"\n\"Startup\\\" feature (Control Panel → Power Options → Choose what the power \"\n\"buttons do → Change settings that are currently unavailable → Turn on fast \"\n\"startup), and shut down the guest, and then you will be able to convert it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1470\nmsgid \"\"\n\"For more information, see: L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 \"\n\"FAST STARTUP>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1473\nmsgid \"Windows: Boot failure: 0x0000007B\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1475\nmsgid \"\"\n\"This boot failure is caused by Windows being unable to find or load the \"\n\"right disk driver (eg. F<viostor.sys>).  If you experience this error, here \"\n\"are some things to check:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1483\nmsgid \"\"\n\"First ensure that the guest boots on the source hypervisor before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1488\nmsgid \"\"\n\"Check you have the Windows virtio drivers available in F</usr/share/virtio-\"\n\"win>, and that virt-v2v did not print any warning about not being able to \"\n\"install virtio drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1492\nmsgid \"\"\n\"On S<Red Hat Enterprise Linux 7>, you will need to install the signed \"\n\"drivers available in the C<virtio-win> package.  If you do not have access \"\n\"to the signed drivers, then you will probably need to disable driver signing \"\n\"in the boot menus.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1499\nmsgid \"\"\n\"Check that you are presenting a virtio-blk interface (B<not> virtio-scsi and \"\n\"B<not> ide) to the guest.  On the qemu/KVM command line you should see \"\n\"something similar to this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1503\n#, no-wrap\nmsgid \"\"\n\" ... -drive file=windows-sda,if=virtio ...\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1505\nmsgid \"In libvirt XML, you should see:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1507\n#, no-wrap\nmsgid \"\"\n\" <target dev='vda' bus='virtio'/>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1511\nmsgid \"\"\n\"Check that Windows Group Policy does not prevent the driver from being \"\n\"installed or used.  Try deleting Windows Group Policy before conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1517\nmsgid \"\"\n\"Check there is no anti-virus or other software which implements Group Policy-\"\n\"like prohibitions on installing or using new drivers.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1522\nmsgid \"\"\n\"Enable boot debugging and check the F<viostor.sys> driver is being loaded.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1527\nmsgid \"OpenStack and Windows reactivation\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1529\nmsgid \"\"\n\"OpenStack does not offer stable device / PCI addresses to guests.  Every \"\n\"time it creates or starts a guest, it regenerates the libvirt XML for that \"\n\"guest from scratch.  The libvirt XML will have no E<lt>addressE<gt> fields.  \"\n\"Libvirt will then assign addresses to devices, in a predictable manner.  \"\n\"Addresses may change if any of the following are true:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1540\nmsgid \"A new disk or network device has been added or removed from the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1544\nmsgid \"The version of OpenStack or (possibly) libvirt has changed.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1548\nmsgid \"\"\n\"Because Windows does not like \\\"hardware\\\" changes of this kind, it may \"\n\"trigger Windows reactivation.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1551\nmsgid \"\"\n\"This can also prevent booting with a 7B error [see previous section] if the \"\n\"guest has group policy containing C<Device Installation Restrictions>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1555\nmsgid \"Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1557\nmsgid \"\"\n\"Later versions of the Windows virtio drivers are signed using SHA-2 \"\n\"certificates (instead of SHA-1).  The original shipping Windows 7 and \"\n\"Windows Server 2008 R2 did not understand SHA-2 certificates and so the \"\n\"Windows virtio drivers will not install properly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1562\nmsgid \"\"\n\"To fix this you must apply SHA-2 Code Signing Support from: L<https://\"\n\"docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929> \"\n\"before converting the guest.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1566\nmsgid \"\"\n\"For further information see: L<https://bugzilla.redhat.com/show_bug.cgi?\"\n\"id=1624878>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1569\nmsgid \"After conversion, Windows guest cannot be upgraded\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1571\nmsgid \"\"\n\"After successful conversion, the Windows guest cannot be upgraded to a later \"\n\"release of Windows (eg. from Windows Server 2016 to 2019).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1574\nmsgid \"\"\n\"Another symptom is that the C<pnputil /enum-drivers> command cannot list all \"\n\"drivers.  A few drivers are shown and then the command crashes with the \"\n\"error:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1578\n#, no-wrap\nmsgid \"\"\n\" Failed to enumerate driver packages: The parameter is incorrect.\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1580\nmsgid \"\"\n\"This is caused by the C<guestor_tmp> temporary driver that we preinstall \"\n\"during conversion so that Windows can see the boot device.  Because only \"\n\"minimal changes are made to the Registry to make this work, Windows later \"\n\"gets confused when it sees these partial Registry entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1586\nmsgid \"\"\n\"The fix is to delete the Registry entries, after conversion but before \"\n\"trying to upgrade Windows.  This can be achieved using L<virt-win-reg(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1590\nmsgid \"The Windows guest should be shut down.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1592\nmsgid \"\"\n\"The following C<.reg> file should be merged into the Windows Registry: \"\n\"L<https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-\"\n\"guestor.reg>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1595\n#, no-wrap\nmsgid \"\"\n\" # virt-win-reg --merge WindowsGuest remove-guestor.reg\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1597\nmsgid \"Then the Windows guest can be booted and used / upgraded as normal.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1599\nmsgid \"\"\n\"Alternatively, a WinPE environment can be used to remove the Registry \"\n\"entries.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1602\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/MTV-2256>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1605\nmsgid \"\"\n\"Windows: \\\"Activation of partially decrypted BITLK device is not supported\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1607\nmsgid \"\"\n\"This error from L<cryptsetup(8)> may occur for Windows 11 guests that have a \"\n\"virtual TPM.  Even if Bitlocker is not activated, the disk is still \"\n\"encrypted, and so a I<--key> parameter is still required.  However it may \"\n\"not be possible to retrieve the key from the TPM.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1612\nmsgid \"\"\n\"A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption \"\n\"settings in the Control Panel.  The Bitlocker key must be passed to virt-v2v \"\n\"on the command line.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1616\nmsgid \"\"\n\"For further information see: L<https://issues.redhat.com/browse/RHEL-70840> \"\n\"and L<https://windowstechpro.com/how-to-enable-bitlocker-on-windows-11/>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1621\nmsgid \"Windows: \\\"Enter the recovery key for this drive\\\"\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1623\nmsgid \"\"\n\"After conversion, you may be presented with a Windows boot screen showing:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1625\n#, no-wrap\nmsgid \"\"\n\" BitLocker recovery\\n\"\n\" Enter the recovery key for this drive\\n\"\n\" [|___________________]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1629\nmsgid \"(See screenshot on L<https://issues.redhat.com/browse/RHEL-103915>)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1631\nmsgid \"\"\n\"This happens when the Windows BitLocker disk encryption key is contained in \"\n\"the VMware Virtual Trusted Platform Module (vTPM).  The vTPM is working \"\n\"I<exactly as designed>.  It is preventing the encrypted disk from being \"\n\"moved from one machine to another by storing the encryption key in trusted \"\n\"storage on the source.  By design, we cannot access or move this key to the \"\n\"target.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1638\nmsgid \"\"\n\"To start the VM you will need to enter the BitLocker recovery key.  This \"\n\"will also register the disk against the new vTPM on the target, so it should \"\n\"only be necessary to do this once.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1642\nmsgid \"For help finding the recovery key: L<https://aka.ms/recoverykeyfaq>\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1644\nmsgid \"Networks and bridges\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1646\nmsgid \"\"\n\"Guests are usually connected to one or more networks, and when converted to \"\n\"the target hypervisor you usually want to reconnect those networks at the \"\n\"destination.  The options I<--network>, I<--bridge> and I<--mac> allow you \"\n\"to do that.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1651\nmsgid \"\"\n\"If you are unsure of what networks and bridges are in use on the source \"\n\"hypervisor, then you can examine the source metadata (libvirt XML, vCenter \"\n\"information, etc.).  Or you can run virt-v2v with the I<--print-source> \"\n\"option which causes virt-v2v to print out the information it has about the \"\n\"guest on the source and then exit.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1657\nmsgid \"\"\n\"In the I<--print-source> output you will see a section showing the guest’s \"\n\"Network Interface Cards (NICs):\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1660\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Network \\\"default\\\" mac: 52:54:00:d0:cf:0e\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1665\nmsgid \"\"\n\"Bridges are special classes of network devices which are attached to a named \"\n\"external network on the source hypervisor, for example:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1668\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [-i ...] --print-source name\\n\"\n\" [...]\\n\"\n\" NICs:\\n\"\n\"     Bridge \\\"br0\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1673\nmsgid \"\"\n\"To map a specific source bridge to a target network, for example C<br0> on \"\n\"the source to C<ovirtmgmt> on the target, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1676\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge br0:ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1678\nmsgid \"To map every bridge to a target network, use:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1680\n#, no-wrap\nmsgid \"\"\n\" virt-v2v [...] --bridge ovirtmgmt\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head3\n#: docs/virt-v2v.pod:1682\nmsgid \"Fine-grained mapping of guest NICs\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1684\nmsgid \"\"\n\"The I<--mac> option gives you more control over the mapping, letting you map \"\n\"single NICs to either networks or bridges on the target.  For example a \"\n\"source guest with two NICs could map them individually to two networks \"\n\"called C<mgmt> and C<clientdata> like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1689\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v [...] \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0e:network:mgmt \\\\\\n\"\n\"    --mac 52:54:00:d0:cf:0f:network:clientdata\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1693\nmsgid \"\"\n\"Note that virt-v2v does not have the ability to change a guest’s MAC \"\n\"address.  The MAC address is part of the guest metadata and must remain the \"\n\"same on source and target hypervisors.  Most guests will use the MAC address \"\n\"to set up persistent associations between NICs and internal names (like \"\n\"C<eth0>), with firewall settings, or even for other purposes like software \"\n\"licensing.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1700 in-place/virt-v2v-in-place.pod:301\nmsgid \"Minimal XML for -i libvirtxml option\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1702 in-place/virt-v2v-in-place.pod:303\nmsgid \"\"\n\"When using the I<-i libvirtxml> option, you have to supply some libvirt \"\n\"XML.  Writing this from scratch is hard, so the template below is helpful.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1706 in-place/virt-v2v-in-place.pod:307\nmsgid \"\"\n\"B<Note this should only be used for testing and/or where you know what \"\n\"you're doing!> If you have libvirt metadata for the guest, always use that \"\n\"instead.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1710 in-place/virt-v2v-in-place.pod:311\n#, no-wrap\nmsgid \"\"\n\" <domain type='kvm'>\\n\"\n\"   <name> NAME </name>\\n\"\n\"   <memory>1048576</memory>\\n\"\n\"   <vcpu>2</vcpu>\\n\"\n\"   <os>\\n\"\n\"     <type>hvm</type>\\n\"\n\"     <boot dev='hd'/>\\n\"\n\"   </os>\\n\"\n\"   <features>\\n\"\n\"     <acpi/>\\n\"\n\"     <apic/>\\n\"\n\"     <pae/>\\n\"\n\"   </features>\\n\"\n\"   <devices>\\n\"\n\"     <disk type='file' device='disk'>\\n\"\n\"       <driver name='qemu' type='raw'/>\\n\"\n\"       <source file='/path/to/disk/image'/>\\n\"\n\"       <target dev='hda' bus='ide'/>\\n\"\n\"       <checksum method='sha256' fail='error'>123123...</checksum>\\n\"\n\"     </disk>\\n\"\n\"     <interface type='network'>\\n\"\n\"       <mac address='52:54:00:01:02:03'/>\\n\"\n\"       <source network='default'/>\\n\"\n\"       <model type='rtl8139'/>\\n\"\n\"     </interface>\\n\"\n\"   </devices>\\n\"\n\" </domain>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1738\nmsgid \"Machine readable output\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1740\nmsgid \"\"\n\"The I<--machine-readable> option can be used to make the output more machine \"\n\"friendly, which is useful when calling virt-v2v from other programs, GUIs \"\n\"etc.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1744\nmsgid \"There are two ways to use this option.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1746\nmsgid \"\"\n\"Firstly use the option on its own to query the capabilities of the virt-v2v \"\n\"binary.  Typical output looks like this:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1749\n#, no-wrap\nmsgid \"\"\n\" $ virt-v2v --machine-readable\\n\"\n\" virt-v2v\\n\"\n\" libguestfs-rewrite\\n\"\n\" colours-option\\n\"\n\" input:disk\\n\"\n\" [...]\\n\"\n\" output:local\\n\"\n\" [...]\\n\"\n\" convert:linux\\n\"\n\" convert:windows\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1760\nmsgid \"\"\n\"A list of features is printed, one per line, and the program exits with \"\n\"status 0.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1763\nmsgid \"\"\n\"The C<input:> and C<output:> features refer to I<-i> and I<-o> (input and \"\n\"output mode) options supported by this binary.  The C<convert:> features \"\n\"refer to guest types that this binary knows how to convert.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1767\nmsgid \"\"\n\"Secondly use the option in conjunction with other options to make the \"\n\"regular program output more machine friendly.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1770\nmsgid \"At the moment this means:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1776\nmsgid \"\"\n\"Progress bar messages can be parsed from stdout by looking for this regular \"\n\"expression:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1779\n#, no-wrap\nmsgid \"\"\n\" ^[0-9]+/[0-9]+$\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1783\nmsgid \"\"\n\"The calling program should treat messages sent to stdout (except for \"\n\"progress bar messages) as status messages.  They can be logged and/or \"\n\"displayed to the user.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1789\nmsgid \"\"\n\"The calling program should treat messages sent to stderr as error messages.  \"\n\"In addition, virt-v2v exits with a non-zero status code if there was a fatal \"\n\"error.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1795\nmsgid \"\"\n\"Virt-v2v E<le> 0.9.1 did not support the I<--machine-readable> option at \"\n\"all.  The option was added when virt-v2v was rewritten in 2014.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1798\nmsgid \"\"\n\"It is possible to specify a format string for controlling the output; see \"\n\"L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.\"\nmsgstr \"\"\n\n#. type: =head2\n#: docs/virt-v2v.pod:1801\nmsgid \"Starting the libvirt system instance\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1803\n#, no-wrap\nmsgid \"\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory\\n\"\n\" Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1806\nmsgid \"\"\n\"If you have just installed libvirt and virt-v2v, then you may see the errors \"\n\"above.  This is caused by libvirt daemons that provide various services not \"\n\"running straight after installation.  (This may depend on your distribution \"\n\"and vendor presets).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1811\nmsgid \"To fix this on systemd-based distributions, do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: docs/virt-v2v.pod:1813\n#, no-wrap\nmsgid \"\"\n\" systemctl isolate multi-user.target\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1815\nmsgid \"See also L<https://bugzilla.redhat.com/2182024>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1817 in-place/virt-v2v-in-place.pod:360\n#: inspector/virt-v2v-inspector.pod:221 open/virt-v2v-open.pod:132\nmsgid \"FILES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1821 docs/virt-v2v.pod:1902\nmsgid \"F</usr/share/virtio-win>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1823\nmsgid \"(Optional)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1825\nmsgid \"\"\n\"If this directory is present, then virtio drivers for Windows guests will be \"\n\"found from this directory and installed in the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1831 in-place/virt-v2v-in-place.pod:364\n#: inspector/virt-v2v-inspector.pod:225 open/virt-v2v-open.pod:136\nmsgid \"ENVIRONMENT VARIABLES\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1835\nmsgid \"C<VIRT_V2V_TMPDIR>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1837\nmsgid \"C<LIBGUESTFS_CACHEDIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1839\nmsgid \"\"\n\"Location of the temporary directory used for the potentially large temporary \"\n\"overlay file.  If neither environment variable is set then F</var/tmp> is \"\n\"used.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1843\nmsgid \"\"\n\"To reliably ensure large temporary files are cleaned up (for example in case \"\n\"virt-v2v crashes) you should create a randomly named directory under F</var/\"\n\"tmp>, set C<VIRT_V2V_TMPDIR> to point to this directory, then when virt-v2v \"\n\"exits remove the directory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1848\nmsgid \"See the L</Disk space> section above.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1850\nmsgid \"C<VIRT_TOOLS_DATA_DIR>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1852\nmsgid \"\"\n\"This can point to the directory containing data files used for Windows \"\n\"conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1855\nmsgid \"\"\n\"Normally you do not need to set this.  If not set, a compiled-in default \"\n\"will be used (something like F</usr/share/virt-tools>).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1858\nmsgid \"This directory may contain the following files:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1862\nmsgid \"F<rhsrvany.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1864\nmsgid \"(Required when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1866\nmsgid \"\"\n\"This is the RHSrvAny Windows binary, used to install a \\\"firstboot\\\" script \"\n\"in the guest during conversion of Windows guests.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1869\nmsgid \"See also: C<https://github.com/rwmjones/rhsrvany>\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1871\nmsgid \"F<pnp_wait.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1873\nmsgid \"(Recommended when doing conversions of Windows guests)\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1875\nmsgid \"\"\n\"This tool waits for newly installed Windows devices to become available \"\n\"before trying to configure them, for example to set network configuration.  \"\n\"It is part of the RHSrvAny project.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1879\nmsgid \"F<pvvxsvc.exe>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1881\nmsgid \"\"\n\"This is a Windows binary shipped with SUSE VMDP, used to install a \"\n\"\\\"firstboot\\\" script in Windows guests.  It is an alternative to RHSrvAny.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1887\nmsgid \"C<VIRTIO_WIN>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1889\nmsgid \"\"\n\"This is an override for where virtio drivers for Windows are searched for.  \"\n\"It can be a directory I<or> point to F<virtio-win.iso> (CD ROM image \"\n\"containing drivers).\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1893\nmsgid \"\"\n\"If unset, then we look for drivers via whichever of these methods succeeds \"\n\"first:\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1898\nmsgid \"F</usr/share/virtio-win/virtio-win.iso>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1900\nmsgid \"The ISO containing virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1904\nmsgid \"The exploded tree of virtio drivers for Windows.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1908\nmsgid \"See L</Enabling virtio>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1912\nmsgid \"\"\n\"For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: =head1\n#: docs/virt-v2v.pod:1914\nmsgid \"OTHER TOOLS\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1918\nmsgid \"L<engine-image-uploader(8)>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1920\nmsgid \"\"\n\"Variously called C<engine-image-uploader>, C<ovirt-image-uploader> or \"\n\"C<rhevm-image-uploader>, this tool allows you to copy a guest from one oVirt \"\n\"Export Storage Domain to another.  It only permits importing a guest that \"\n\"was previously exported from another oVirt instance.\"\nmsgstr \"\"\n\n#. type: =item\n#: docs/virt-v2v.pod:1925\nmsgid \"L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-ovirt.git>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1927\nmsgid \"\"\n\"This script can be used to import guests that already run on KVM to oVirt.  \"\n\"For more information, see this blog posting by the author of virt-v2v:\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1931\nmsgid \"\"\n\"L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-\"\n\"rhev/#content>\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1937\nmsgid \"\"\n\"L<virt-p2v(1)>, L<virt-v2v-inspector(1)>, L<virt-v2v-in-place(1)>, L<virt-\"\n\"v2v-open(1)>, L<virt-customize(1)>, L<virt-df(1)>, L<virt-filesystems(1)>, \"\n\"L<virt-inspector(1)>, L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-win-\"\n\"reg(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<engine-image-\"\n\"uploader(8)>, L<import-to-ovirt.pl|http://git.annexia.org/?p=import-to-\"\n\"ovirt.git>, L<nbdkit(1)>, L<nbdkit-vddk-plugin(1)>, L<http://libguestfs.org/\"\n\">.\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1959 in-place/virt-v2v-in-place.pod:381\n#: inspector/virt-v2v-inspector.pod:243 open/virt-v2v-open.pod:155\nmsgid \"Matthew Booth\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1961 in-place/virt-v2v-in-place.pod:383\n#: inspector/virt-v2v-inspector.pod:245 open/virt-v2v-open.pod:157\nmsgid \"Cédric Bosdonnat\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1967 in-place/virt-v2v-in-place.pod:389\n#: inspector/virt-v2v-inspector.pod:251 open/virt-v2v-open.pod:163\nmsgid \"Shahar Havivi\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1979 in-place/virt-v2v-in-place.pod:401\n#: inspector/virt-v2v-inspector.pod:263 open/virt-v2v-open.pod:175\nmsgid \"Xiaodai Wang\"\nmsgstr \"\"\n\n#. type: textblock\n#: docs/virt-v2v.pod:1983 in-place/virt-v2v-in-place.pod:405\n#: inspector/virt-v2v-inspector.pod:267 open/virt-v2v-open.pod:179\nmsgid \"Tingting Zheng\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:3\nmsgid \"virt-v2v-in-place - Convert a guest to use KVM in-place\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   filename\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:12\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt|libvirtxml [other -i* options]\\n\"\n\"                   [virt-customize options]\\n\"\n\"                   guest\\n\"\n\"                   [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:19\nmsgid \"\"\n\"Virt-v2v-in-place converts a single guest from a foreign hypervisor to run \"\n\"on KVM.  It does this conversion in place, modifying the original disk.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:23\nmsgid \"\"\n\"This manual page only documents the differences between this tool and virt-\"\n\"v2v.  You should read L<virt-v2v(1)> first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:26\nmsgid \"Selecting the input disk\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:28\nmsgid \"\"\n\"You normally run virt-v2v with one or more I<-i*> options controlling the \"\n\"input mode.  Virt-v2v-in-place can only convert guests stored in local files.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:32\nmsgid \"This command will do an in-place conversion of F<filename.img>:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:34\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:36\nmsgid \"If the guest has been copied to local libvirt then:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:38\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -i libvirt guest\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:40\nmsgid \"Output XML\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:42\nmsgid \"\"\n\"Optionally use the I<-O> option to write post-conversion metadata about the \"\n\"guest to an XML file.  This is in the same format as L<virt-v2v-\"\n\"inspector(1)>.  This can be used, for example, to find out what operating \"\n\"system and firmware was found inside the guest during conversion.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:48\nmsgid \"Exit code\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:50\nmsgid \"\"\n\"If virt-v2v-in-place fails it will return a non-zero (error) exit code.  In \"\n\"this case, the disk image will be in an B<unknown, possibly corrupted state>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:54\nmsgid \"\"\n\"If the image contains important information you should ensure you have a \"\n\"backup before trying a virt-v2v-in-place conversion.  And you should check \"\n\"the exit code is zero before using the disk image after a conversion.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:144\nmsgid \"Only local libvirt connections to locally stored disks can be used.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: in-place/virt-v2v-in-place.pod:157\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-in-place -it disk -io \\\"?\\\"\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:161\nmsgid \"\"\n\"Supply a file containing a password to be used when connecting to the \"\n\"source.  If this is omitted then the input hypervisor may ask for the \"\n\"password interactively.  Note the file should contain the whole password, \"\n\"B<without any trailing newline>, and for security the file should have mode \"\n\"C<0600> so that others cannot read it.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:181 in-place/virt-v2v-in-place.pod:237\nmsgid \"See L<virt-v2v(1)/Networks and bridges>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:188\nmsgid \"\"\n\"The fields in the parameter are: C<ipaddr> is the IP address.  C<gw> is the \"\n\"optional gateway IP address.  C<len> is the subnet mask length (an \"\n\"integer).  The final parameters are zero or more nameserver IP addresses.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:205\nmsgid \"\"\n\"This option is used to make the output more machine friendly when being \"\n\"parsed by other programs.  See L<virt-v2v(1)/Machine readable output>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:213\nmsgid \"\"\n\"Change the amount of memory allocated when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.  Increase this if you see \"\n\"that the conversion step is running out of memory.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:241\nmsgid \"Do not trim the filesystem.  See L<virt-v2v(1)/Trimming>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:243\nmsgid \"B<-O> output.xml\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:245 inspector/virt-v2v-inspector.pod:141\nmsgid \"B<-O ->\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:247\nmsgid \"\"\n\"If this option is present, write post-conversion metadata about the guest to \"\n\"the named XML file, or to stdout if I<-O -> is used.  This is in the same \"\n\"format as L<virt-v2v-inspector(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:253\nmsgid \"\"\n\"Print information about the source guest and stop.  This option is useful \"\n\"when you are setting up network and bridge maps.  See L<virt-v2v(1)/Networks \"\n\"and bridges>.\"\nmsgstr \"\"\n\n#. type: =item\n#: in-place/virt-v2v-in-place.pod:263 inspector/virt-v2v-inspector.pod:211\nmsgid \"B<--root> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:265\nmsgid \"\"\n\"Choose the root filesystem to be converted.  See the documentation of this \"\n\"option in L<virt-v2v(1)>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:270\nmsgid \"\"\n\"Change the number of virtual CPUs used when doing the conversion.  Virt-v2v-\"\n\"in-place will usually choose a suitable default.\"\nmsgstr \"\"\n\n#. type: =head2\n#: in-place/virt-v2v-in-place.pod:339\nmsgid \"Disk checksum\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:341\nmsgid \"\"\n\"The optional E<lt>checksumE<gt> field specifies the expected hash of the \"\n\"corresponding disk.  It can be specified by management tools in order to do \"\n\"end-to-end data integrity checks.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:345\nmsgid \"\"\n\"Note this is the checksum of the raw format content of the disk.  If the \"\n\"disk is in a container format (eg. qcow2) it is the checksum of the content, \"\n\"I<not> of the container.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:349\nmsgid \"The checksum method attribute can be C<md5>, C<sha256> or C<sha512>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:351\nmsgid \"\"\n\"The fail attribute can be C<error> to fail the conversion if the checksum \"\n\"does not match; C<warn> to print a warning but continue; C<ignore> to ignore \"\n\"the checksum and not even compute it; or C<print> to print the actual \"\n\"checksum and continue.  The default is C<fail=warn>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:357\nmsgid \"\"\n\"Computing the checksum of a remote (eg HTTP) source can be slow and \"\n\"expensive.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:362 inspector/virt-v2v-inspector.pod:223\n#: open/virt-v2v-open.pod:134\nmsgid \"Files used are the same as for virt-v2v.  See L<virt-v2v(1)/FILES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:366 inspector/virt-v2v-inspector.pod:227\n#: open/virt-v2v-open.pod:138\nmsgid \"\"\n\"Environment variables used are the same as for virt-v2v.  See L<virt-v2v(1)/\"\n\"ENVIRONMENT VARIABLES>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: in-place/virt-v2v-in-place.pod:371\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-\"\n\"img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:3\nmsgid \"\"\n\"virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector [-i* options]\\n\"\n\"                    [virt-customize options]\\n\"\n\"                    guest\\n\"\n\"                    [-O output.xml]\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:14\nmsgid \"\"\n\"Virt-v2v-inspector is a companion tool for L<virt-v2v(1)> which can be used \"\n\"before conversion to estimate the number of output disks and disk space that \"\n\"will be required to complete the virt-v2v conversion.  The common use for \"\n\"this is to preallocate target disks on management systems that need this \"\n\"(like Kubevirt).\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:20\nmsgid \"\"\n\"This manual page only documents the estimation feature, not all of the I<-\"\n\"i*> options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:24 open/virt-v2v-open.pod:46\nmsgid \"Selecting the input guest\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:26\nmsgid \"\"\n\"You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v.  \"\n\"(Don't use any I<-o*> options).  This will select the guest that you want to \"\n\"estimate.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:30\nmsgid \"\"\n\"For example to estimate the space required for a guest in a stored local \"\n\"disk called F<filename.img> you could do:\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:33\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-inspector -i disk filename.img\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:35\nmsgid \"Output\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:37\nmsgid \"The output from this tool is an XML document.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:43\nmsgid \"\"\n\"Fields which are annotated with an C<estimated='true'> attribute are \"\n\"estimated.  Virt-v2v cannot always know exactly the final size of some \"\n\"things, such as the exact real size of the output disk, since there might be \"\n\"small perturbations between runs.  Estimates are usually very close to the \"\n\"final values.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:51\nmsgid \"Numbers representing sizes are always given in bytes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:55\nmsgid \"\"\n\"By default the output is written to stdout.  This is useful when using the \"\n\"program interactively.  However if you want to use this tool from another \"\n\"program it is better to send the output to a specific file using I<-O \"\n\"output.xml>\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:62\n#, no-wrap\nmsgid \"\"\n\" <?xml version='1.0' encoding='utf-8'?>\\n\"\n\" <v2v-inspection>\\n\"\n\"   <program>virt-v2v-inspector</program>\\n\"\n\"   <package>virt-v2v</package>\\n\"\n\"   <version>2.1.9</version>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:68\nmsgid \"\"\n\"The E<lt>programE<gt>, E<lt>packageE<gt> and E<lt>versionE<gt> elements \"\n\"refer to the current version of virt-v2v-inspector and are useful for \"\n\"debugging.  Make sure you use the same version of virt-v2v-inspector and \"\n\"virt-v2v.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:73\n#, no-wrap\nmsgid \"\"\n\"   <disks>\\n\"\n\"     <disk index='0'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>1400897536</allocated>\\n\"\n\"     </disk>\\n\"\n\"     <disk index='1'>\\n\"\n\"       <virtual-size>6442450944</virtual-size>\\n\"\n\"       <allocated estimated='true'>45131520</allocated>\\n\"\n\"     </disk>\\n\"\n\"   </disks>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:84\nmsgid \"\"\n\"The E<lt>disksE<gt> element lists information about each guest disk.  The \"\n\"example virtual machine above has two disks.  E<lt>virtual-sizeE<gt> \"\n\"describes the size of the disk as seen from inside the guest, while \"\n\"E<lt>allocatedE<gt> is an estimate of how much storage will be needed on the \"\n\"host after conversion.  This is assuming you use S<I<-oa sparse>> - see the \"\n\"notes below.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: inspector/virt-v2v-inspector.pod:91\n#, no-wrap\nmsgid \"\"\n\"   <operatingsystem>\\n\"\n\"     <name>linux</name>\\n\"\n\"     <distro>fedora</distro>\\n\"\n\"     <osinfo>fedora32</osinfo>\\n\"\n\"     <arch>x86_64</arch>\\n\"\n\"     [...]\\n\"\n\"   </operatingsystem>\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:99\nmsgid \"\"\n\"The E<lt>operatingsystemE<gt> element lists information about the guest \"\n\"operating system gleaned during conversion, in a manner similar to the \"\n\"L<virt-inspector(1)> tool from guestfs-tools.\"\nmsgstr \"\"\n\n#. type: =head2\n#: inspector/virt-v2v-inspector.pod:103\nmsgid \"Output allocation mode and output format\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:105\nmsgid \"\"\n\"Virt-v2v supports selecting the output allocation mode (I<-oa> option)  and \"\n\"output format (I<-of> option, eg. S<I<-of qcow2>>).  Since it is difficult \"\n\"to predict the effect of these options on the actual space occupied by the \"\n\"final image this tool does not account for them.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:110\nmsgid \"As a rule of thumb:\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:114\nmsgid \"S<virt-v2v -oa preallocated>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:116\nmsgid \"\"\n\"causes the disk images on the target to consume their full virtual size \"\n\"(excluding the effect of zero allocations will depends so much on the \"\n\"underlying storage that it is often hard even for experts to predict).\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:121\nmsgid \"S<virt-v2v -of qcow2>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:123\nmsgid \"\"\n\"uses the QCOW2 format where supported which means that the apparent size of \"\n\"the file will be equal to its sparse size, but otherwise should not affect \"\n\"estimates very much.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:137\nmsgid \"B<-O> F<output.xml>\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:139\nmsgid \"Write the output to a file called F<output.xml>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:143\nmsgid \"\"\n\"Write the output to stdout.  This is also the default if the I<-O> option is \"\n\"omitted.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:162 open/virt-v2v-open.pod:93\nmsgid \"B<-i> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:164 open/virt-v2v-open.pod:95\nmsgid \"B<-ic> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:166 open/virt-v2v-open.pod:97\nmsgid \"B<-if> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:168 open/virt-v2v-open.pod:99\nmsgid \"B<-io> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:170 open/virt-v2v-open.pod:101\nmsgid \"B<-ip> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:172 open/virt-v2v-open.pod:103\nmsgid \"B<-it> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:174\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v and also supported by virt-\"\n\"v2v-inspector.\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:187\nmsgid \"B<--key> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:191\nmsgid \"B<--mac> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:201\nmsgid \"B<-n> ...\"\nmsgstr \"\"\n\n#. type: =item\n#: inspector/virt-v2v-inspector.pod:203\nmsgid \"B<--network> ...\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:217 open/virt-v2v-open.pod:122\nmsgid \"These options work in the same way as the equivalent virt-v2v options.\"\nmsgstr \"\"\n\n#. type: textblock\n#: inspector/virt-v2v-inspector.pod:232\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<guestfs(3)>, \"\n\"L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, L<http://libguestfs.org/>.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:3\nmsgid \"virt-v2v-open - Open the virt-v2v input and run a program on it\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:7\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i* options] guest --run 'program [--options] @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:9\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:11\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:15\nmsgid \"\"\n\"Virt-v2v-open is a companion tool for L<virt-v2v(1)> and L<virt-v2v-\"\n\"inspector(1)> which can be used before conversion to open the input side of \"\n\"virt-v2v and run a program.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:19\nmsgid \"\"\n\"Some uses for this include running L<virt-inspector(1)> directly on the \"\n\"source guest to find source operating systems (to use with the virt-v2v I<--\"\n\"root> option).  Or running guestfish to take a look inside the source guest \"\n\"before conversion.  You can follow that by running L<virt-v2v-inspector(1)> \"\n\"to estimate how much space would be needed to convert that guest, and if \"\n\"conversion of the guest is possible.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:27\nmsgid \"\"\n\"This manual page only documents the program options, not all of the I<-i*> \"\n\"options which are the same as virt-v2v.  You should read L<virt-v2v(1)> \"\n\"first.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:31\nmsgid \"Notes:\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:37\nmsgid \"\"\n\"The source guest is always opened read-only.  You will not be able to make \"\n\"persistent changes.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:42\nmsgid \"L<virt-inspector(1)> can be used directly on local disk images.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:48\nmsgid \"\"\n\"You can run virt-v2v-open with the same I<-i*> options as virt-v2v.  (Don't \"\n\"use any I<-o*> options).  This will select the guest that you want to open.\"\nmsgstr \"\"\n\n#. type: =head2\n#: open/virt-v2v-open.pod:52\nmsgid \"Running the program\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:54\nmsgid \"\"\n\"On the command line, put the program that you want to run on the source \"\n\"guest and any other parameters that program needs into the I<--run> \"\n\"parameter.  C<@@> in the parameter is substituted with I<-a DISK ...> for \"\n\"each source disk, in a way which is compatible with L<virt-inspector(1)> and \"\n\"L<guestfish(1)>.\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:60\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'virt-inspector --format=raw @@ > output.xml'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:63\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ -i'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: verbatim\n#: open/virt-v2v-open.pod:66\n#, no-wrap\nmsgid \"\"\n\" virt-v2v-open [-i ...] guest \\\\\\n\"\n\"               --run 'guestfish --ro --format=raw @@ run : list-filesystems'\\n\"\n\"\\n\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:105\nmsgid \"\"\n\"All of the I<-i*> options supported by virt-v2v are also supported by virt-\"\n\"v2v-open.\"\nmsgstr \"\"\n\n#. type: =item\n#: open/virt-v2v-open.pod:124\nmsgid \"B<--run> COMMAND\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:126\nmsgid \"\"\n\"The command that you want to run on the source guest.  C<@@> in the command \"\n\"is substituted with a list of I<-a DISK> options that is compatible with \"\n\"virt-inspector and guestfish.\"\nmsgstr \"\"\n\n#. type: textblock\n#: open/virt-v2v-open.pod:143\nmsgid \"\"\n\"L<virt-v2v(1)>, L<virt-p2v(1)>, L<virt-inspector(1)>, L<virt-v2v-\"\n\"inspector(1)>, L<guestfs(3)>, L<guestfish(1)>, L<qemu-img(1)>, L<nbdkit(1)>, \"\n\"L<http://libguestfs.org/>.\"\nmsgstr \"\"\n"
  },
  {
    "path": "podcheck.pl",
    "content": "#!/usr/bin/env perl\n# podcheck.pl\n# Copyright (C) 2016 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nuse warnings;\nuse strict;\n\nuse Pod::Usage;\nuse Getopt::Long;\nuse Pod::Man;\n\n=head1 NAME\n\npodcheck.pl - Compare man page and tools to check all arguments are documented\n\n=head1 SYNOPSIS\n\n podcheck.pl virt-foo.pod ./virt-foo [--ignore=--arg,--arg,...]\n\n=head1 DESCRIPTION\n\nThis script compares a manual page (eg. C<virt-foo.pod>) and the\ncorresponding tool (eg. C<./virt-foo>) and checks that each command\nline argument is documented in the manual, and that there is no rogue\ndocumentation for arguments which do not exist.  It works by running\nthe tool with the standard C<--long-options> and C<--short-options>\nparameters and comparing their output with the man page.\n\nYou can also ignore options, in case this script gets things wrong or\nif there are options that you don't intend to document.\n\n=head1 OPTIONS\n\n=over 4\n\n=cut\n\nmy $help;\n\n=item B<--help>\n\nDisplay brief help.\n\n=cut\n\nmy $ignore = \"\";\n\n=item B<--ignore=--arg,--arg,...>\n\nIgnore the comma-separated list of arguments given.\n\n=cut\n\nmy @inserts;\n\n=item B<--insert filename:__PATTERN__>\n\nThis works like the L<podwrapper.pl(1)> I<--insert> option and should be\nused where the POD includes patterns which podwrapper would substitute.\n\n=cut\n\nmy @verbatims;\n\n=item B<--verbatim filename:__PATTERN__>\n\nThis works like the podwrapper I<--verbatim> option and should be\nused where the POD includes patterns which podwrapper would substitute.\n\n=cut\n\nmy @paths;\n\n=item B<--path DIR>\n\nThis works like the L<podwrapper.pl(1)> I<--path> option and should be\nused where the POD includes patterns which podwrapper would substitute.\n\n=cut\n\n# Clean up the program name.\nmy $progname = $0;\n$progname =~ s{.*/}{};\n\n# Parse options.\nGetOptions (\"help|?\" => \\$help,\n            \"ignore=s\" => \\$ignore,\n            \"insert=s\" => \\@inserts,\n            \"path=s\" => \\@paths,\n            \"verbatim=s\" => \\@verbatims,\n    ) or pod2usage (2);\npod2usage (1) if $help;\n\ndie \"$progname: missing argument: podcheck.pl input.pod tool\\n\"\n    unless @ARGV == 2;\nmy $input = $ARGV[0];\nmy $tool = $ARGV[1];\n\nmy %ignore = ();\n$ignore{$_} = 1 foreach (split /,/, $ignore);\n\n# Open the man page and slurp it in.\nmy $content = read_whole_file ($input);\n\n# Perform @inserts.\nforeach (@inserts) {\n    my @a = split /:/, $_, 2;\n    die \"$progname: $input: no colon in parameter of --insert\\n\" unless @a >= 2;\n    my $replacement = read_whole_file ($a[0]);\n    my $oldcontent = $content;\n    $content =~ s/$a[1]/$replacement/ge;\n    die \"$progname: $input: could not find pattern '$a[1]' in input file\\n\"\n        if $content eq $oldcontent;\n}\n\n# Perform INCLUDE directives.\n$content =~ s{__INCLUDE:([-a-z0-9_]+\\.pod)__}\n             {read_whole_file (\"$1\", use_path => 1)}ge;\n\n# Perform @verbatims.\nforeach (@verbatims) {\n    my @a = split /:/, $_, 2;\n    die \"$progname: $input: no colon in parameter of --verbatim\\n\" unless @a >= 2;\n    my $replacement = read_verbatim_file ($a[0]);\n    my $oldcontent = $content;\n    $content =~ s/$a[1]/$replacement/ge;\n    die \"$progname: $input: could not find pattern '$a[1]' in input file\\n\"\n        if $content eq $oldcontent;\n}\n\n# Perform VERBATIM directives.\n$content =~ s{__VERBATIM:([-a-z0-9_]+\\.txt)__}\n             {read_verbatim_file (\"$1\", use_path => 1)}ge;\n\n# Run the tool with --long-options and --short-options.\nmy @tool_options = ();\nopen PIPE, \"$tool --long-options |\"\n    or die \"$progname: $tool --long-options: $!\";\nwhile (<PIPE>) {\n    chomp;\n    push @tool_options, $_;\n}\nclose PIPE;\nopen PIPE, \"$tool --short-options |\"\n    or die \"$progname: $tool --short-options: $!\";\nwhile (<PIPE>) {\n    chomp;\n    push @tool_options, $_;\n}\nclose PIPE;\n\nmy %tool_option_exists = ();\n$tool_option_exists{$_} = 1 foreach @tool_options;\n\n# There are some tool options which we automatically ignore.\ndelete $tool_option_exists{\"--color\"};\ndelete $tool_option_exists{\"--colour\"};\ndelete $tool_option_exists{\"--debug-gc\"};\n\n# Run the tool with --help.\nmy $help_content;\nopen PIPE, \"LANG=C $tool --help |\"\n    or die \"$progname: $tool --help: $!\";\n{\n    local $/ = undef;\n    $help_content = <PIPE>;\n}\nclose PIPE;\n\n# Do the tests.\nmy $errors = 0;\n\n# Check each option exists in the manual.\nmy $tool_options_checked = 0;\n\nforeach (sort keys %tool_option_exists) {\n    unless ($ignore{$_}) {\n        $tool_options_checked++;\n        unless ($content =~ /^=item.*B<$_(?:=.*)?>/m) {\n            $errors++;\n            warn \"$progname: $input does not define $_\\n\";\n        }\n    }\n}\n\n# Check there are no extra options defined in the manual which\n# don't exist in the tool.\nmy $pod_options_checked = 0;\n\nmy %pod_options = ();\n$pod_options{$_} = 1 foreach ( $content =~ /^=item.*B<(-[-\\w]+)(?:=.*)?>/gm );\nforeach (sort keys %pod_options) {\n    unless ($ignore{$_}) {\n        $pod_options_checked++;\n        unless (exists $tool_option_exists{$_}) {\n            $errors++;\n            warn \"$progname: $input defines option $_ which does not exist in the tool\\n\"\n        }\n    }\n}\n\n# Check the tool's --help output mentions all the options.  (For OCaml\n# tools this is a waste of time since the --help output is generated,\n# but for C tools it is a genuine test).\nmy $help_options_checked = 0;\n\nmy %help_options = ();\n$help_options{$_} = 1 foreach ( $help_content =~ /(?<!\\w)(-[-\\w]+)/g );\n\n# There are some help options which we automatically ignore.\ndelete $help_options{\"--color\"};\ndelete $help_options{\"--colour\"};\n# \"[--options]\" is used as a placeholder for options in the synopsis\n# text, so ignore it.\ndelete $help_options{\"--options\"};\n\nforeach (sort keys %tool_option_exists) {\n    unless ($ignore{$_}) {\n        unless (exists $help_options{$_}) {\n            $errors++;\n            warn \"$progname: $tool: option $_ does not appear in --help output\\n\"\n        }\n    }\n}\n\nforeach (sort keys %help_options) {\n    unless ($ignore{$_}) {\n        $help_options_checked++;\n        unless (exists $tool_option_exists{$_}) {\n            $errors++;\n            warn \"$progname: $tool: unknown option $_ appears in --help output\\n\"\n        }\n    }\n}\n\nexit 1 if $errors > 0;\n\nprintf \"$progname: $tool: checked $tool_options_checked tool options, $pod_options_checked documented options, $help_options_checked help options\\n\";\n\nexit 0;\n\nsub find_file\n{\n    my $input = shift;\n    my $use_path = shift;\n    local $_;\n\n    my @search_path = (\".\");\n    push (@search_path, @paths) if $use_path;\n    foreach (@search_path) {\n        return \"$_/$input\" if -f \"$_/$input\";\n    }\n    die \"$progname: $input: cannot find input file on path\"\n}\n\nsub read_whole_file\n{\n    my $input = shift;\n    my %options = @_;\n    local $/ = undef;\n\n    $input = find_file ($input, $options{use_path});\n    open FILE, $input or die \"$progname: $input: $!\";\n    $_ = <FILE>;\n    close FILE;\n    $_;\n}\n\nsub read_verbatim_file\n{\n    my $input = shift;\n    my %options = @_;\n    my $r = \"\";\n\n    $input = find_file ($input, $options{use_path});\n    open FILE, $input or die \"$progname: $input: $!\";\n    while (<FILE>) {\n        $r .= \" $_\";\n    }\n    close FILE;\n    $r;\n}\n\n=head1 SEE ALSO\n\nL<podwrapper.pl(1)>,\nlibguestfs.git/README.\n\n=head1 AUTHOR\n\nRichard W.M. Jones.\n\n=head1 COPYRIGHT\n\nCopyright (C) 2016 Red Hat Inc.\n"
  },
  {
    "path": "podwrapper.pl.in",
    "content": "#!/usr/bin/env perl\n# podwrapper.pl\n# Copyright (C) 2010-2025 Red Hat Inc.\n# @configure_input@\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nuse warnings;\nuse strict;\n\nuse Pod::Usage;\nuse Getopt::Long;\nuse Pod::Man;\nuse Pod::Simple;\nuse Pod::Simple::Text;\nuse Pod::Simple::XHTML;\nuse File::Basename;\n\n# https://www.redhat.com/archives/libguestfs/2013-May/thread.html#00088\neval { $Text::Wrap::huge = \"overflow\" };\n\n=head1 NAME\n\npodwrapper.pl - Generate libguestfs documentation from POD input files\n\n=head1 SYNOPSIS\n\n man_MANS = virt-foo.1\n \n virt-foo.1 $(top_builddir)/website/virt-foo.1.html: stamp-virt-foo.pod\n \n stamp-virt-foo.pod: virt-foo.pod\n         $(PODWRAPPER) \\\n           --section 1 \\\n           --man virt-foo.1 \\\n           --html $(top_builddir)/website/virt-foo.1.html \\\n           --license GPLv2+ \\\n           --warning general \\\n           $<\n         touch $@\n\n=head1 DESCRIPTION\n\npodwrapper.pl is a Perl script that generates various output formats\nfrom POD input files that libguestfs uses for most documentation.\n\nYou must specify one input file, and one or more output formats.  The\noutput options are I<--man>, I<--html> and I<--text> (see below).\n\nIn C<Makefile.am> files, use a variation of the boilerplate shown in\nthe L</SYNOPSIS> section above.\n\n=head1 POD FORMAT\n\nFor general information about the POD format, see L<perlpod(1)>.\n\npodwrapper.pl has a couple of extensions for including files:\n\n=over 4\n\n=item C<__INCLUDE:F<filename.pod>__>\n\nInclude another POD file at the current position (this does not work\nrecursively).\n\nThe filename is found by searching first the current directory,\nthen each I<--path> directory (if used).\n\n=item C<__VERBATIM:F<filename.txt>__>\n\nAs above but the file is included as verbatim text, meaning it is\nprefixed by one space before being passed to POD processing.\n\n=back\n\n=head1 OPTIONS\n\n=over 4\n\n=cut\n\nmy $help;\n\n=item B<--help>\n\nDisplay brief help.\n\n=cut\n\nmy $html;\n\n=item B<--html output.html>\n\nWrite a web page to C<output.html>.  If this option is not\ngiven, then no web page output is produced.\n\n=cut\n\nmy @inserts;\n\n=item B<--insert filename:__PATTERN__>\n\nIn the input file, replace the literal text C<__PATTERN__> with the\nreplacement file C<filename>.  You can give this option multiple\ntimes.\n\nThe contents of C<filename> are treated as POD.\nCompare and contrast with I<--verbatim>.\n\nAlthough it is conventional to use C<__...__> (double underscores) for\npatterns, in fact you can use any string as the pattern.\n\n=cut\n\nmy @licenses;\n\n=item B<--license GPLv2+>\n\n=item B<--license LGPLv2+>\n\n=item B<--license examples>\n\nAdd the given license to the end of the man page.  This parameter\nis required.  The parameter may be given multiple times (eg. for\nmixed content).\n\n=cut\n\nmy $man;\n\n=item B<--man output.n>\n\nWrite a man page to C<output.n> (C<n> is the manual section number).\nIf this option is not given, then no man page output is produced.\n\n=cut\n\nmy $name;\n\n=item B<--name name>\n\nSet the name of the man page.  If not set, defaults to the basename\nof the input file.\n\n=cut\n\nmy @paths;\n\n=item B<--path DIR>\n\nSet the path used for searching for included files (see L</POD FORMAT>\nabove).  The current directory is always searched first so you don’t\nneed to add that explicitly.  Multiple I<--path> parameters can be\ngiven, they are searched in order.\n\n=cut\n\nmy $pp;\n\n=item B<--pp \"PREPROCESSOR\">\n\nThe whole POD input is passed through the preprocessor command.  This\nis done very easy, immediately after reading the file, and before any\nother processing.  For example: I<--pp \"cpp -DDEBUG=1\">\n\n=cut\n\nmy $section;\n\n=item B<--section N>\n\nSet the section of the man page (a number such as C<1> for\ncommand line utilities or C<3> for C API documentation).  If\nnot set, defaults to C<1>.\n\n=cut\n\nmy $strict_checks = 1;\n\n=item B<--no-strict-checks>\n\nDisable strict checks of the man page.  This is only used\nwhen generating the translated man pages in the C<po-docs>\nsubdirectory.\n\n=cut\n\nmy $text;\n\n=item B<--text output.txt>\n\nWrite a text file to C<output.txt>.  If this option is not\ngiven, then no text output is produced.\n\n=cut\n\nmy @verbatims;\n\n=item B<--verbatim filename:__PATTERN__>\n\nIn the input file, replace the literal text C<__PATTERN__> with the\nreplacement file C<filename>.  You can give this option multiple\ntimes.\n\nThe contents of C<filename> are inserted as verbatim text, and\nare I<not> interpreted as POD.\nCompare and contrast with I<--insert>.\n\nAlthough it is conventional to use C<__...__> (double underscores) for\npatterns, in fact you can use any string as the pattern.\n\n=cut\n\nmy $warning = \"not-set\";\n\n=item B<--warning general>\n\n=item B<--warning ro-option>\n\nAdd a standard warning section near the top of the manual page,\nwarning the user not to use the tool in write mode or concurrently.\n\nThere are two variations of the warning: The I<--warning ro-option>\nvariation should be used with tools such as L<guestfish(1)> which have\nan I<--ro> option.  The I<--warning general> variation should be used\nwith other tools that open the disk image for writes, with no\nread-only option.\n\n=item B<--warning custom>\n\nUse I<--warning custom> if there is already a warning section in the\nmanual page.\n\n=item B<--warning safe>\n\nUse I<--warning safe> for tools which are safe, ie. only open disk\nimages in read-only mode, or just don't need a warning section.\n\n=back\n\n=cut\n\n# Clean up the program name.\nmy $progname = $0;\n$progname =~ s{.*/}{};\n\n# Parse options.\nGetOptions (\"help|?\" => \\$help,\n            \"html=s\" => \\$html,\n            \"license=s\" => \\@licenses,\n            \"insert=s\" => \\@inserts,\n            \"man=s\" => \\$man,\n            \"name=s\" => \\$name,\n            \"path=s\" => \\@paths,\n            \"pp=s\" => \\$pp,\n            \"section=s\" => \\$section,\n            \"strict-checks!\" => \\$strict_checks,\n            \"text=s\" => \\$text,\n            \"verbatim=s\" => \\@verbatims,\n            \"warning=s\" => \\$warning,\n    ) or pod2usage (2);\npod2usage (1) if $help;\n\ndie \"$progname: missing argument: podwrapper input.pod\\n\" unless @ARGV == 1;\nmy $input = $ARGV[0];\n\ndie \"$progname: $input: missing argument: --license parameter is required\\n\"\n    if $strict_checks && @licenses == 0;\n\n# There should be at least one output.\ndie \"$progname: $input: no output format specified.  Use --man and/or --html and/or --text.\\n\"\n    unless defined $man || defined $html || defined $text;\n\n# Default for $name and $section.\n$name = basename ($input, \".pod\") unless defined $name;\n$section = 1 unless defined $section;\n\n# Is it a user command line tool?\nmy $cli_tool = $section == 1 && $name !~ /^guestfs-/;\n\n# Warning parameter is mandatory for user tools in section 1.\nif ($strict_checks && $cli_tool) {\n    die \"$progname: $input: missing argument: --warning parameter is missing or invalid\\n\"\n        unless $warning eq \"general\" || $warning eq \"ro-option\" ||\n               $warning eq \"custom\" || $warning eq \"safe\";\n}\n\n# Note that these @...@ are substituted by ./configure.\nmy $abs_top_srcdir = \"@abs_top_srcdir@\";\nmy $abs_top_builddir = \"@abs_top_builddir@\";\nmy $package_name = \"@PACKAGE_NAME@\";\nmy $package_version = \"@PACKAGE_VERSION@\";\n\ndie \"$progname: ./configure substitutions were not performed\"\n    unless $abs_top_srcdir && $abs_top_builddir &&\n    $package_name && $package_version;\n\n# Create a stable date (thanks Hilko Bengen).\nmy $date;\nmy $filename = \"$abs_top_srcdir/.git\";\nif (-d $filename) {\n    local $ENV{GIT_DIR} = $filename;\n    $_ = `git show -s --format=%ci`;\n    $date = $1 if /^(\\d+-\\d+-\\d+)\\s/;\n}\nif (!$date) {\n    my ($day, $month, $year) = (gmtime($ENV{SOURCE_DATE_EPOCH} || time))[3,4,5];\n    $date = sprintf (\"%04d-%02d-%02d\", $year+1900, $month+1, $day);\n}\n\n# Create a release string.\nmy $release = \"$package_name-$package_version\";\n\n#print \"input=$input\\n\";\n#print \"name=$name\\n\";\n#print \"section=$section\\n\";\n#print \"date=$date\\n\";\n#print \"warning=$warning\\n\";\n\n# Read the input.\nmy $content = read_whole_file ($input);\n\n# Pass the input through the preprocessor.\nif ($pp) {\n    use IPC::Run3;\n    my $in = $content;\n    $content = \"\";\n    run3 ($pp, \\$in, \\$content);\n    die \"$progname: error: preprocessor failed (see errors above)\\n\" if $?;\n    die \"$progname: error: literal 'ifelse' appears in the output of the preprocessor.  It is likely that an m4 macro was not expanded\\n\"\n        if $content =~ /ifelse/\n}\n\n# Perform @inserts.\nforeach (@inserts) {\n    my @a = split /:/, $_, 2;\n    die \"$progname: $input: no colon in parameter of --insert\\n\" unless @a >= 2;\n    my $replacement = read_whole_file ($a[0]);\n    my $oldcontent = $content;\n    $content =~ s/$a[1]/$replacement/ge;\n    die \"$progname: $input: could not find pattern '$a[1]' in input file\\n\"\n        if $content eq $oldcontent;\n}\n\n# Perform INCLUDE directives.\n$content =~ s{__INCLUDE:([-a-z0-9_]+\\.pod)__}\n             {read_whole_file (\"$1\", use_path => 1)}ge;\n\n# Turn external links to this man page into simple cross-section links.\n$content =~ s,\\QL<$name($section)/\\E,L</,g;\n\n# Perform @verbatims.\nforeach (@verbatims) {\n    my @a = split /:/, $_, 2;\n    die \"$progname: $input: no colon in parameter of --verbatim\\n\" unless @a >= 2;\n    my $replacement = read_verbatim_file ($a[0]);\n    my $oldcontent = $content;\n    $content =~ s/$a[1]/$replacement/ge;\n    die \"$progname: $input: could not find pattern '$a[1]' in input file\\n\"\n        if $content eq $oldcontent;\n}\n\n# Perform VERBATIM directives.\n$content =~ s{__VERBATIM:([-a-z0-9_]+\\.txt)__}\n             {read_verbatim_file (\"$1\", use_path => 1)}ge;\n\n# There should be no =encoding line present in the content (we will add one).\ndie \"$progname: $input: =encoding must not be present in input\\n\"\n    if $content =~ /^=encoding/m;\n\n$content =~ s/^=(.*)/\\n=encoding utf8\\n\\n=$1/m;\n\nif ($strict_checks) {\n    # Verify sections present / not present.\n    die \"$progname: $input: missing DESCRIPTION section\\n\"\n        if $cli_tool && $content !~ /^=head1 DESCRIPTION/m;\n    die \"$progname: $input: missing AUTHOR or AUTHORS section\\n\"\n        unless $content =~ /^=head1 AUTHOR/m;\n    die \"$progname: $input: missing SEE ALSO section\\n\"\n        unless $content =~ /^=head1 SEE ALSO/m;\n    die \"$progname: $input: missing COPYRIGHT section\\n\"\n        unless $content =~ /^=head1 COPYRIGHT/m;\n    die \"$progname: $input: BUGS is now added automatically, do not add it to the POD file\\n\"\n        if $content =~ /^=head1 (REPORTING )?BUGS/m;\n    die \"$progname: $input: LICENSE is now added automatically, do not add it to the POD file\\n\"\n        if $content =~ /^=head1 LICENSE/m;\n    die \"$progname: $input: GPL/LGPL should be specified using the --license parameter, not included in the POD file\\n\"\n        if $content =~ /^This program is free software/ ||\n        $content =~ /^This library is free software/;\n    if ($warning eq \"general\" || $warning eq \"ro-option\" ||\n        $warning eq \"safe\") {\n        die \"$progname: $input: WARNING is now added automatically using the --warning parameter\\n\"\n            if $content =~ /^=head1 WARNING/m\n    }\n    elsif ($warning eq \"custom\") {\n        die \"$progname: $input: missing WARNING section\\n\"\n            unless $content =~ /^=head1 WARNING/m;\n    }\n}\n\n# Add standard LICENSE, BUGS and WARNING sections.\nmy $LGPLv2plus =\n\"This library is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as published\nby the Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis library is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this library; if not, write to the Free Software\nFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n02110-1301 USA\n\";\n\nmy $GPLv2plus =\n\"This program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\nGeneral Public License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\";\n\nmy $examples_license =\n\"This manual page contains examples which we hope you will use in\nyour programs.  The examples may be freely copied, modified and\ndistributed for any purpose without any restrictions.\n\";\n\nmy $reporting_bugs =\n\"=head1 BUGS\n\nTo get a list of bugs against libguestfs, use this link:\nL<https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools>\n\nTo report a new bug against libguestfs, use this link:\nL<https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools>\n\nWhen reporting a bug, please supply:\n\n\\=over 4\n\n\\=item *\n\nThe version of libguestfs.\n\n\\=item *\n\nWhere you got libguestfs (eg. which Linux distro, compiled from source, etc)\n\n\\=item *\n\nDescribe the bug accurately and give a way to reproduce it.\n\n\\=item *\n\nRun L<libguestfs-test-tool(1)> and paste the B<complete, unedited>\noutput into the bug report.\n\n\\=back\n\";\n\nmy $warning_general =\n\"Using C<$name>\non live virtual machines, or concurrently with other\ndisk editing tools, can be dangerous, potentially causing disk\ncorruption.  The virtual machine must be shut down before you use this\ncommand, and disk images must not be edited concurrently.\";\n\nmy $warning_ro_option =\n\"Using C<$name> in write mode\non live virtual machines, or concurrently with other\ndisk editing tools, can be dangerous, potentially causing disk\ncorruption.  The virtual machine must be shut down before you use this\ncommand, and disk images must not be edited concurrently.\n\nUse the I<--ro> (read-only) option to use C<$name> safely if the disk\nimage or virtual machine might be live.  You may see strange or\ninconsistent results if running concurrently with other changes, but\nwith this option you won't risk disk corruption.\";\n\n$content .= \"\\n\\n=head1 LICENSE\\n\\n\";\n\nforeach (@licenses) {\n    if ($_ eq \"LGPLv2+\") {\n        $content .= $LGPLv2plus . \"\\n\\n\";\n    }\n    elsif ($_ eq \"GPLv2+\") {\n        $content .= $GPLv2plus . \"\\n\\n\";\n    }\n    elsif ($_ eq \"examples\") {\n        $content .= $examples_license . \"\\n\\n\";\n    }\n    else {\n        die \"$progname: $input: invalid --license parameter: $_\\n\";\n    }\n}\n\n$content .= \"\\n\\n$reporting_bugs\";\n\nif ($warning eq \"general\") {\n    $content =~ s/^=head1 DESCRIPTION/=head1 WARNING\\n\\n$warning_general\\n\\n=head1 DESCRIPTION/m or die;\n}\nelsif ($warning eq \"ro-option\") {\n    $content =~ s/^=head1 DESCRIPTION/=head1 WARNING\\n\\n$warning_ro_option\\n\\n=head1 DESCRIPTION/m or die;\n}\n# else do nothing for $warning \"custom\", \"safe\" or \"not-set\"\n\n# Output man page.\nSUBMAN: {\n    package Podwrapper::Man;\n\n    use vars qw(@ISA $VERSION);\n    @ISA = qw(Pod::Man);\n    $VERSION = $package_version;\n\n    # Override the L<> method.\n    sub cmd_l\n    {\n        my ($self, $attrs, $text) = @_;\n        return $text;\n    }\n}\n\nif ($man) {\n    my $parser = Podwrapper::Man->new (\n        name => $name,\n        release => $release, section => $section,\n        center => \"Virtualization Support\",\n        date => $date,\n        stderr => 1, utf8 => 1\n    );\n    my $output;\n    $parser->no_errata_section (1);\n    $parser->complain_stderr (1);\n    $parser->output_string (\\$output);\n    $parser->parse_string_document ($content)\n        or die \"$progname: could not parse input document\";\n    open OUT, \">$man\" or die \"$progname: $man: $!\";\n    print OUT $output or die \"$progname: $man: $!\";\n    close OUT or die \"$progname: $man: $!\";\n    if ($parser->any_errata_seen) {\n        unlink $man;\n        die \"$input: errors or warnings in this POD file, see messages above\\n\"\n    }\n    #print \"$progname: wrote $man\\n\";\n}\n\n# Output HTML.\nSUBHTML: {\n    # Subclass Pod::Simple::XHTML.  See the documentation.\n    package Podwrapper::XHTML;\n\n    use vars qw(@ISA $VERSION);\n    @ISA = qw(Pod::Simple::XHTML);\n    $VERSION = $package_version;\n\n    # Pod::Simple::XHTML returns uppercase identifiers, whereas the\n    # old pod2html returns lowercase ones.\n    sub idify\n    {\n        my $self = shift;\n        my $id = $self->SUPER::idify (@_);\n        lc ($id);\n    }\n\n    # Note this also allows links to related projects because they all\n    # appear together under the http://libguestfs.org website.\n    sub is_a_local_page\n    {\n        local $_ = shift;\n\n        return 1 if /^Sys::Guestfs/;\n        return 0 if /^virt-install/;\n        return 1 if /^virt-/;\n        return 1 if /^libguestf/;\n        return 1 if /^guestf/;\n        return 1 if /^guestmount/;\n        return 1 if /^guestunmount/;\n        return 1 if /^hivex/;\n        return 1 if /^supermin/;\n        return 1 if /^libnbd/;\n        return 1 if /^nbd/;\n        return 0;\n    }\n\n    sub resolve_pod_page_link\n    {\n        my $self = shift;\n        my $podname = $_[0]; # eg. \"Sys::Guestfs\", can be undef\n        my $anchor = $_[1];  # eg. \"SYNOPSIS\", can be undef\n        my $r = \"\";\n        if (defined $podname) {\n            return $self->SUPER::resolve_pod_page_link (@_)\n                unless is_a_local_page ($podname);\n            $r .= \"$podname.3.html\"\n        }\n        $r .= \"#\" . $self->idify ($anchor, 1) if defined $anchor;\n        $r;\n    }\n\n    sub resolve_man_page_link\n    {\n        my $self = shift;\n        my $name = $_[0];   # eg. \"virt-make-fs(1)\", can be undef\n        my $anchor = $_[1]; # eg. \"SYNOPSIS\", can be undef\n        my $r = \"\";\n        if (defined $name) {\n            return $self->SUPER::resolve_man_page_link (@_)\n                unless is_a_local_page ($name);\n            $name =~ s/\\((.*)\\)$/.$1/;\n            $r .= \"$name.html\";\n        }\n        $r .= \"#\" . $self->idify ($anchor, 1) if defined $anchor;\n        $r;\n    }\n\n    # For some reason Pod::Simple::XHTML usually cannot find a\n    # title for the page.  This defaults the HTML <title> field\n    # to the same as the man page name.\n    sub default_title { $name }\n}\n\nif ($html) {\n    mkdir \"$abs_top_builddir/website\";\n\n    my $parser = Podwrapper::XHTML->new;\n    my $output;\n    $parser->no_errata_section (1);\n    $parser->complain_stderr (1);\n    $parser->output_string (\\$output);\n    # Added in Pod::Simple 3.16, 2011-03-14.\n    eval { $parser->html_charset (\"UTF-8\") };\n    $parser->html_css (\"pod.css\");\n    $parser->index (1);\n    $parser->parse_string_document ($content);\n\n    # Hack for Perl 5.16.\n    $output =~ s{/>pod.css<}{/>\\n<};\n\n    open OUT, \">$html\" or die \"$progname: $html: $!\";\n    print OUT $output or die \"$progname: $html: $!\";\n    close OUT or die \"$progname: $html: $!\";\n    if ($parser->any_errata_seen) {\n        unlink $html;\n        die \"$input: errors or warnings in this POD file, see messages above\\n\"\n    }\n    #print \"$progname: wrote $html\\n\";\n}\n\n# Output text.\nif ($text) {\n    my $parser = Pod::Simple::Text->new;\n    my $output;\n    $parser->no_errata_section (1);\n    $parser->complain_stderr (1);\n    $parser->output_string (\\$output);\n    $parser->parse_string_document ($content);\n    open OUT, \">$text\" or die \"$progname: $text: $!\";\n    binmode OUT, \":utf8\";\n    print OUT $output or die \"$progname: $text: $!\";\n    close OUT or die \"$progname: $text: $!\";\n    if ($parser->any_errata_seen) {\n        unlink $text;\n        die \"$input: errors or warnings in this POD file, see messages above\\n\"\n    }\n    #print \"$progname: wrote $text\\n\";\n}\n\nsub find_file\n{\n    my $input = shift;\n    my $use_path = shift;\n    local $_;\n\n    my @search_path = (\".\");\n    push (@search_path, @paths) if $use_path;\n    foreach (@search_path) {\n        return \"$_/$input\" if -f \"$_/$input\";\n    }\n    die \"$progname: $input: cannot find input file on path\"\n}\n\nsub read_whole_file\n{\n    my $input = shift;\n    my %options = @_;\n    local $/ = undef;\n\n    $input = find_file ($input, $options{use_path});\n    open FILE, $input or die \"$progname: $input: $!\";\n    $_ = <FILE>;\n    close FILE;\n    $_;\n}\n\nsub read_verbatim_file\n{\n    my $input = shift;\n    my %options = @_;\n    my $r = \"\";\n\n    $input = find_file ($input, $options{use_path});\n    open FILE, $input or die \"$progname: $input: $!\";\n    while (<FILE>) {\n        $r .= \" $_\";\n    }\n    close FILE;\n    $r;\n}\n\n=head1 SEE ALSO\n\nL<perlpod(1)>,\nL<Pod::Simple(3pm)>,\nlibguestfs.git/README.\n\n=head1 AUTHOR\n\nRichard W.M. Jones.\n\n=head1 COPYRIGHT\n\nCopyright (C) 2012-2025 Red Hat Inc.\n"
  },
  {
    "path": "run.in",
    "content": "#!/bin/bash -\n# libguestfs 'run' programs locally script\n# Copyright (C) 2011-2025 Red Hat Inc.\n#\n# @configure_input@\n#\n# This library is free software; you can redistribute it and/or\n# modify it under the terms of the GNU Lesser General Public\n# License as published by the Free Software Foundation; either\n# version 2 of the License, or (at your option) any later version.\n#\n# This library is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n# Lesser General Public License for more details.\n#\n# You should have received a copy of the GNU Lesser General Public\n# License along with this library; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n#----------------------------------------------------------------------\n\n# With this script you can run all the virt tools without needing to\n# install them first.  You just have to do for example:\n#\n#   ./run virt-v2v [args ...]\n#\n# This works for any C program, virt tools, and most non-C bindings\n# and programs in the libguestfs distribution.\n#\n# For lots more ways to use this script, see the libguestfs\n# guestfs-building(1) man page.\n#\n# The script should also be used for tests like this:\n#\n#   TESTS_ENVIRONMENT = ... $(top_builddir)/run --test\n#\n# The --test parameter introduces a timeout, stopping tests from\n# running forever.\n\n#----------------------------------------------------------------------\n\nif [ \"$1\" = \"--test\" ]; then\n    timeout_mode=1\n    shift\nfi\n\n# Function to intelligently prepend a path to an environment variable.\n# See http://stackoverflow.com/a/9631350\nprepend()\n{\n    eval $1=\"$2\\${$1:+:\\$$1}\"\n}\n\n# Source and build directories (absolute paths so this works from any\n# directory).\ns=\"$(cd @abs_srcdir@ && pwd)\"\nb=\"$(cd @abs_builddir@ && pwd)\"\n\n# Set tmpdir and cachedir so the appliance doesn't conflict with\n# globally installed libguestfs.\n#\n# We set it to a subdirectory ('tmp') so that we can label this\n# subdirectory to make libvirt + sVirt + SELinux enforcing work.\nexport LIBGUESTFS_TMPDIR=\"$b/tmp\"\nexport LIBGUESTFS_CACHEDIR=\"$b/tmp\"\nmkdir -p \"$b/tmp\"\nchcon --reference=/tmp \"$b/tmp\" 2>/dev/null ||:\n\n# Set the PATH to contain the virt-v2v and other binaries.\nprepend PATH \"$b/v2v\"\nprepend PATH \"$b/in-place\"\nprepend PATH \"$b/inspector\"\nprepend PATH \"$b/open\"\nexport PATH\n\n# This is a cheap way to find some use-after-free and uninitialized\n# read problems when using glibc.  But if we are valgrinding then\n# don't use this because it can stop valgrind from working.\nif [ -z \"$VG\" ]; then\n    random_val=\"$(@AWK@ 'BEGIN{srand(); print 1+int(255*rand())}' < /dev/null)\"\n    LD_PRELOAD=\"${LD_PRELOAD:+\"$LD_PRELOAD:\"}libc_malloc_debug.so.0\"\n    GLIBC_TUNABLES=glibc.malloc.check=1:glibc.malloc.perturb=$random_val\n    export LD_PRELOAD GLIBC_TUNABLES\nfi\n\n# Do we have libtool?  If we have it then we can use it to make\n# running valgrind simpler.  However don't depend on it.\nif libtool --help >/dev/null 2>&1; then\n    libtool=\"libtool --mode=execute\"\nfi\n\n# Avoid GNOME keyring stupidity\nexport GNOME_KEYRING_CONTROL=\nexport GNOME_KEYRING_PID=\n\n# Run the program.\nif [ -z \"$timeout_mode\" ]; then\n    exec $libtool \"$@\"\nfi\n\n# For tests (./run --test):\n#  - timeout if the test takes too long to run\n\n# Originally 1h, but that is not long enough to run the C API\n# tests on Koji.\ntimeout_period=4h\ntimeout_kill=30s\n\n# Must use the --foreground option (RHBZ#1025269).\nif timeout --foreground 2 sleep 0 >/dev/null 2>&1; then\n    # Does this version of timeout have the -k option?  (Not on RHEL 6)\n    if timeout -k 10s 10s true >/dev/null 2>&1; then\n        timeout=\"timeout --foreground -k $timeout_kill $timeout_period\"\n    fi\nfi\n\n$timeout $libtool \"$@\"\nfail=$?\nif [ \"$fail\" -eq 0 ]; then\n    # Test successful.\n    :\nelif [ \"$fail\" -eq 77 ]; then\n    # Tests return 77 to mean skipped.\n    :\nelif [ \"$fail\" -eq 124 ]; then\n    # Timed out.\n    echo \"$b/run: command timed out after $timeout_period\"\nelse\n    # Test failed.\n    echo \"$b/run: command failed with exit code $fail\"\nfi\nexit $fail\n"
  },
  {
    "path": "scripts/git.orderfile",
    "content": "# virt-v2v\n# Originally from nbdkit\n# Copyright (C) 2018-2025 Red Hat Inc.\n#\n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions are\n# met:\n#\n# * Redistributions of source code must retain the above copyright\n# notice, this list of conditions and the following disclaimer.\n#\n# * Redistributions in binary form must reproduce the above copyright\n# notice, this list of conditions and the following disclaimer in the\n# documentation and/or other materials provided with the distribution.\n#\n# * Neither the name of Red Hat nor the names of its contributors may be\n# used to endorse or promote products derived from this software without\n# specific prior written permission.\n#\n# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND\n# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\n# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR\n# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF\n# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\n# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n# SUCH DAMAGE.\n\n# You can use this to change the ordering of files within patches to\n# make them easier to follow.\n#\n# Use:\n#   git diff -O scripts/git.orderfile\n#\n# Or make the change permanently by doing:\n#   git config diff.orderFile scripts/git.orderfile\n\n# Documentation.\nTODO\ndocs/*\n*.pod\n\n# Build files.\nconfigure.ac\nMakefile.am\n**/Makefile.am\n\n# Header files.\n*.mli\n*.h\n\n# Source files.\n*.ml\n*.c\n\n# Tests.\ntests/*\n"
  },
  {
    "path": "subdir-rules.mk",
    "content": "# libguestfs\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# subdir-rules.mk should be included in every *subdirectory* Makefile.am.\n\ninclude $(top_srcdir)/common-rules.mk\n\n# Individual Makefile.am's should define generator_built if that\n# subdirectory contains any files which are built by the generator.\n# Set generator_built to the list of those files.\n\n$(generator_built): $(top_builddir)/generator/stamp-generator\n\n$(top_builddir)/generator/stamp-generator: $(top_builddir)/generator/generator\n\t@if test -f $(top_builddir)/generator/Makefile; then \\\n\t  $(MAKE) -C $(top_builddir)/generator stamp-generator; \\\n\tfi\n\n# If this file doesn't exist, just print a warning and continue.\n# During 'make distclean' we can end up deleting this file.\n$(top_builddir)/generator/generator:\n\t@if test -f $(top_builddir)/generator/Makefile; then \\\n\t  $(MAKE) -C $(top_builddir)/generator generator; \\\n\tfi\n\n# Rules for building OCaml objects.\n# See also:\n# guestfs-hacking(1) section \"HOW OCAML PROGRAMS ARE COMPILED AND LINKED\"\n\nif !HAVE_OCAMLOPT\nMLARCHIVE = cma\nMLOBJECT = cmo\nLINK_CUSTOM_OCAMLC_ONLY = -output-complete-exe\nBEST = c\nelse\nMLARCHIVE = cmxa\nMLOBJECT = cmx\nBEST = opt\nendif\n\n# custom silent rules\nguestfs_am_v_ocamlc = $(guestfs_am_v_ocamlc_@AM_V@)\nguestfs_am_v_ocamlc_ = $(guestfs_am_v_ocamlc_@AM_DEFAULT_V@)\nguestfs_am_v_ocamlc_0 = @echo \"  OCAMLC  \" $@;\nguestfs_am_v_ocamlcmi= $(guestfs_am_v_ocamlcmi_@AM_V@)\nguestfs_am_v_ocamlcmi_ = $(guestfs_am_v_ocamlcmi_@AM_DEFAULT_V@)\nguestfs_am_v_ocamlcmi_0 = @echo \"  OCAMLCMI\" $@;\nguestfs_am_v_ocamlopt = $(guestfs_am_v_ocamlopt_@AM_V@)\nguestfs_am_v_ocamlopt_ = $(guestfs_am_v_ocamlopt_@AM_DEFAULT_V@)\nguestfs_am_v_ocamlopt_0 = @echo \"  OCAMLOPT\" $@;\nguestfs_am_v_javac = $(guestfs_am_v_javac_@AM_V@)\nguestfs_am_v_javac_ = $(guestfs_am_v_javac_@AM_DEFAULT_V@)\nguestfs_am_v_javac_0 = @echo \"  JAVAC   \" $@;\nguestfs_am_v_erlc = $(guestfs_am_v_erlc_@AM_V@)\nguestfs_am_v_erlc_ = $(guestfs_am_v_erlc_@AM_DEFAULT_V@)\nguestfs_am_v_erlc_0 = @echo \"  ERLC    \" $@;\nguestfs_am_v_podwrapper = $(guestfs_am_v_podwrapper_@AM_V@)\nguestfs_am_v_podwrapper_ = $(guestfs_am_v_podwrapper_@AM_DEFAULT_V@)\nguestfs_am_v_podwrapper_0 = @echo \"  POD     \" $@;\nguestfs_am_v_jar = $(guestfs_am_v_jar_@AM_V@)\nguestfs_am_v_jar_ = $(guestfs_am_v_jar_@AM_DEFAULT_V@)\nguestfs_am_v_jar_0 = @echo \"  JAR     \" $@;\nguestfs_am_v_po4a_translate = $(guestfs_am_v_po4a_translate_@AM_V@)\nguestfs_am_v_po4a_translate_ = $(guestfs_am_v_po4a_translate_@AM_DEFAULT_V@)\nguestfs_am_v_po4a_translate_0 = @echo \"  PO4A-T  \" $@;\n\n%.cmi: %.mli\n\t$(guestfs_am_v_ocamlcmi)$(OCAMLFIND) ocamlc -package guestfs $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@\n%.cmo: %.ml\n\t$(guestfs_am_v_ocamlc)$(OCAMLFIND) ocamlc -package guestfs $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@\nif HAVE_OCAMLOPT\n%.cmx: %.ml\n\t$(guestfs_am_v_ocamlopt)$(OCAMLFIND) ocamlopt -package guestfs $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@\nendif\n"
  },
  {
    "path": "test-data/Makefile.am",
    "content": "# libguestfs test images\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nSUBDIRS  = binaries\nSUBDIRS += phony-guests\nSUBDIRS += fake-virtio-win fake-virt-tools\nSUBDIRS += .\n"
  },
  {
    "path": "test-data/binaries/Makefile.am",
    "content": "# libguestfs test images\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nEXTRA_DIST = \\\n\tREADME \\\n\tbin-win32.exe \\\n\tbin-win64.exe \\\n\tbin-x86_64-dynamic\n"
  },
  {
    "path": "test-data/binaries/README",
    "content": "The bin-* and lib-* files are used for building phony guest images\n(see test-data/phony-guests).\n\nThe bin-* files are generated from empty source files (ie.\n\"main(){}\") on the respective architectures.\n\nThe lib-* files are generated from a (really) empty source file called\nlib.c which is linked into a library using gcc -shared on the\nrespective architectures.\n\nIf you are concerned that these binary files \"lack source\" then you\ncan just remove them, but you may need to patch out various tests.\n"
  },
  {
    "path": "test-data/fake-virt-tools/Makefile.am",
    "content": "# libguestfs test images\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Fake virt-tools.\n#\n# Tests in the v2v subdirectory can set VIRT_TOOLS_DATA_DIR to point\n# to this directory in order to test conversions.\n#\n# Note that the \"binaries\" are not real!\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nEXTRA_DIST = \\\n\tpnp_wait.exe \\\n\trhsrvany.exe \\\n\tvmdp.exe\n"
  },
  {
    "path": "test-data/fake-virtio-win/Makefile.am",
    "content": "# libguestfs test images\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Fake virtio-win (Windows virtio) drivers.\n#\n# Tests in the v2v subdirectory can set VIRTIO_WIN to point to this\n# directory, or to the .iso file in this directory, in order to test\n# conversions.\n#\n# Generate virtio-win-drivers-list.txt with:\n#   cd /usr/share/virtio-win && find drivers -type f | sort\n#\n# Generate virtio-win-iso-list.txt with:\n#   mkdir cd\n#   sudo mount /usr/share/virtio-win/virtio-win.iso cd\n#   find cd -type f | sort\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nEXTRA_DIST = virtio-win-drivers-list.txt virtio-win-iso-list.txt\n\ncheck_DATA = drivers cd fake-virtio-win.iso\n\nCLEANFILES += fake-virtio-win.iso\n\nclean-local:\n\t-rm -rf drivers\n\t-rm -rf cd\n\ndrivers: virtio-win-drivers-list.txt\n\twhile read line; do\t\t\t\\\n\t\tmkdir -p `dirname $$line`;\t\\\n\t\ttouch \"$$line\";\t\t\t\\\n\tdone < $<\n\ncd: virtio-win-iso-list.txt\n\twhile read line; do\t\t\t\\\n\t\tmkdir -p `dirname $$line`;\t\\\n\t\ttouch \"$$line\";\t\t\t\\\n\tdone < $<\n\nfake-virtio-win.iso: cd\n\t$(MKISOFS) -J -r -o $@ $(srcdir)/cd\n"
  },
  {
    "path": "test-data/fake-virtio-win/virtio-win-drivers-list.txt",
    "content": "drivers/amd64/Win10/netkvm.cat\ndrivers/amd64/Win10/netkvm.inf\ndrivers/amd64/Win10/netkvmp.exe\ndrivers/amd64/Win10/netkvm.sys\ndrivers/amd64/Win10/Readme.md\ndrivers/amd64/Win10/vioscsi.cat\ndrivers/amd64/Win10/vioscsi.inf\ndrivers/amd64/Win10/vioscsi.sys\ndrivers/amd64/Win10/viostor.cat\ndrivers/amd64/Win10/viostor.inf\ndrivers/amd64/Win10/viostor.sys\ndrivers/amd64/Win11/netkvm.cat\ndrivers/amd64/Win11/netkvm.inf\ndrivers/amd64/Win11/netkvmp.exe\ndrivers/amd64/Win11/netkvm.sys\ndrivers/amd64/Win11/Readme.md\ndrivers/amd64/Win11/vioscsi.cat\ndrivers/amd64/Win11/vioscsi.inf\ndrivers/amd64/Win11/vioscsi.sys\ndrivers/amd64/Win11/viostor.cat\ndrivers/amd64/Win11/viostor.inf\ndrivers/amd64/Win11/viostor.sys\ndrivers/amd64/Win2008R2/netkvm.cat\ndrivers/amd64/Win2008R2/netkvm.inf\ndrivers/amd64/Win2008R2/netkvm.sys\ndrivers/amd64/Win2008R2/qxl.cat\ndrivers/amd64/Win2008R2/qxldd.dll\ndrivers/amd64/Win2008R2/qxl.inf\ndrivers/amd64/Win2008R2/qxl.sys\ndrivers/amd64/Win2008R2/vioscsi.cat\ndrivers/amd64/Win2008R2/vioscsi.inf\ndrivers/amd64/Win2008R2/vioscsi.sys\ndrivers/amd64/Win2008R2/viostor.cat\ndrivers/amd64/Win2008R2/viostor.inf\ndrivers/amd64/Win2008R2/viostor.sys\ndrivers/amd64/Win2012/netkvm.cat\ndrivers/amd64/Win2012/netkvm.inf\ndrivers/amd64/Win2012/netkvm.sys\ndrivers/amd64/Win2012R2/netkvm.cat\ndrivers/amd64/Win2012R2/netkvm.inf\ndrivers/amd64/Win2012R2/netkvm.sys\ndrivers/amd64/Win2012R2/Readme.md\ndrivers/amd64/Win2012R2/vioscsi.cat\ndrivers/amd64/Win2012R2/vioscsi.inf\ndrivers/amd64/Win2012R2/vioscsi.sys\ndrivers/amd64/Win2012R2/viostor.cat\ndrivers/amd64/Win2012R2/viostor.inf\ndrivers/amd64/Win2012R2/viostor.sys\ndrivers/amd64/Win2012/Readme.md\ndrivers/amd64/Win2012/vioscsi.cat\ndrivers/amd64/Win2012/vioscsi.inf\ndrivers/amd64/Win2012/vioscsi.sys\ndrivers/amd64/Win2012/viostor.cat\ndrivers/amd64/Win2012/viostor.inf\ndrivers/amd64/Win2012/viostor.sys\ndrivers/amd64/Win2016/netkvm.cat\ndrivers/amd64/Win2016/netkvm.inf\ndrivers/amd64/Win2016/netkvmp.exe\ndrivers/amd64/Win2016/netkvm.sys\ndrivers/amd64/Win2016/Readme.md\ndrivers/amd64/Win2016/vioscsi.cat\ndrivers/amd64/Win2016/vioscsi.inf\ndrivers/amd64/Win2016/vioscsi.sys\ndrivers/amd64/Win2016/viostor.cat\ndrivers/amd64/Win2016/viostor.inf\ndrivers/amd64/Win2016/viostor.sys\ndrivers/amd64/Win2019/netkvm.cat\ndrivers/amd64/Win2019/netkvm.inf\ndrivers/amd64/Win2019/netkvmp.exe\ndrivers/amd64/Win2019/netkvm.sys\ndrivers/amd64/Win2019/Readme.md\ndrivers/amd64/Win2019/vioscsi.cat\ndrivers/amd64/Win2019/vioscsi.inf\ndrivers/amd64/Win2019/vioscsi.sys\ndrivers/amd64/Win2019/viostor.cat\ndrivers/amd64/Win2019/viostor.inf\ndrivers/amd64/Win2019/viostor.sys\ndrivers/amd64/Win2022/netkvm.cat\ndrivers/amd64/Win2022/netkvm.inf\ndrivers/amd64/Win2022/netkvmp.exe\ndrivers/amd64/Win2022/netkvm.sys\ndrivers/amd64/Win2022/Readme.md\ndrivers/amd64/Win2022/vioscsi.cat\ndrivers/amd64/Win2022/vioscsi.inf\ndrivers/amd64/Win2022/vioscsi.sys\ndrivers/amd64/Win2022/viostor.cat\ndrivers/amd64/Win2022/viostor.inf\ndrivers/amd64/Win2022/viostor.sys\ndrivers/amd64/Win2025/netkvm.cat\ndrivers/amd64/Win2025/netkvm.inf\ndrivers/amd64/Win2025/netkvmp.exe\ndrivers/amd64/Win2025/netkvm.sys\ndrivers/amd64/Win2025/Readme.md\ndrivers/amd64/Win2025/vioscsi.cat\ndrivers/amd64/Win2025/vioscsi.inf\ndrivers/amd64/Win2025/vioscsi.sys\ndrivers/amd64/Win2025/viostor.cat\ndrivers/amd64/Win2025/viostor.inf\ndrivers/amd64/Win2025/viostor.sys\ndrivers/amd64/Win7/netkvm.cat\ndrivers/amd64/Win7/netkvm.inf\ndrivers/amd64/Win7/netkvm.sys\ndrivers/amd64/Win7/qxl.cat\ndrivers/amd64/Win7/qxldd.dll\ndrivers/amd64/Win7/qxl.inf\ndrivers/amd64/Win7/qxl.sys\ndrivers/amd64/Win7/vioscsi.cat\ndrivers/amd64/Win7/vioscsi.inf\ndrivers/amd64/Win7/vioscsi.sys\ndrivers/amd64/Win7/viostor.cat\ndrivers/amd64/Win7/viostor.inf\ndrivers/amd64/Win7/viostor.sys\ndrivers/amd64/Win8.1/netkvm.cat\ndrivers/amd64/Win8.1/netkvm.inf\ndrivers/amd64/Win8.1/netkvm.sys\ndrivers/amd64/Win8.1/Readme.md\ndrivers/amd64/Win8.1/vioscsi.cat\ndrivers/amd64/Win8.1/vioscsi.inf\ndrivers/amd64/Win8.1/vioscsi.sys\ndrivers/amd64/Win8.1/viostor.cat\ndrivers/amd64/Win8.1/viostor.inf\ndrivers/amd64/Win8.1/viostor.sys\ndrivers/amd64/Win8/netkvm.cat\ndrivers/amd64/Win8/netkvm.inf\ndrivers/amd64/Win8/netkvm.sys\ndrivers/amd64/Win8/Readme.md\ndrivers/amd64/Win8/vioscsi.cat\ndrivers/amd64/Win8/vioscsi.inf\ndrivers/amd64/Win8/vioscsi.sys\ndrivers/amd64/Win8/viostor.cat\ndrivers/amd64/Win8/viostor.inf\ndrivers/amd64/Win8/viostor.sys\ndrivers/by-driver/Balloon/2k12/amd64/balloon.cat\ndrivers/by-driver/Balloon/2k12/amd64/balloon.inf\ndrivers/by-driver/Balloon/2k12/amd64/balloon.pdb\ndrivers/by-driver/Balloon/2k12/amd64/balloon.sys\ndrivers/by-driver/Balloon/2k12/amd64/blnsvr.exe\ndrivers/by-driver/Balloon/2k12/amd64/blnsvr.pdb\ndrivers/by-driver/Balloon/2k12/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/Balloon/2k12R2/amd64/balloon.cat\ndrivers/by-driver/Balloon/2k12R2/amd64/balloon.inf\ndrivers/by-driver/Balloon/2k12R2/amd64/balloon.pdb\ndrivers/by-driver/Balloon/2k12R2/amd64/balloon.sys\ndrivers/by-driver/Balloon/2k12R2/amd64/blnsvr.exe\ndrivers/by-driver/Balloon/2k12R2/amd64/blnsvr.pdb\ndrivers/by-driver/Balloon/2k12R2/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/Balloon/2k16/amd64/balloon.cat\ndrivers/by-driver/Balloon/2k16/amd64/balloon.inf\ndrivers/by-driver/Balloon/2k16/amd64/balloon.pdb\ndrivers/by-driver/Balloon/2k16/amd64/balloon.sys\ndrivers/by-driver/Balloon/2k16/amd64/blnsvr.exe\ndrivers/by-driver/Balloon/2k16/amd64/blnsvr.pdb\ndrivers/by-driver/Balloon/2k19/amd64/balloon.cat\ndrivers/by-driver/Balloon/2k19/amd64/balloon.inf\ndrivers/by-driver/Balloon/2k19/amd64/balloon.pdb\ndrivers/by-driver/Balloon/2k19/amd64/balloon.sys\ndrivers/by-driver/Balloon/2k19/amd64/blnsvr.exe\ndrivers/by-driver/Balloon/2k19/amd64/blnsvr.pdb\ndrivers/by-driver/Balloon/2k22/amd64/balloon.cat\ndrivers/by-driver/Balloon/2k22/amd64/balloon.inf\ndrivers/by-driver/Balloon/2k22/amd64/balloon.pdb\ndrivers/by-driver/Balloon/2k22/amd64/balloon.sys\ndrivers/by-driver/Balloon/2k22/amd64/blnsvr.exe\ndrivers/by-driver/Balloon/2k22/amd64/blnsvr.pdb\ndrivers/by-driver/Balloon/2k25/amd64/balloon.cat\ndrivers/by-driver/Balloon/2k25/amd64/balloon.inf\ndrivers/by-driver/Balloon/2k25/amd64/balloon.pdb\ndrivers/by-driver/Balloon/2k25/amd64/balloon.sys\ndrivers/by-driver/Balloon/2k25/amd64/blnsvr.exe\ndrivers/by-driver/Balloon/2k25/amd64/blnsvr.pdb\ndrivers/by-driver/Balloon/2k8R2/amd64/balloon.cat\ndrivers/by-driver/Balloon/2k8R2/amd64/balloon.inf\ndrivers/by-driver/Balloon/2k8R2/amd64/balloon.pdb\ndrivers/by-driver/Balloon/2k8R2/amd64/balloon.sys\ndrivers/by-driver/Balloon/2k8R2/amd64/blnsvr.exe\ndrivers/by-driver/Balloon/2k8R2/amd64/blnsvr.pdb\ndrivers/by-driver/Balloon/2k8R2/amd64/WdfCoInstaller01009.dll\ndrivers/by-driver/Balloon/w10/amd64/balloon.cat\ndrivers/by-driver/Balloon/w10/amd64/balloon.inf\ndrivers/by-driver/Balloon/w10/amd64/balloon.pdb\ndrivers/by-driver/Balloon/w10/amd64/balloon.sys\ndrivers/by-driver/Balloon/w10/amd64/blnsvr.exe\ndrivers/by-driver/Balloon/w10/amd64/blnsvr.pdb\ndrivers/by-driver/Balloon/w10/x86/balloon.cat\ndrivers/by-driver/Balloon/w10/x86/balloon.inf\ndrivers/by-driver/Balloon/w10/x86/balloon.pdb\ndrivers/by-driver/Balloon/w10/x86/balloon.sys\ndrivers/by-driver/Balloon/w10/x86/blnsvr.exe\ndrivers/by-driver/Balloon/w10/x86/blnsvr.pdb\ndrivers/by-driver/Balloon/w11/amd64/balloon.cat\ndrivers/by-driver/Balloon/w11/amd64/balloon.inf\ndrivers/by-driver/Balloon/w11/amd64/balloon.pdb\ndrivers/by-driver/Balloon/w11/amd64/balloon.sys\ndrivers/by-driver/Balloon/w11/amd64/blnsvr.exe\ndrivers/by-driver/Balloon/w11/amd64/blnsvr.pdb\ndrivers/by-driver/Balloon/w7/amd64/balloon.cat\ndrivers/by-driver/Balloon/w7/amd64/balloon.inf\ndrivers/by-driver/Balloon/w7/amd64/balloon.pdb\ndrivers/by-driver/Balloon/w7/amd64/balloon.sys\ndrivers/by-driver/Balloon/w7/amd64/blnsvr.exe\ndrivers/by-driver/Balloon/w7/amd64/blnsvr.pdb\ndrivers/by-driver/Balloon/w7/amd64/WdfCoInstaller01009.dll\ndrivers/by-driver/Balloon/w7/x86/balloon.cat\ndrivers/by-driver/Balloon/w7/x86/balloon.inf\ndrivers/by-driver/Balloon/w7/x86/balloon.pdb\ndrivers/by-driver/Balloon/w7/x86/balloon.sys\ndrivers/by-driver/Balloon/w7/x86/blnsvr.exe\ndrivers/by-driver/Balloon/w7/x86/blnsvr.pdb\ndrivers/by-driver/Balloon/w7/x86/WdfCoInstaller01009.dll\ndrivers/by-driver/Balloon/w8.1/amd64/balloon.cat\ndrivers/by-driver/Balloon/w8.1/amd64/balloon.inf\ndrivers/by-driver/Balloon/w8.1/amd64/balloon.pdb\ndrivers/by-driver/Balloon/w8.1/amd64/balloon.sys\ndrivers/by-driver/Balloon/w8.1/amd64/blnsvr.exe\ndrivers/by-driver/Balloon/w8.1/amd64/blnsvr.pdb\ndrivers/by-driver/Balloon/w8.1/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/Balloon/w8.1/x86/balloon.cat\ndrivers/by-driver/Balloon/w8.1/x86/balloon.inf\ndrivers/by-driver/Balloon/w8.1/x86/balloon.pdb\ndrivers/by-driver/Balloon/w8.1/x86/balloon.sys\ndrivers/by-driver/Balloon/w8.1/x86/blnsvr.exe\ndrivers/by-driver/Balloon/w8.1/x86/blnsvr.pdb\ndrivers/by-driver/Balloon/w8.1/x86/WdfCoInstaller01011.dll\ndrivers/by-driver/Balloon/w8/amd64/balloon.cat\ndrivers/by-driver/Balloon/w8/amd64/balloon.inf\ndrivers/by-driver/Balloon/w8/amd64/balloon.pdb\ndrivers/by-driver/Balloon/w8/amd64/balloon.sys\ndrivers/by-driver/Balloon/w8/amd64/blnsvr.exe\ndrivers/by-driver/Balloon/w8/amd64/blnsvr.pdb\ndrivers/by-driver/Balloon/w8/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/Balloon/w8/x86/balloon.cat\ndrivers/by-driver/Balloon/w8/x86/balloon.inf\ndrivers/by-driver/Balloon/w8/x86/balloon.pdb\ndrivers/by-driver/Balloon/w8/x86/balloon.sys\ndrivers/by-driver/Balloon/w8/x86/blnsvr.exe\ndrivers/by-driver/Balloon/w8/x86/blnsvr.pdb\ndrivers/by-driver/Balloon/w8/x86/WdfCoInstaller01011.dll\ndrivers/by-driver/fwcfg/2k12/amd64/fwcfg.cat\ndrivers/by-driver/fwcfg/2k12/amd64/fwcfg.inf\ndrivers/by-driver/fwcfg/2k12/amd64/fwcfg.pdb\ndrivers/by-driver/fwcfg/2k12/amd64/fwcfg.sys\ndrivers/by-driver/fwcfg/2k12/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/fwcfg/2k12R2/amd64/fwcfg.cat\ndrivers/by-driver/fwcfg/2k12R2/amd64/fwcfg.inf\ndrivers/by-driver/fwcfg/2k12R2/amd64/fwcfg.pdb\ndrivers/by-driver/fwcfg/2k12R2/amd64/fwcfg.sys\ndrivers/by-driver/fwcfg/2k12R2/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/fwcfg/2k16/amd64/fwcfg.cat\ndrivers/by-driver/fwcfg/2k16/amd64/fwcfg.inf\ndrivers/by-driver/fwcfg/2k16/amd64/fwcfg.pdb\ndrivers/by-driver/fwcfg/2k16/amd64/fwcfg.sys\ndrivers/by-driver/fwcfg/2k19/amd64/fwcfg.cat\ndrivers/by-driver/fwcfg/2k19/amd64/fwcfg.inf\ndrivers/by-driver/fwcfg/2k19/amd64/fwcfg.pdb\ndrivers/by-driver/fwcfg/2k19/amd64/fwcfg.sys\ndrivers/by-driver/fwcfg/2k22/amd64/fwcfg.cat\ndrivers/by-driver/fwcfg/2k22/amd64/fwcfg.inf\ndrivers/by-driver/fwcfg/2k22/amd64/fwcfg.pdb\ndrivers/by-driver/fwcfg/2k22/amd64/fwcfg.sys\ndrivers/by-driver/fwcfg/2k25/amd64/fwcfg.cat\ndrivers/by-driver/fwcfg/2k25/amd64/fwcfg.inf\ndrivers/by-driver/fwcfg/2k25/amd64/fwcfg.pdb\ndrivers/by-driver/fwcfg/2k25/amd64/fwcfg.sys\ndrivers/by-driver/fwcfg/w10/amd64/fwcfg.cat\ndrivers/by-driver/fwcfg/w10/amd64/fwcfg.inf\ndrivers/by-driver/fwcfg/w10/amd64/fwcfg.pdb\ndrivers/by-driver/fwcfg/w10/amd64/fwcfg.sys\ndrivers/by-driver/fwcfg/w10/x86/fwcfg.cat\ndrivers/by-driver/fwcfg/w10/x86/fwcfg.inf\ndrivers/by-driver/fwcfg/w10/x86/fwcfg.pdb\ndrivers/by-driver/fwcfg/w10/x86/fwcfg.sys\ndrivers/by-driver/fwcfg/w11/amd64/fwcfg.cat\ndrivers/by-driver/fwcfg/w11/amd64/fwcfg.inf\ndrivers/by-driver/fwcfg/w11/amd64/fwcfg.pdb\ndrivers/by-driver/fwcfg/w11/amd64/fwcfg.sys\ndrivers/by-driver/fwcfg/w8.1/x86/fwcfg.cat\ndrivers/by-driver/fwcfg/w8.1/x86/fwcfg.inf\ndrivers/by-driver/fwcfg/w8.1/x86/fwcfg.pdb\ndrivers/by-driver/fwcfg/w8.1/x86/fwcfg.sys\ndrivers/by-driver/NetKVM/2k12/amd64/netkvm.cat\ndrivers/by-driver/NetKVM/2k12/amd64/netkvmco.dll\ndrivers/by-driver/NetKVM/2k12/amd64/netkvmco.pdb\ndrivers/by-driver/NetKVM/2k12/amd64/netkvm.inf\ndrivers/by-driver/NetKVM/2k12/amd64/netkvm.pdb\ndrivers/by-driver/NetKVM/2k12/amd64/netkvm.sys\ndrivers/by-driver/NetKVM/2k12/amd64/Readme.md\ndrivers/by-driver/NetKVM/2k12R2/amd64/netkvm.cat\ndrivers/by-driver/NetKVM/2k12R2/amd64/netkvmco.dll\ndrivers/by-driver/NetKVM/2k12R2/amd64/netkvmco.pdb\ndrivers/by-driver/NetKVM/2k12R2/amd64/netkvm.inf\ndrivers/by-driver/NetKVM/2k12R2/amd64/netkvm.pdb\ndrivers/by-driver/NetKVM/2k12R2/amd64/netkvm.sys\ndrivers/by-driver/NetKVM/2k12R2/amd64/Readme.md\ndrivers/by-driver/NetKVM/2k16/amd64/netkvm.cat\ndrivers/by-driver/NetKVM/2k16/amd64/netkvmco.exe\ndrivers/by-driver/NetKVM/2k16/amd64/netkvmco.pdb\ndrivers/by-driver/NetKVM/2k16/amd64/netkvm.inf\ndrivers/by-driver/NetKVM/2k16/amd64/netkvm.pdb\ndrivers/by-driver/NetKVM/2k16/amd64/netkvmp.exe\ndrivers/by-driver/NetKVM/2k16/amd64/netkvmp.pdb\ndrivers/by-driver/NetKVM/2k16/amd64/netkvm.sys\ndrivers/by-driver/NetKVM/2k16/amd64/Readme.md\ndrivers/by-driver/NetKVM/2k19/amd64/netkvm.cat\ndrivers/by-driver/NetKVM/2k19/amd64/netkvmco.exe\ndrivers/by-driver/NetKVM/2k19/amd64/netkvmco.pdb\ndrivers/by-driver/NetKVM/2k19/amd64/netkvm.inf\ndrivers/by-driver/NetKVM/2k19/amd64/netkvm.pdb\ndrivers/by-driver/NetKVM/2k19/amd64/netkvmp.exe\ndrivers/by-driver/NetKVM/2k19/amd64/netkvmp.pdb\ndrivers/by-driver/NetKVM/2k19/amd64/netkvm.sys\ndrivers/by-driver/NetKVM/2k19/amd64/Readme.md\ndrivers/by-driver/NetKVM/2k22/amd64/netkvm.cat\ndrivers/by-driver/NetKVM/2k22/amd64/netkvmco.exe\ndrivers/by-driver/NetKVM/2k22/amd64/netkvmco.pdb\ndrivers/by-driver/NetKVM/2k22/amd64/netkvm.inf\ndrivers/by-driver/NetKVM/2k22/amd64/netkvm.pdb\ndrivers/by-driver/NetKVM/2k22/amd64/netkvmp.exe\ndrivers/by-driver/NetKVM/2k22/amd64/netkvmp.pdb\ndrivers/by-driver/NetKVM/2k22/amd64/netkvm.sys\ndrivers/by-driver/NetKVM/2k22/amd64/Readme.md\ndrivers/by-driver/NetKVM/2k25/amd64/netkvm.cat\ndrivers/by-driver/NetKVM/2k25/amd64/netkvmco.exe\ndrivers/by-driver/NetKVM/2k25/amd64/netkvmco.pdb\ndrivers/by-driver/NetKVM/2k25/amd64/netkvm.inf\ndrivers/by-driver/NetKVM/2k25/amd64/netkvm.pdb\ndrivers/by-driver/NetKVM/2k25/amd64/netkvmp.exe\ndrivers/by-driver/NetKVM/2k25/amd64/netkvmp.pdb\ndrivers/by-driver/NetKVM/2k25/amd64/netkvm.sys\ndrivers/by-driver/NetKVM/2k25/amd64/Readme.md\ndrivers/by-driver/NetKVM/2k8R2/amd64/netkvm.cat\ndrivers/by-driver/NetKVM/2k8R2/amd64/netkvmco.dll\ndrivers/by-driver/NetKVM/2k8R2/amd64/netkvmco.pdb\ndrivers/by-driver/NetKVM/2k8R2/amd64/netkvm.inf\ndrivers/by-driver/NetKVM/2k8R2/amd64/netkvm.pdb\ndrivers/by-driver/NetKVM/2k8R2/amd64/netkvm.sys\ndrivers/by-driver/NetKVM/2k8R2/amd64/readme.doc\ndrivers/by-driver/NetKVM/w10/amd64/netkvm.cat\ndrivers/by-driver/NetKVM/w10/amd64/netkvmco.exe\ndrivers/by-driver/NetKVM/w10/amd64/netkvmco.pdb\ndrivers/by-driver/NetKVM/w10/amd64/netkvm.inf\ndrivers/by-driver/NetKVM/w10/amd64/netkvm.pdb\ndrivers/by-driver/NetKVM/w10/amd64/netkvmp.exe\ndrivers/by-driver/NetKVM/w10/amd64/netkvmp.pdb\ndrivers/by-driver/NetKVM/w10/amd64/netkvm.sys\ndrivers/by-driver/NetKVM/w10/amd64/Readme.md\ndrivers/by-driver/NetKVM/w10/x86/netkvm.cat\ndrivers/by-driver/NetKVM/w10/x86/netkvmco.exe\ndrivers/by-driver/NetKVM/w10/x86/netkvmco.pdb\ndrivers/by-driver/NetKVM/w10/x86/netkvm.inf\ndrivers/by-driver/NetKVM/w10/x86/netkvm.pdb\ndrivers/by-driver/NetKVM/w10/x86/netkvmp.exe\ndrivers/by-driver/NetKVM/w10/x86/netkvmp.pdb\ndrivers/by-driver/NetKVM/w10/x86/netkvm.sys\ndrivers/by-driver/NetKVM/w10/x86/Readme.md\ndrivers/by-driver/NetKVM/w11/amd64/netkvm.cat\ndrivers/by-driver/NetKVM/w11/amd64/netkvmco.exe\ndrivers/by-driver/NetKVM/w11/amd64/netkvmco.pdb\ndrivers/by-driver/NetKVM/w11/amd64/netkvm.inf\ndrivers/by-driver/NetKVM/w11/amd64/netkvm.pdb\ndrivers/by-driver/NetKVM/w11/amd64/netkvmp.exe\ndrivers/by-driver/NetKVM/w11/amd64/netkvmp.pdb\ndrivers/by-driver/NetKVM/w11/amd64/netkvm.sys\ndrivers/by-driver/NetKVM/w11/amd64/Readme.md\ndrivers/by-driver/NetKVM/w7/amd64/netkvm.cat\ndrivers/by-driver/NetKVM/w7/amd64/netkvmco.dll\ndrivers/by-driver/NetKVM/w7/amd64/netkvmco.pdb\ndrivers/by-driver/NetKVM/w7/amd64/netkvm.inf\ndrivers/by-driver/NetKVM/w7/amd64/netkvm.pdb\ndrivers/by-driver/NetKVM/w7/amd64/netkvm.sys\ndrivers/by-driver/NetKVM/w7/amd64/readme.doc\ndrivers/by-driver/NetKVM/w7/x86/netkvm.cat\ndrivers/by-driver/NetKVM/w7/x86/netkvmco.dll\ndrivers/by-driver/NetKVM/w7/x86/netkvmco.pdb\ndrivers/by-driver/NetKVM/w7/x86/netkvm.inf\ndrivers/by-driver/NetKVM/w7/x86/netkvm.pdb\ndrivers/by-driver/NetKVM/w7/x86/netkvm.sys\ndrivers/by-driver/NetKVM/w7/x86/readme.doc\ndrivers/by-driver/NetKVM/w8.1/amd64/netkvm.cat\ndrivers/by-driver/NetKVM/w8.1/amd64/netkvmco.dll\ndrivers/by-driver/NetKVM/w8.1/amd64/netkvmco.pdb\ndrivers/by-driver/NetKVM/w8.1/amd64/netkvm.inf\ndrivers/by-driver/NetKVM/w8.1/amd64/netkvm.pdb\ndrivers/by-driver/NetKVM/w8.1/amd64/netkvm.sys\ndrivers/by-driver/NetKVM/w8.1/amd64/Readme.md\ndrivers/by-driver/NetKVM/w8.1/x86/netkvm.cat\ndrivers/by-driver/NetKVM/w8.1/x86/netkvmco.dll\ndrivers/by-driver/NetKVM/w8.1/x86/netkvmco.pdb\ndrivers/by-driver/NetKVM/w8.1/x86/netkvm.inf\ndrivers/by-driver/NetKVM/w8.1/x86/netkvm.pdb\ndrivers/by-driver/NetKVM/w8.1/x86/netkvm.sys\ndrivers/by-driver/NetKVM/w8.1/x86/Readme.md\ndrivers/by-driver/NetKVM/w8/amd64/netkvm.cat\ndrivers/by-driver/NetKVM/w8/amd64/netkvmco.dll\ndrivers/by-driver/NetKVM/w8/amd64/netkvmco.pdb\ndrivers/by-driver/NetKVM/w8/amd64/netkvm.inf\ndrivers/by-driver/NetKVM/w8/amd64/netkvm.pdb\ndrivers/by-driver/NetKVM/w8/amd64/netkvm.sys\ndrivers/by-driver/NetKVM/w8/amd64/Readme.md\ndrivers/by-driver/NetKVM/w8/x86/netkvm.cat\ndrivers/by-driver/NetKVM/w8/x86/netkvmco.dll\ndrivers/by-driver/NetKVM/w8/x86/netkvmco.pdb\ndrivers/by-driver/NetKVM/w8/x86/netkvm.inf\ndrivers/by-driver/NetKVM/w8/x86/netkvm.pdb\ndrivers/by-driver/NetKVM/w8/x86/netkvm.sys\ndrivers/by-driver/NetKVM/w8/x86/Readme.md\ndrivers/by-driver/pvpanic/2k12/amd64/pvpanic.cat\ndrivers/by-driver/pvpanic/2k12/amd64/pvpanic.inf\ndrivers/by-driver/pvpanic/2k12/amd64/pvpanic.pdb\ndrivers/by-driver/pvpanic/2k12/amd64/pvpanic.sys\ndrivers/by-driver/pvpanic/2k12/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/pvpanic/2k12R2/amd64/pvpanic.cat\ndrivers/by-driver/pvpanic/2k12R2/amd64/pvpanic.inf\ndrivers/by-driver/pvpanic/2k12R2/amd64/pvpanic.pdb\ndrivers/by-driver/pvpanic/2k12R2/amd64/pvpanic.sys\ndrivers/by-driver/pvpanic/2k12R2/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/pvpanic/2k16/amd64/pvpanic.cat\ndrivers/by-driver/pvpanic/2k16/amd64/pvpanic.inf\ndrivers/by-driver/pvpanic/2k16/amd64/pvpanic.pdb\ndrivers/by-driver/pvpanic/2k16/amd64/pvpanic.sys\ndrivers/by-driver/pvpanic/2k19/amd64/pvpanic.cat\ndrivers/by-driver/pvpanic/2k19/amd64/pvpanic.inf\ndrivers/by-driver/pvpanic/2k19/amd64/pvpanic.pdb\ndrivers/by-driver/pvpanic/2k19/amd64/pvpanic.sys\ndrivers/by-driver/pvpanic/2k22/amd64/pvpanic.cat\ndrivers/by-driver/pvpanic/2k22/amd64/pvpanic.inf\ndrivers/by-driver/pvpanic/2k22/amd64/pvpanic.pdb\ndrivers/by-driver/pvpanic/2k22/amd64/pvpanic.sys\ndrivers/by-driver/pvpanic/2k25/amd64/pvpanic.cat\ndrivers/by-driver/pvpanic/2k25/amd64/pvpanic.inf\ndrivers/by-driver/pvpanic/2k25/amd64/pvpanic.pdb\ndrivers/by-driver/pvpanic/2k25/amd64/pvpanic.sys\ndrivers/by-driver/pvpanic/2k8R2/amd64/pvpanic.cat\ndrivers/by-driver/pvpanic/2k8R2/amd64/pvpanic.inf\ndrivers/by-driver/pvpanic/2k8R2/amd64/pvpanic.pdb\ndrivers/by-driver/pvpanic/2k8R2/amd64/pvpanic.sys\ndrivers/by-driver/pvpanic/2k8R2/amd64/WdfCoInstaller01009.dll\ndrivers/by-driver/pvpanic/w10/amd64/pvpanic.cat\ndrivers/by-driver/pvpanic/w10/amd64/pvpanic.inf\ndrivers/by-driver/pvpanic/w10/amd64/pvpanic.pdb\ndrivers/by-driver/pvpanic/w10/amd64/pvpanic.sys\ndrivers/by-driver/pvpanic/w10/x86/pvpanic.cat\ndrivers/by-driver/pvpanic/w10/x86/pvpanic.inf\ndrivers/by-driver/pvpanic/w10/x86/pvpanic.pdb\ndrivers/by-driver/pvpanic/w10/x86/pvpanic.sys\ndrivers/by-driver/pvpanic/w11/amd64/pvpanic.cat\ndrivers/by-driver/pvpanic/w11/amd64/pvpanic.inf\ndrivers/by-driver/pvpanic/w11/amd64/pvpanic.pdb\ndrivers/by-driver/pvpanic/w11/amd64/pvpanic.sys\ndrivers/by-driver/pvpanic/w7/amd64/pvpanic.cat\ndrivers/by-driver/pvpanic/w7/amd64/pvpanic.inf\ndrivers/by-driver/pvpanic/w7/amd64/pvpanic.pdb\ndrivers/by-driver/pvpanic/w7/amd64/pvpanic.sys\ndrivers/by-driver/pvpanic/w7/amd64/WdfCoInstaller01009.dll\ndrivers/by-driver/pvpanic/w7/x86/pvpanic.cat\ndrivers/by-driver/pvpanic/w7/x86/pvpanic.inf\ndrivers/by-driver/pvpanic/w7/x86/pvpanic.pdb\ndrivers/by-driver/pvpanic/w7/x86/pvpanic.sys\ndrivers/by-driver/pvpanic/w7/x86/WdfCoInstaller01009.dll\ndrivers/by-driver/pvpanic/w8.1/amd64/pvpanic.cat\ndrivers/by-driver/pvpanic/w8.1/amd64/pvpanic.inf\ndrivers/by-driver/pvpanic/w8.1/amd64/pvpanic.pdb\ndrivers/by-driver/pvpanic/w8.1/amd64/pvpanic.sys\ndrivers/by-driver/pvpanic/w8.1/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/pvpanic/w8.1/x86/pvpanic.cat\ndrivers/by-driver/pvpanic/w8.1/x86/pvpanic.inf\ndrivers/by-driver/pvpanic/w8.1/x86/pvpanic.pdb\ndrivers/by-driver/pvpanic/w8.1/x86/pvpanic.sys\ndrivers/by-driver/pvpanic/w8.1/x86/WdfCoInstaller01011.dll\ndrivers/by-driver/pvpanic/w8/amd64/pvpanic.cat\ndrivers/by-driver/pvpanic/w8/amd64/pvpanic.inf\ndrivers/by-driver/pvpanic/w8/amd64/pvpanic.pdb\ndrivers/by-driver/pvpanic/w8/amd64/pvpanic.sys\ndrivers/by-driver/pvpanic/w8/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/pvpanic/w8/x86/pvpanic.cat\ndrivers/by-driver/pvpanic/w8/x86/pvpanic.inf\ndrivers/by-driver/pvpanic/w8/x86/pvpanic.pdb\ndrivers/by-driver/pvpanic/w8/x86/pvpanic.sys\ndrivers/by-driver/pvpanic/w8/x86/WdfCoInstaller01011.dll\ndrivers/by-driver/qemufwcfg/2k16/amd64/qemufwcfg.cat\ndrivers/by-driver/qemufwcfg/2k16/amd64/qemufwcfg.inf\ndrivers/by-driver/qemufwcfg/2k19/amd64/qemufwcfg.cat\ndrivers/by-driver/qemufwcfg/2k19/amd64/qemufwcfg.inf\ndrivers/by-driver/qemufwcfg/2k22/amd64/qemufwcfg.cat\ndrivers/by-driver/qemufwcfg/2k22/amd64/qemufwcfg.inf\ndrivers/by-driver/qemufwcfg/2k25/amd64/qemufwcfg.cat\ndrivers/by-driver/qemufwcfg/2k25/amd64/qemufwcfg.inf\ndrivers/by-driver/qemufwcfg/w10/amd64/qemufwcfg.cat\ndrivers/by-driver/qemufwcfg/w10/amd64/qemufwcfg.inf\ndrivers/by-driver/qemufwcfg/w10/x86/qemufwcfg.cat\ndrivers/by-driver/qemufwcfg/w10/x86/qemufwcfg.inf\ndrivers/by-driver/qemufwcfg/w11/amd64/qemufwcfg.cat\ndrivers/by-driver/qemufwcfg/w11/amd64/qemufwcfg.inf\ndrivers/by-driver/qemupciserial/2k12/amd64/qemupciserial.cat\ndrivers/by-driver/qemupciserial/2k12/amd64/qemupciserial.inf\ndrivers/by-driver/qemupciserial/2k12R2/amd64/qemupciserial.cat\ndrivers/by-driver/qemupciserial/2k12R2/amd64/qemupciserial.inf\ndrivers/by-driver/qemupciserial/2k16/amd64/qemupciserial.cat\ndrivers/by-driver/qemupciserial/2k16/amd64/qemupciserial.inf\ndrivers/by-driver/qemupciserial/2k19/amd64/qemupciserial.cat\ndrivers/by-driver/qemupciserial/2k19/amd64/qemupciserial.inf\ndrivers/by-driver/qemupciserial/2k22/amd64/qemupciserial.cat\ndrivers/by-driver/qemupciserial/2k22/amd64/qemupciserial.inf\ndrivers/by-driver/qemupciserial/2k25/amd64/qemupciserial.cat\ndrivers/by-driver/qemupciserial/2k25/amd64/qemupciserial.inf\ndrivers/by-driver/qemupciserial/2k8R2/amd64/qemupciserial.cat\ndrivers/by-driver/qemupciserial/2k8R2/amd64/qemupciserial.inf\ndrivers/by-driver/qemupciserial/w10/amd64/qemupciserial.cat\ndrivers/by-driver/qemupciserial/w10/amd64/qemupciserial.inf\ndrivers/by-driver/qemupciserial/w10/x86/qemupciserial.cat\ndrivers/by-driver/qemupciserial/w10/x86/qemupciserial.inf\ndrivers/by-driver/qemupciserial/w11/amd64/qemupciserial.cat\ndrivers/by-driver/qemupciserial/w11/amd64/qemupciserial.inf\ndrivers/by-driver/qemupciserial/w7/amd64/qemupciserial.cat\ndrivers/by-driver/qemupciserial/w7/amd64/qemupciserial.inf\ndrivers/by-driver/qemupciserial/w7/x86/qemupciserial.cat\ndrivers/by-driver/qemupciserial/w7/x86/qemupciserial.inf\ndrivers/by-driver/qemupciserial/w8.1/amd64/qemupciserial.cat\ndrivers/by-driver/qemupciserial/w8.1/amd64/qemupciserial.inf\ndrivers/by-driver/qemupciserial/w8.1/x86/qemupciserial.cat\ndrivers/by-driver/qemupciserial/w8.1/x86/qemupciserial.inf\ndrivers/by-driver/qemupciserial/w8/amd64/qemupciserial.cat\ndrivers/by-driver/qemupciserial/w8/amd64/qemupciserial.inf\ndrivers/by-driver/qemupciserial/w8/x86/qemupciserial.cat\ndrivers/by-driver/qemupciserial/w8/x86/qemupciserial.inf\ndrivers/by-driver/qxl/2k8R2/amd64/qxl.cat\ndrivers/by-driver/qxl/2k8R2/amd64/qxldd.dll\ndrivers/by-driver/qxl/2k8R2/amd64/qxl.inf\ndrivers/by-driver/qxl/2k8R2/amd64/qxl.sys\ndrivers/by-driver/qxldod/2k16/amd64/qxldod.cat\ndrivers/by-driver/qxldod/2k16/amd64/qxldod.inf\ndrivers/by-driver/qxldod/2k16/amd64/qxldod.sys\ndrivers/by-driver/qxldod/2k19/amd64/qxldod.cat\ndrivers/by-driver/qxldod/2k19/amd64/qxldod.inf\ndrivers/by-driver/qxldod/2k19/amd64/qxldod.sys\ndrivers/by-driver/qxldod/w10/amd64/qxldod.cat\ndrivers/by-driver/qxldod/w10/amd64/qxldod.inf\ndrivers/by-driver/qxldod/w10/amd64/qxldod.sys\ndrivers/by-driver/qxldod/w10/x86/qxldod.cat\ndrivers/by-driver/qxldod/w10/x86/qxldod.inf\ndrivers/by-driver/qxldod/w10/x86/qxldod.sys\ndrivers/by-driver/qxl/w7/amd64/qxl.cat\ndrivers/by-driver/qxl/w7/amd64/qxldd.dll\ndrivers/by-driver/qxl/w7/amd64/qxl.inf\ndrivers/by-driver/qxl/w7/amd64/qxl.sys\ndrivers/by-driver/qxl/w7/x86/qxl.cat\ndrivers/by-driver/qxl/w7/x86/qxldd.dll\ndrivers/by-driver/qxl/w7/x86/qxl.inf\ndrivers/by-driver/qxl/w7/x86/qxl.sys\ndrivers/by-driver/sriov/2k12R2/amd64/netkvmno.dll\ndrivers/by-driver/sriov/2k12R2/amd64/netkvmno.pdb\ndrivers/by-driver/sriov/2k12R2/amd64/netkvmp.exe\ndrivers/by-driver/sriov/2k12R2/amd64/netkvmp.pdb\ndrivers/by-driver/sriov/2k12R2/amd64/vioprot.cat\ndrivers/by-driver/sriov/2k12R2/amd64/vioprot.inf\ndrivers/by-driver/sriov/2k16/amd64/vioprot.cat\ndrivers/by-driver/sriov/2k16/amd64/vioprot.inf\ndrivers/by-driver/sriov/2k19/amd64/vioprot.cat\ndrivers/by-driver/sriov/2k19/amd64/vioprot.inf\ndrivers/by-driver/sriov/2k22/amd64/vioprot.cat\ndrivers/by-driver/sriov/2k22/amd64/vioprot.inf\ndrivers/by-driver/sriov/2k25/amd64/vioprot.cat\ndrivers/by-driver/sriov/2k25/amd64/vioprot.inf\ndrivers/by-driver/sriov/w10/amd64/vioprot.cat\ndrivers/by-driver/sriov/w10/amd64/vioprot.inf\ndrivers/by-driver/sriov/w10/x86/vioprot.cat\ndrivers/by-driver/sriov/w10/x86/vioprot.inf\ndrivers/by-driver/sriov/w11/amd64/vioprot.cat\ndrivers/by-driver/sriov/w11/amd64/vioprot.inf\ndrivers/by-driver/sriov/w8.1/amd64/netkvmno.dll\ndrivers/by-driver/sriov/w8.1/amd64/netkvmno.pdb\ndrivers/by-driver/sriov/w8.1/amd64/netkvmp.exe\ndrivers/by-driver/sriov/w8.1/amd64/netkvmp.pdb\ndrivers/by-driver/sriov/w8.1/amd64/vioprot.cat\ndrivers/by-driver/sriov/w8.1/amd64/vioprot.inf\ndrivers/by-driver/sriov/w8.1/x86/netkvmno.dll\ndrivers/by-driver/sriov/w8.1/x86/netkvmno.pdb\ndrivers/by-driver/sriov/w8.1/x86/netkvmp.exe\ndrivers/by-driver/sriov/w8.1/x86/netkvmp.pdb\ndrivers/by-driver/sriov/w8.1/x86/vioprot.cat\ndrivers/by-driver/sriov/w8.1/x86/vioprot.inf\ndrivers/by-driver/viofs/2k12/amd64/viofs.cat\ndrivers/by-driver/viofs/2k12/amd64/viofs.inf\ndrivers/by-driver/viofs/2k12/amd64/viofs.pdb\ndrivers/by-driver/viofs/2k12/amd64/viofs.sys\ndrivers/by-driver/viofs/2k12/amd64/virtiofs.exe\ndrivers/by-driver/viofs/2k12/amd64/virtiofs.pdb\ndrivers/by-driver/viofs/2k12/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/viofs/2k12R2/amd64/viofs.cat\ndrivers/by-driver/viofs/2k12R2/amd64/viofs.inf\ndrivers/by-driver/viofs/2k12R2/amd64/viofs.pdb\ndrivers/by-driver/viofs/2k12R2/amd64/viofs.sys\ndrivers/by-driver/viofs/2k12R2/amd64/virtiofs.exe\ndrivers/by-driver/viofs/2k12R2/amd64/virtiofs.pdb\ndrivers/by-driver/viofs/2k12R2/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/viofs/2k16/amd64/viofs.cat\ndrivers/by-driver/viofs/2k16/amd64/viofs.inf\ndrivers/by-driver/viofs/2k16/amd64/viofs.pdb\ndrivers/by-driver/viofs/2k16/amd64/viofs.sys\ndrivers/by-driver/viofs/2k16/amd64/virtiofs.exe\ndrivers/by-driver/viofs/2k16/amd64/virtiofs.pdb\ndrivers/by-driver/viofs/2k19/amd64/viofs.cat\ndrivers/by-driver/viofs/2k19/amd64/viofs.inf\ndrivers/by-driver/viofs/2k19/amd64/viofs.pdb\ndrivers/by-driver/viofs/2k19/amd64/viofs.sys\ndrivers/by-driver/viofs/2k19/amd64/virtiofs.exe\ndrivers/by-driver/viofs/2k19/amd64/virtiofs.pdb\ndrivers/by-driver/viofs/2k22/amd64/viofs.cat\ndrivers/by-driver/viofs/2k22/amd64/viofs.inf\ndrivers/by-driver/viofs/2k22/amd64/viofs.pdb\ndrivers/by-driver/viofs/2k22/amd64/viofs.sys\ndrivers/by-driver/viofs/2k22/amd64/virtiofs.exe\ndrivers/by-driver/viofs/2k22/amd64/virtiofs.pdb\ndrivers/by-driver/viofs/2k25/amd64/viofs.cat\ndrivers/by-driver/viofs/2k25/amd64/viofs.inf\ndrivers/by-driver/viofs/2k25/amd64/viofs.pdb\ndrivers/by-driver/viofs/2k25/amd64/viofs.sys\ndrivers/by-driver/viofs/2k25/amd64/virtiofs.exe\ndrivers/by-driver/viofs/2k25/amd64/virtiofs.pdb\ndrivers/by-driver/viofs/w10/amd64/viofs.cat\ndrivers/by-driver/viofs/w10/amd64/viofs.inf\ndrivers/by-driver/viofs/w10/amd64/viofs.pdb\ndrivers/by-driver/viofs/w10/amd64/viofs.sys\ndrivers/by-driver/viofs/w10/amd64/virtiofs.exe\ndrivers/by-driver/viofs/w10/amd64/virtiofs.pdb\ndrivers/by-driver/viofs/w10/x86/viofs.cat\ndrivers/by-driver/viofs/w10/x86/viofs.inf\ndrivers/by-driver/viofs/w10/x86/viofs.pdb\ndrivers/by-driver/viofs/w10/x86/viofs.sys\ndrivers/by-driver/viofs/w10/x86/virtiofs.exe\ndrivers/by-driver/viofs/w10/x86/virtiofs.pdb\ndrivers/by-driver/viofs/w11/amd64/viofs.cat\ndrivers/by-driver/viofs/w11/amd64/viofs.inf\ndrivers/by-driver/viofs/w11/amd64/viofs.pdb\ndrivers/by-driver/viofs/w11/amd64/viofs.sys\ndrivers/by-driver/viofs/w11/amd64/virtiofs.exe\ndrivers/by-driver/viofs/w11/amd64/virtiofs.pdb\ndrivers/by-driver/viofs/w8.1/amd64/viofs.cat\ndrivers/by-driver/viofs/w8.1/amd64/viofs.inf\ndrivers/by-driver/viofs/w8.1/amd64/viofs.pdb\ndrivers/by-driver/viofs/w8.1/amd64/viofs.sys\ndrivers/by-driver/viofs/w8.1/amd64/virtiofs.exe\ndrivers/by-driver/viofs/w8.1/amd64/virtiofs.pdb\ndrivers/by-driver/viofs/w8.1/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/viofs/w8.1/x86/viofs.cat\ndrivers/by-driver/viofs/w8.1/x86/viofs.inf\ndrivers/by-driver/viofs/w8.1/x86/viofs.pdb\ndrivers/by-driver/viofs/w8.1/x86/viofs.sys\ndrivers/by-driver/viofs/w8.1/x86/virtiofs.exe\ndrivers/by-driver/viofs/w8.1/x86/virtiofs.pdb\ndrivers/by-driver/viofs/w8.1/x86/WdfCoInstaller01011.dll\ndrivers/by-driver/viofs/w8/amd64/viofs.cat\ndrivers/by-driver/viofs/w8/amd64/viofs.inf\ndrivers/by-driver/viofs/w8/amd64/viofs.pdb\ndrivers/by-driver/viofs/w8/amd64/viofs.sys\ndrivers/by-driver/viofs/w8/amd64/virtiofs.exe\ndrivers/by-driver/viofs/w8/amd64/virtiofs.pdb\ndrivers/by-driver/viofs/w8/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/viofs/w8/x86/viofs.cat\ndrivers/by-driver/viofs/w8/x86/viofs.inf\ndrivers/by-driver/viofs/w8/x86/viofs.pdb\ndrivers/by-driver/viofs/w8/x86/viofs.sys\ndrivers/by-driver/viofs/w8/x86/virtiofs.exe\ndrivers/by-driver/viofs/w8/x86/virtiofs.pdb\ndrivers/by-driver/viofs/w8/x86/WdfCoInstaller01011.dll\ndrivers/by-driver/viogpudo/2k12/amd64/vgpusrv.exe\ndrivers/by-driver/viogpudo/2k12/amd64/vgpusrv.pdb\ndrivers/by-driver/viogpudo/2k12/amd64/viogpuap.exe\ndrivers/by-driver/viogpudo/2k12/amd64/viogpuap.pdb\ndrivers/by-driver/viogpudo/2k12/amd64/viogpudo.cat\ndrivers/by-driver/viogpudo/2k12/amd64/viogpudo.inf\ndrivers/by-driver/viogpudo/2k12/amd64/viogpudo.pdb\ndrivers/by-driver/viogpudo/2k12/amd64/viogpudo.sys\ndrivers/by-driver/viogpudo/2k12R2/amd64/vgpusrv.exe\ndrivers/by-driver/viogpudo/2k12R2/amd64/vgpusrv.pdb\ndrivers/by-driver/viogpudo/2k12R2/amd64/viogpuap.exe\ndrivers/by-driver/viogpudo/2k12R2/amd64/viogpuap.pdb\ndrivers/by-driver/viogpudo/2k12R2/amd64/viogpudo.cat\ndrivers/by-driver/viogpudo/2k12R2/amd64/viogpudo.inf\ndrivers/by-driver/viogpudo/2k12R2/amd64/viogpudo.pdb\ndrivers/by-driver/viogpudo/2k12R2/amd64/viogpudo.sys\ndrivers/by-driver/viogpudo/2k16/amd64/vgpusrv.exe\ndrivers/by-driver/viogpudo/2k16/amd64/vgpusrv.pdb\ndrivers/by-driver/viogpudo/2k16/amd64/viogpuap.exe\ndrivers/by-driver/viogpudo/2k16/amd64/viogpuap.pdb\ndrivers/by-driver/viogpudo/2k16/amd64/viogpudo.cat\ndrivers/by-driver/viogpudo/2k16/amd64/viogpudo.inf\ndrivers/by-driver/viogpudo/2k16/amd64/viogpudo.pdb\ndrivers/by-driver/viogpudo/2k16/amd64/viogpudo.sys\ndrivers/by-driver/viogpudo/2k19/amd64/vgpusrv.exe\ndrivers/by-driver/viogpudo/2k19/amd64/vgpusrv.pdb\ndrivers/by-driver/viogpudo/2k19/amd64/viogpuap.exe\ndrivers/by-driver/viogpudo/2k19/amd64/viogpuap.pdb\ndrivers/by-driver/viogpudo/2k19/amd64/viogpudo.cat\ndrivers/by-driver/viogpudo/2k19/amd64/viogpudo.inf\ndrivers/by-driver/viogpudo/2k19/amd64/viogpudo.pdb\ndrivers/by-driver/viogpudo/2k19/amd64/viogpudo.sys\ndrivers/by-driver/viogpudo/2k22/amd64/vgpusrv.exe\ndrivers/by-driver/viogpudo/2k22/amd64/vgpusrv.pdb\ndrivers/by-driver/viogpudo/2k22/amd64/viogpuap.exe\ndrivers/by-driver/viogpudo/2k22/amd64/viogpuap.pdb\ndrivers/by-driver/viogpudo/2k22/amd64/viogpudo.cat\ndrivers/by-driver/viogpudo/2k22/amd64/viogpudo.inf\ndrivers/by-driver/viogpudo/2k22/amd64/viogpudo.pdb\ndrivers/by-driver/viogpudo/2k22/amd64/viogpudo.sys\ndrivers/by-driver/viogpudo/2k25/amd64/vgpusrv.exe\ndrivers/by-driver/viogpudo/2k25/amd64/vgpusrv.pdb\ndrivers/by-driver/viogpudo/2k25/amd64/viogpuap.exe\ndrivers/by-driver/viogpudo/2k25/amd64/viogpuap.pdb\ndrivers/by-driver/viogpudo/2k25/amd64/viogpudo.cat\ndrivers/by-driver/viogpudo/2k25/amd64/viogpudo.inf\ndrivers/by-driver/viogpudo/2k25/amd64/viogpudo.pdb\ndrivers/by-driver/viogpudo/2k25/amd64/viogpudo.sys\ndrivers/by-driver/viogpudo/w10/amd64/vgpusrv.exe\ndrivers/by-driver/viogpudo/w10/amd64/vgpusrv.pdb\ndrivers/by-driver/viogpudo/w10/amd64/viogpuap.exe\ndrivers/by-driver/viogpudo/w10/amd64/viogpuap.pdb\ndrivers/by-driver/viogpudo/w10/amd64/viogpudo.cat\ndrivers/by-driver/viogpudo/w10/amd64/viogpudo.inf\ndrivers/by-driver/viogpudo/w10/amd64/viogpudo.pdb\ndrivers/by-driver/viogpudo/w10/amd64/viogpudo.sys\ndrivers/by-driver/viogpudo/w10/x86/vgpusrv.exe\ndrivers/by-driver/viogpudo/w10/x86/vgpusrv.pdb\ndrivers/by-driver/viogpudo/w10/x86/viogpuap.exe\ndrivers/by-driver/viogpudo/w10/x86/viogpuap.pdb\ndrivers/by-driver/viogpudo/w10/x86/viogpudo.cat\ndrivers/by-driver/viogpudo/w10/x86/viogpudo.inf\ndrivers/by-driver/viogpudo/w10/x86/viogpudo.pdb\ndrivers/by-driver/viogpudo/w10/x86/viogpudo.sys\ndrivers/by-driver/viogpudo/w11/amd64/vgpusrv.exe\ndrivers/by-driver/viogpudo/w11/amd64/vgpusrv.pdb\ndrivers/by-driver/viogpudo/w11/amd64/viogpuap.exe\ndrivers/by-driver/viogpudo/w11/amd64/viogpuap.pdb\ndrivers/by-driver/viogpudo/w11/amd64/viogpudo.cat\ndrivers/by-driver/viogpudo/w11/amd64/viogpudo.inf\ndrivers/by-driver/viogpudo/w11/amd64/viogpudo.pdb\ndrivers/by-driver/viogpudo/w11/amd64/viogpudo.sys\ndrivers/by-driver/vioinput/2k12/amd64/viohidkmdf.pdb\ndrivers/by-driver/vioinput/2k12/amd64/viohidkmdf.sys\ndrivers/by-driver/vioinput/2k12/amd64/vioinput.cat\ndrivers/by-driver/vioinput/2k12/amd64/vioinput.inf\ndrivers/by-driver/vioinput/2k12/amd64/vioinput.pdb\ndrivers/by-driver/vioinput/2k12/amd64/vioinput.sys\ndrivers/by-driver/vioinput/2k12/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/vioinput/2k12R2/amd64/viohidkmdf.pdb\ndrivers/by-driver/vioinput/2k12R2/amd64/viohidkmdf.sys\ndrivers/by-driver/vioinput/2k12R2/amd64/vioinput.cat\ndrivers/by-driver/vioinput/2k12R2/amd64/vioinput.inf\ndrivers/by-driver/vioinput/2k12R2/amd64/vioinput.pdb\ndrivers/by-driver/vioinput/2k12R2/amd64/vioinput.sys\ndrivers/by-driver/vioinput/2k12R2/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/vioinput/2k16/amd64/viohidkmdf.pdb\ndrivers/by-driver/vioinput/2k16/amd64/viohidkmdf.sys\ndrivers/by-driver/vioinput/2k16/amd64/vioinput.cat\ndrivers/by-driver/vioinput/2k16/amd64/vioinput.inf\ndrivers/by-driver/vioinput/2k16/amd64/vioinput.pdb\ndrivers/by-driver/vioinput/2k16/amd64/vioinput.sys\ndrivers/by-driver/vioinput/2k19/amd64/viohidkmdf.pdb\ndrivers/by-driver/vioinput/2k19/amd64/viohidkmdf.sys\ndrivers/by-driver/vioinput/2k19/amd64/vioinput.cat\ndrivers/by-driver/vioinput/2k19/amd64/vioinput.inf\ndrivers/by-driver/vioinput/2k19/amd64/vioinput.pdb\ndrivers/by-driver/vioinput/2k19/amd64/vioinput.sys\ndrivers/by-driver/vioinput/2k22/amd64/viohidkmdf.pdb\ndrivers/by-driver/vioinput/2k22/amd64/viohidkmdf.sys\ndrivers/by-driver/vioinput/2k22/amd64/vioinput.cat\ndrivers/by-driver/vioinput/2k22/amd64/vioinput.inf\ndrivers/by-driver/vioinput/2k22/amd64/vioinput.pdb\ndrivers/by-driver/vioinput/2k22/amd64/vioinput.sys\ndrivers/by-driver/vioinput/2k25/amd64/viohidkmdf.pdb\ndrivers/by-driver/vioinput/2k25/amd64/viohidkmdf.sys\ndrivers/by-driver/vioinput/2k25/amd64/vioinput.cat\ndrivers/by-driver/vioinput/2k25/amd64/vioinput.inf\ndrivers/by-driver/vioinput/2k25/amd64/vioinput.pdb\ndrivers/by-driver/vioinput/2k25/amd64/vioinput.sys\ndrivers/by-driver/vioinput/2k8R2/amd64/viohidkmdf.pdb\ndrivers/by-driver/vioinput/2k8R2/amd64/viohidkmdf.sys\ndrivers/by-driver/vioinput/2k8R2/amd64/vioinput.cat\ndrivers/by-driver/vioinput/2k8R2/amd64/vioinput.inf\ndrivers/by-driver/vioinput/2k8R2/amd64/vioinput.pdb\ndrivers/by-driver/vioinput/2k8R2/amd64/vioinput.sys\ndrivers/by-driver/vioinput/2k8R2/amd64/WdfCoInstaller01009.dll\ndrivers/by-driver/vioinput/w10/amd64/viohidkmdf.pdb\ndrivers/by-driver/vioinput/w10/amd64/viohidkmdf.sys\ndrivers/by-driver/vioinput/w10/amd64/vioinput.cat\ndrivers/by-driver/vioinput/w10/amd64/vioinput.inf\ndrivers/by-driver/vioinput/w10/amd64/vioinput.pdb\ndrivers/by-driver/vioinput/w10/amd64/vioinput.sys\ndrivers/by-driver/vioinput/w10/x86/viohidkmdf.pdb\ndrivers/by-driver/vioinput/w10/x86/viohidkmdf.sys\ndrivers/by-driver/vioinput/w10/x86/vioinput.cat\ndrivers/by-driver/vioinput/w10/x86/vioinput.inf\ndrivers/by-driver/vioinput/w10/x86/vioinput.pdb\ndrivers/by-driver/vioinput/w10/x86/vioinput.sys\ndrivers/by-driver/vioinput/w11/amd64/viohidkmdf.pdb\ndrivers/by-driver/vioinput/w11/amd64/viohidkmdf.sys\ndrivers/by-driver/vioinput/w11/amd64/vioinput.cat\ndrivers/by-driver/vioinput/w11/amd64/vioinput.inf\ndrivers/by-driver/vioinput/w11/amd64/vioinput.pdb\ndrivers/by-driver/vioinput/w11/amd64/vioinput.sys\ndrivers/by-driver/vioinput/w7/amd64/viohidkmdf.pdb\ndrivers/by-driver/vioinput/w7/amd64/viohidkmdf.sys\ndrivers/by-driver/vioinput/w7/amd64/vioinput.cat\ndrivers/by-driver/vioinput/w7/amd64/vioinput.inf\ndrivers/by-driver/vioinput/w7/amd64/vioinput.pdb\ndrivers/by-driver/vioinput/w7/amd64/vioinput.sys\ndrivers/by-driver/vioinput/w7/amd64/WdfCoInstaller01009.dll\ndrivers/by-driver/vioinput/w7/x86/viohidkmdf.pdb\ndrivers/by-driver/vioinput/w7/x86/viohidkmdf.sys\ndrivers/by-driver/vioinput/w7/x86/vioinput.cat\ndrivers/by-driver/vioinput/w7/x86/vioinput.inf\ndrivers/by-driver/vioinput/w7/x86/vioinput.pdb\ndrivers/by-driver/vioinput/w7/x86/vioinput.sys\ndrivers/by-driver/vioinput/w7/x86/WdfCoInstaller01009.dll\ndrivers/by-driver/vioinput/w8.1/amd64/viohidkmdf.pdb\ndrivers/by-driver/vioinput/w8.1/amd64/viohidkmdf.sys\ndrivers/by-driver/vioinput/w8.1/amd64/vioinput.cat\ndrivers/by-driver/vioinput/w8.1/amd64/vioinput.inf\ndrivers/by-driver/vioinput/w8.1/amd64/vioinput.pdb\ndrivers/by-driver/vioinput/w8.1/amd64/vioinput.sys\ndrivers/by-driver/vioinput/w8.1/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/vioinput/w8.1/x86/viohidkmdf.pdb\ndrivers/by-driver/vioinput/w8.1/x86/viohidkmdf.sys\ndrivers/by-driver/vioinput/w8.1/x86/vioinput.cat\ndrivers/by-driver/vioinput/w8.1/x86/vioinput.inf\ndrivers/by-driver/vioinput/w8.1/x86/vioinput.pdb\ndrivers/by-driver/vioinput/w8.1/x86/vioinput.sys\ndrivers/by-driver/vioinput/w8.1/x86/WdfCoInstaller01011.dll\ndrivers/by-driver/vioinput/w8/amd64/viohidkmdf.pdb\ndrivers/by-driver/vioinput/w8/amd64/viohidkmdf.sys\ndrivers/by-driver/vioinput/w8/amd64/vioinput.cat\ndrivers/by-driver/vioinput/w8/amd64/vioinput.inf\ndrivers/by-driver/vioinput/w8/amd64/vioinput.pdb\ndrivers/by-driver/vioinput/w8/amd64/vioinput.sys\ndrivers/by-driver/vioinput/w8/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/vioinput/w8/x86/viohidkmdf.pdb\ndrivers/by-driver/vioinput/w8/x86/viohidkmdf.sys\ndrivers/by-driver/vioinput/w8/x86/vioinput.cat\ndrivers/by-driver/vioinput/w8/x86/vioinput.inf\ndrivers/by-driver/vioinput/w8/x86/vioinput.pdb\ndrivers/by-driver/vioinput/w8/x86/vioinput.sys\ndrivers/by-driver/vioinput/w8/x86/WdfCoInstaller01011.dll\ndrivers/by-driver/viomem/2k16/amd64/viomem.cat\ndrivers/by-driver/viomem/2k16/amd64/viomem.inf\ndrivers/by-driver/viomem/2k16/amd64/viomem.pdb\ndrivers/by-driver/viomem/2k16/amd64/viomem.sys\ndrivers/by-driver/viomem/2k19/amd64/viomem.cat\ndrivers/by-driver/viomem/2k19/amd64/viomem.inf\ndrivers/by-driver/viomem/2k19/amd64/viomem.pdb\ndrivers/by-driver/viomem/2k19/amd64/viomem.sys\ndrivers/by-driver/viomem/2k22/amd64/viomem.cat\ndrivers/by-driver/viomem/2k22/amd64/viomem.inf\ndrivers/by-driver/viomem/2k22/amd64/viomem.pdb\ndrivers/by-driver/viomem/2k22/amd64/viomem.sys\ndrivers/by-driver/viomem/2k25/amd64/viomem.cat\ndrivers/by-driver/viomem/2k25/amd64/viomem.inf\ndrivers/by-driver/viomem/2k25/amd64/viomem.pdb\ndrivers/by-driver/viomem/2k25/amd64/viomem.sys\ndrivers/by-driver/viomem/w10/amd64/viomem.cat\ndrivers/by-driver/viomem/w10/amd64/viomem.inf\ndrivers/by-driver/viomem/w10/amd64/viomem.pdb\ndrivers/by-driver/viomem/w10/amd64/viomem.sys\ndrivers/by-driver/viomem/w11/amd64/viomem.cat\ndrivers/by-driver/viomem/w11/amd64/viomem.inf\ndrivers/by-driver/viomem/w11/amd64/viomem.pdb\ndrivers/by-driver/viomem/w11/amd64/viomem.sys\ndrivers/by-driver/viorng/2k12/amd64/viorng.cat\ndrivers/by-driver/viorng/2k12/amd64/viorngci.dll\ndrivers/by-driver/viorng/2k12/amd64/viorngci.pdb\ndrivers/by-driver/viorng/2k12/amd64/viorng.inf\ndrivers/by-driver/viorng/2k12/amd64/viorng.pdb\ndrivers/by-driver/viorng/2k12/amd64/viorng.sys\ndrivers/by-driver/viorng/2k12/amd64/viorngum.dll\ndrivers/by-driver/viorng/2k12/amd64/viorngum.pdb\ndrivers/by-driver/viorng/2k12/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/viorng/2k12R2/amd64/viorng.cat\ndrivers/by-driver/viorng/2k12R2/amd64/viorngci.dll\ndrivers/by-driver/viorng/2k12R2/amd64/viorngci.pdb\ndrivers/by-driver/viorng/2k12R2/amd64/viorng.inf\ndrivers/by-driver/viorng/2k12R2/amd64/viorng.pdb\ndrivers/by-driver/viorng/2k12R2/amd64/viorng.sys\ndrivers/by-driver/viorng/2k12R2/amd64/viorngum.dll\ndrivers/by-driver/viorng/2k12R2/amd64/viorngum.pdb\ndrivers/by-driver/viorng/2k12R2/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/viorng/2k16/amd64/viorng.cat\ndrivers/by-driver/viorng/2k16/amd64/viorng.inf\ndrivers/by-driver/viorng/2k16/amd64/viorng.pdb\ndrivers/by-driver/viorng/2k16/amd64/viorng.sys\ndrivers/by-driver/viorng/2k16/amd64/viorngum.dll\ndrivers/by-driver/viorng/2k16/amd64/viorngum.pdb\ndrivers/by-driver/viorng/2k19/amd64/viorng.cat\ndrivers/by-driver/viorng/2k19/amd64/viorng.inf\ndrivers/by-driver/viorng/2k19/amd64/viorng.pdb\ndrivers/by-driver/viorng/2k19/amd64/viorng.sys\ndrivers/by-driver/viorng/2k19/amd64/viorngum.dll\ndrivers/by-driver/viorng/2k19/amd64/viorngum.pdb\ndrivers/by-driver/viorng/2k22/amd64/viorng.cat\ndrivers/by-driver/viorng/2k22/amd64/viorng.inf\ndrivers/by-driver/viorng/2k22/amd64/viorng.pdb\ndrivers/by-driver/viorng/2k22/amd64/viorng.sys\ndrivers/by-driver/viorng/2k22/amd64/viorngum.dll\ndrivers/by-driver/viorng/2k22/amd64/viorngum.pdb\ndrivers/by-driver/viorng/2k25/amd64/viorng.cat\ndrivers/by-driver/viorng/2k25/amd64/viorng.inf\ndrivers/by-driver/viorng/2k25/amd64/viorng.pdb\ndrivers/by-driver/viorng/2k25/amd64/viorng.sys\ndrivers/by-driver/viorng/2k25/amd64/viorngum.dll\ndrivers/by-driver/viorng/2k25/amd64/viorngum.pdb\ndrivers/by-driver/viorng/2k8R2/amd64/viorng.cat\ndrivers/by-driver/viorng/2k8R2/amd64/viorngci.dll\ndrivers/by-driver/viorng/2k8R2/amd64/viorngci.pdb\ndrivers/by-driver/viorng/2k8R2/amd64/viorng.inf\ndrivers/by-driver/viorng/2k8R2/amd64/viorng.pdb\ndrivers/by-driver/viorng/2k8R2/amd64/viorng.sys\ndrivers/by-driver/viorng/2k8R2/amd64/viorngum.dll\ndrivers/by-driver/viorng/2k8R2/amd64/viorngum.pdb\ndrivers/by-driver/viorng/2k8R2/amd64/WdfCoInstaller01009.dll\ndrivers/by-driver/viorng/w10/amd64/viorng.cat\ndrivers/by-driver/viorng/w10/amd64/viorng.inf\ndrivers/by-driver/viorng/w10/amd64/viorng.pdb\ndrivers/by-driver/viorng/w10/amd64/viorng.sys\ndrivers/by-driver/viorng/w10/amd64/viorngum.dll\ndrivers/by-driver/viorng/w10/amd64/viorngum.pdb\ndrivers/by-driver/viorng/w10/x86/viorng.cat\ndrivers/by-driver/viorng/w10/x86/viorng.inf\ndrivers/by-driver/viorng/w10/x86/viorng.pdb\ndrivers/by-driver/viorng/w10/x86/viorng.sys\ndrivers/by-driver/viorng/w10/x86/viorngum.dll\ndrivers/by-driver/viorng/w10/x86/viorngum.pdb\ndrivers/by-driver/viorng/w11/amd64/viorng.cat\ndrivers/by-driver/viorng/w11/amd64/viorng.inf\ndrivers/by-driver/viorng/w11/amd64/viorng.pdb\ndrivers/by-driver/viorng/w11/amd64/viorng.sys\ndrivers/by-driver/viorng/w11/amd64/viorngum.dll\ndrivers/by-driver/viorng/w11/amd64/viorngum.pdb\ndrivers/by-driver/viorng/w7/amd64/viorng.cat\ndrivers/by-driver/viorng/w7/amd64/viorngci.dll\ndrivers/by-driver/viorng/w7/amd64/viorngci.pdb\ndrivers/by-driver/viorng/w7/amd64/viorng.inf\ndrivers/by-driver/viorng/w7/amd64/viorng.pdb\ndrivers/by-driver/viorng/w7/amd64/viorng.sys\ndrivers/by-driver/viorng/w7/amd64/viorngum.dll\ndrivers/by-driver/viorng/w7/amd64/viorngum.pdb\ndrivers/by-driver/viorng/w7/amd64/WdfCoInstaller01009.dll\ndrivers/by-driver/viorng/w7/x86/viorng.cat\ndrivers/by-driver/viorng/w7/x86/viorngci.dll\ndrivers/by-driver/viorng/w7/x86/viorngci.pdb\ndrivers/by-driver/viorng/w7/x86/viorng.inf\ndrivers/by-driver/viorng/w7/x86/viorng.pdb\ndrivers/by-driver/viorng/w7/x86/viorng.sys\ndrivers/by-driver/viorng/w7/x86/viorngum.dll\ndrivers/by-driver/viorng/w7/x86/viorngum.pdb\ndrivers/by-driver/viorng/w7/x86/WdfCoInstaller01009.dll\ndrivers/by-driver/viorng/w8.1/amd64/viorng.cat\ndrivers/by-driver/viorng/w8.1/amd64/viorngci.dll\ndrivers/by-driver/viorng/w8.1/amd64/viorngci.pdb\ndrivers/by-driver/viorng/w8.1/amd64/viorng.inf\ndrivers/by-driver/viorng/w8.1/amd64/viorng.pdb\ndrivers/by-driver/viorng/w8.1/amd64/viorng.sys\ndrivers/by-driver/viorng/w8.1/amd64/viorngum.dll\ndrivers/by-driver/viorng/w8.1/amd64/viorngum.pdb\ndrivers/by-driver/viorng/w8.1/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/viorng/w8.1/x86/viorng.cat\ndrivers/by-driver/viorng/w8.1/x86/viorngci.dll\ndrivers/by-driver/viorng/w8.1/x86/viorngci.pdb\ndrivers/by-driver/viorng/w8.1/x86/viorng.inf\ndrivers/by-driver/viorng/w8.1/x86/viorng.pdb\ndrivers/by-driver/viorng/w8.1/x86/viorng.sys\ndrivers/by-driver/viorng/w8.1/x86/viorngum.dll\ndrivers/by-driver/viorng/w8.1/x86/viorngum.pdb\ndrivers/by-driver/viorng/w8.1/x86/WdfCoInstaller01011.dll\ndrivers/by-driver/viorng/w8/amd64/viorng.cat\ndrivers/by-driver/viorng/w8/amd64/viorngci.dll\ndrivers/by-driver/viorng/w8/amd64/viorngci.pdb\ndrivers/by-driver/viorng/w8/amd64/viorng.inf\ndrivers/by-driver/viorng/w8/amd64/viorng.pdb\ndrivers/by-driver/viorng/w8/amd64/viorng.sys\ndrivers/by-driver/viorng/w8/amd64/viorngum.dll\ndrivers/by-driver/viorng/w8/amd64/viorngum.pdb\ndrivers/by-driver/viorng/w8/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/viorng/w8/x86/viorng.cat\ndrivers/by-driver/viorng/w8/x86/viorngci.dll\ndrivers/by-driver/viorng/w8/x86/viorngci.pdb\ndrivers/by-driver/viorng/w8/x86/viorng.inf\ndrivers/by-driver/viorng/w8/x86/viorng.pdb\ndrivers/by-driver/viorng/w8/x86/viorng.sys\ndrivers/by-driver/viorng/w8/x86/viorngum.dll\ndrivers/by-driver/viorng/w8/x86/viorngum.pdb\ndrivers/by-driver/viorng/w8/x86/WdfCoInstaller01011.dll\ndrivers/by-driver/vioscsi/2k12/amd64/vioscsi.cat\ndrivers/by-driver/vioscsi/2k12/amd64/vioscsi.inf\ndrivers/by-driver/vioscsi/2k12/amd64/vioscsi.pdb\ndrivers/by-driver/vioscsi/2k12/amd64/vioscsi.sys\ndrivers/by-driver/vioscsi/2k12R2/amd64/vioscsi.cat\ndrivers/by-driver/vioscsi/2k12R2/amd64/vioscsi.inf\ndrivers/by-driver/vioscsi/2k12R2/amd64/vioscsi.pdb\ndrivers/by-driver/vioscsi/2k12R2/amd64/vioscsi.sys\ndrivers/by-driver/vioscsi/2k16/amd64/vioscsi.cat\ndrivers/by-driver/vioscsi/2k16/amd64/vioscsi.inf\ndrivers/by-driver/vioscsi/2k16/amd64/vioscsi.pdb\ndrivers/by-driver/vioscsi/2k16/amd64/vioscsi.sys\ndrivers/by-driver/vioscsi/2k19/amd64/vioscsi.cat\ndrivers/by-driver/vioscsi/2k19/amd64/vioscsi.inf\ndrivers/by-driver/vioscsi/2k19/amd64/vioscsi.pdb\ndrivers/by-driver/vioscsi/2k19/amd64/vioscsi.sys\ndrivers/by-driver/vioscsi/2k22/amd64/vioscsi.cat\ndrivers/by-driver/vioscsi/2k22/amd64/vioscsi.inf\ndrivers/by-driver/vioscsi/2k22/amd64/vioscsi.pdb\ndrivers/by-driver/vioscsi/2k22/amd64/vioscsi.sys\ndrivers/by-driver/vioscsi/2k25/amd64/vioscsi.cat\ndrivers/by-driver/vioscsi/2k25/amd64/vioscsi.inf\ndrivers/by-driver/vioscsi/2k25/amd64/vioscsi.pdb\ndrivers/by-driver/vioscsi/2k25/amd64/vioscsi.sys\ndrivers/by-driver/vioscsi/2k8R2/amd64/vioscsi.cat\ndrivers/by-driver/vioscsi/2k8R2/amd64/vioscsi.inf\ndrivers/by-driver/vioscsi/2k8R2/amd64/vioscsi.pdb\ndrivers/by-driver/vioscsi/2k8R2/amd64/vioscsi.sys\ndrivers/by-driver/vioscsi/w10/amd64/vioscsi.cat\ndrivers/by-driver/vioscsi/w10/amd64/vioscsi.inf\ndrivers/by-driver/vioscsi/w10/amd64/vioscsi.pdb\ndrivers/by-driver/vioscsi/w10/amd64/vioscsi.sys\ndrivers/by-driver/vioscsi/w10/x86/vioscsi.cat\ndrivers/by-driver/vioscsi/w10/x86/vioscsi.inf\ndrivers/by-driver/vioscsi/w10/x86/vioscsi.pdb\ndrivers/by-driver/vioscsi/w10/x86/vioscsi.sys\ndrivers/by-driver/vioscsi/w11/amd64/vioscsi.cat\ndrivers/by-driver/vioscsi/w11/amd64/vioscsi.inf\ndrivers/by-driver/vioscsi/w11/amd64/vioscsi.pdb\ndrivers/by-driver/vioscsi/w11/amd64/vioscsi.sys\ndrivers/by-driver/vioscsi/w7/amd64/vioscsi.cat\ndrivers/by-driver/vioscsi/w7/amd64/vioscsi.inf\ndrivers/by-driver/vioscsi/w7/amd64/vioscsi.pdb\ndrivers/by-driver/vioscsi/w7/amd64/vioscsi.sys\ndrivers/by-driver/vioscsi/w7/x86/vioscsi.cat\ndrivers/by-driver/vioscsi/w7/x86/vioscsi.inf\ndrivers/by-driver/vioscsi/w7/x86/vioscsi.pdb\ndrivers/by-driver/vioscsi/w7/x86/vioscsi.sys\ndrivers/by-driver/vioscsi/w8.1/amd64/vioscsi.cat\ndrivers/by-driver/vioscsi/w8.1/amd64/vioscsi.inf\ndrivers/by-driver/vioscsi/w8.1/amd64/vioscsi.pdb\ndrivers/by-driver/vioscsi/w8.1/amd64/vioscsi.sys\ndrivers/by-driver/vioscsi/w8.1/x86/vioscsi.cat\ndrivers/by-driver/vioscsi/w8.1/x86/vioscsi.inf\ndrivers/by-driver/vioscsi/w8.1/x86/vioscsi.pdb\ndrivers/by-driver/vioscsi/w8.1/x86/vioscsi.sys\ndrivers/by-driver/vioscsi/w8/amd64/vioscsi.cat\ndrivers/by-driver/vioscsi/w8/amd64/vioscsi.inf\ndrivers/by-driver/vioscsi/w8/amd64/vioscsi.pdb\ndrivers/by-driver/vioscsi/w8/amd64/vioscsi.sys\ndrivers/by-driver/vioscsi/w8/x86/vioscsi.cat\ndrivers/by-driver/vioscsi/w8/x86/vioscsi.inf\ndrivers/by-driver/vioscsi/w8/x86/vioscsi.pdb\ndrivers/by-driver/vioscsi/w8/x86/vioscsi.sys\ndrivers/by-driver/vioserial/2k12/amd64/vioser.cat\ndrivers/by-driver/vioserial/2k12/amd64/vioser.inf\ndrivers/by-driver/vioserial/2k12/amd64/vioser.pdb\ndrivers/by-driver/vioserial/2k12/amd64/vioser.sys\ndrivers/by-driver/vioserial/2k12/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/vioserial/2k12R2/amd64/vioser.cat\ndrivers/by-driver/vioserial/2k12R2/amd64/vioser.inf\ndrivers/by-driver/vioserial/2k12R2/amd64/vioser.pdb\ndrivers/by-driver/vioserial/2k12R2/amd64/vioser.sys\ndrivers/by-driver/vioserial/2k12R2/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/vioserial/2k16/amd64/vioser.cat\ndrivers/by-driver/vioserial/2k16/amd64/vioser.inf\ndrivers/by-driver/vioserial/2k16/amd64/vioser.pdb\ndrivers/by-driver/vioserial/2k16/amd64/vioser.sys\ndrivers/by-driver/vioserial/2k19/amd64/vioser.cat\ndrivers/by-driver/vioserial/2k19/amd64/vioser.inf\ndrivers/by-driver/vioserial/2k19/amd64/vioser.pdb\ndrivers/by-driver/vioserial/2k19/amd64/vioser.sys\ndrivers/by-driver/vioserial/2k22/amd64/vioser.cat\ndrivers/by-driver/vioserial/2k22/amd64/vioser.inf\ndrivers/by-driver/vioserial/2k22/amd64/vioser.pdb\ndrivers/by-driver/vioserial/2k22/amd64/vioser.sys\ndrivers/by-driver/vioserial/2k25/amd64/vioser.cat\ndrivers/by-driver/vioserial/2k25/amd64/vioser.inf\ndrivers/by-driver/vioserial/2k25/amd64/vioser.pdb\ndrivers/by-driver/vioserial/2k25/amd64/vioser.sys\ndrivers/by-driver/vioserial/2k8R2/amd64/vioser.cat\ndrivers/by-driver/vioserial/2k8R2/amd64/vioser.inf\ndrivers/by-driver/vioserial/2k8R2/amd64/vioser.pdb\ndrivers/by-driver/vioserial/2k8R2/amd64/vioser.sys\ndrivers/by-driver/vioserial/2k8R2/amd64/WdfCoInstaller01009.dll\ndrivers/by-driver/vioserial/w10/amd64/vioser.cat\ndrivers/by-driver/vioserial/w10/amd64/vioser.inf\ndrivers/by-driver/vioserial/w10/amd64/vioser.pdb\ndrivers/by-driver/vioserial/w10/amd64/vioser.sys\ndrivers/by-driver/vioserial/w10/x86/vioser.cat\ndrivers/by-driver/vioserial/w10/x86/vioser.inf\ndrivers/by-driver/vioserial/w10/x86/vioser.pdb\ndrivers/by-driver/vioserial/w10/x86/vioser.sys\ndrivers/by-driver/vioserial/w11/amd64/vioser.cat\ndrivers/by-driver/vioserial/w11/amd64/vioser.inf\ndrivers/by-driver/vioserial/w11/amd64/vioser.pdb\ndrivers/by-driver/vioserial/w11/amd64/vioser.sys\ndrivers/by-driver/vioserial/w7/amd64/vioser.cat\ndrivers/by-driver/vioserial/w7/amd64/vioser.inf\ndrivers/by-driver/vioserial/w7/amd64/vioser.pdb\ndrivers/by-driver/vioserial/w7/amd64/vioser.sys\ndrivers/by-driver/vioserial/w7/amd64/WdfCoInstaller01009.dll\ndrivers/by-driver/vioserial/w7/x86/vioser.cat\ndrivers/by-driver/vioserial/w7/x86/vioser.inf\ndrivers/by-driver/vioserial/w7/x86/vioser.pdb\ndrivers/by-driver/vioserial/w7/x86/vioser.sys\ndrivers/by-driver/vioserial/w7/x86/WdfCoInstaller01009.dll\ndrivers/by-driver/vioserial/w8.1/amd64/vioser.cat\ndrivers/by-driver/vioserial/w8.1/amd64/vioser.inf\ndrivers/by-driver/vioserial/w8.1/amd64/vioser.pdb\ndrivers/by-driver/vioserial/w8.1/amd64/vioser.sys\ndrivers/by-driver/vioserial/w8.1/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/vioserial/w8.1/x86/vioser.cat\ndrivers/by-driver/vioserial/w8.1/x86/vioser.inf\ndrivers/by-driver/vioserial/w8.1/x86/vioser.pdb\ndrivers/by-driver/vioserial/w8.1/x86/vioser.sys\ndrivers/by-driver/vioserial/w8.1/x86/WdfCoInstaller01011.dll\ndrivers/by-driver/vioserial/w8/amd64/vioser.cat\ndrivers/by-driver/vioserial/w8/amd64/vioser.inf\ndrivers/by-driver/vioserial/w8/amd64/vioser.pdb\ndrivers/by-driver/vioserial/w8/amd64/vioser.sys\ndrivers/by-driver/vioserial/w8/amd64/WdfCoInstaller01011.dll\ndrivers/by-driver/vioserial/w8/x86/vioser.cat\ndrivers/by-driver/vioserial/w8/x86/vioser.inf\ndrivers/by-driver/vioserial/w8/x86/vioser.pdb\ndrivers/by-driver/vioserial/w8/x86/vioser.sys\ndrivers/by-driver/vioserial/w8/x86/WdfCoInstaller01011.dll\ndrivers/by-driver/viostor/2k12/amd64/viostor.cat\ndrivers/by-driver/viostor/2k12/amd64/viostor.inf\ndrivers/by-driver/viostor/2k12/amd64/viostor.pdb\ndrivers/by-driver/viostor/2k12/amd64/viostor.sys\ndrivers/by-driver/viostor/2k12R2/amd64/viostor.cat\ndrivers/by-driver/viostor/2k12R2/amd64/viostor.inf\ndrivers/by-driver/viostor/2k12R2/amd64/viostor.pdb\ndrivers/by-driver/viostor/2k12R2/amd64/viostor.sys\ndrivers/by-driver/viostor/2k16/amd64/viostor.cat\ndrivers/by-driver/viostor/2k16/amd64/viostor.inf\ndrivers/by-driver/viostor/2k16/amd64/viostor.pdb\ndrivers/by-driver/viostor/2k16/amd64/viostor.sys\ndrivers/by-driver/viostor/2k19/amd64/viostor.cat\ndrivers/by-driver/viostor/2k19/amd64/viostor.inf\ndrivers/by-driver/viostor/2k19/amd64/viostor.pdb\ndrivers/by-driver/viostor/2k19/amd64/viostor.sys\ndrivers/by-driver/viostor/2k22/amd64/viostor.cat\ndrivers/by-driver/viostor/2k22/amd64/viostor.inf\ndrivers/by-driver/viostor/2k22/amd64/viostor.pdb\ndrivers/by-driver/viostor/2k22/amd64/viostor.sys\ndrivers/by-driver/viostor/2k25/amd64/viostor.cat\ndrivers/by-driver/viostor/2k25/amd64/viostor.inf\ndrivers/by-driver/viostor/2k25/amd64/viostor.pdb\ndrivers/by-driver/viostor/2k25/amd64/viostor.sys\ndrivers/by-driver/viostor/2k8R2/amd64/viostor.cat\ndrivers/by-driver/viostor/2k8R2/amd64/viostor.inf\ndrivers/by-driver/viostor/2k8R2/amd64/viostor.pdb\ndrivers/by-driver/viostor/2k8R2/amd64/viostor.sys\ndrivers/by-driver/viostor/w10/amd64/viostor.cat\ndrivers/by-driver/viostor/w10/amd64/viostor.inf\ndrivers/by-driver/viostor/w10/amd64/viostor.pdb\ndrivers/by-driver/viostor/w10/amd64/viostor.sys\ndrivers/by-driver/viostor/w10/x86/viostor.cat\ndrivers/by-driver/viostor/w10/x86/viostor.inf\ndrivers/by-driver/viostor/w10/x86/viostor.pdb\ndrivers/by-driver/viostor/w10/x86/viostor.sys\ndrivers/by-driver/viostor/w11/amd64/viostor.cat\ndrivers/by-driver/viostor/w11/amd64/viostor.inf\ndrivers/by-driver/viostor/w11/amd64/viostor.pdb\ndrivers/by-driver/viostor/w11/amd64/viostor.sys\ndrivers/by-driver/viostor/w7/amd64/viostor.cat\ndrivers/by-driver/viostor/w7/amd64/viostor.inf\ndrivers/by-driver/viostor/w7/amd64/viostor.pdb\ndrivers/by-driver/viostor/w7/amd64/viostor.sys\ndrivers/by-driver/viostor/w7/x86/viostor.cat\ndrivers/by-driver/viostor/w7/x86/viostor.inf\ndrivers/by-driver/viostor/w7/x86/viostor.pdb\ndrivers/by-driver/viostor/w7/x86/viostor.sys\ndrivers/by-driver/viostor/w8.1/amd64/viostor.cat\ndrivers/by-driver/viostor/w8.1/amd64/viostor.inf\ndrivers/by-driver/viostor/w8.1/amd64/viostor.pdb\ndrivers/by-driver/viostor/w8.1/amd64/viostor.sys\ndrivers/by-driver/viostor/w8.1/x86/viostor.cat\ndrivers/by-driver/viostor/w8.1/x86/viostor.inf\ndrivers/by-driver/viostor/w8.1/x86/viostor.pdb\ndrivers/by-driver/viostor/w8.1/x86/viostor.sys\ndrivers/by-driver/viostor/w8/amd64/viostor.cat\ndrivers/by-driver/viostor/w8/amd64/viostor.inf\ndrivers/by-driver/viostor/w8/amd64/viostor.pdb\ndrivers/by-driver/viostor/w8/amd64/viostor.sys\ndrivers/by-driver/viostor/w8/x86/viostor.cat\ndrivers/by-driver/viostor/w8/x86/viostor.inf\ndrivers/by-driver/viostor/w8/x86/viostor.pdb\ndrivers/by-driver/viostor/w8/x86/viostor.sys\ndrivers/by-os/amd64/2k12/balloon.cat\ndrivers/by-os/amd64/2k12/balloon.inf\ndrivers/by-os/amd64/2k12/balloon.sys\ndrivers/by-os/amd64/2k12/blnsvr.exe\ndrivers/by-os/amd64/2k12/fwcfg.cat\ndrivers/by-os/amd64/2k12/fwcfg.inf\ndrivers/by-os/amd64/2k12/fwcfg.sys\ndrivers/by-os/amd64/2k12/netkvm.cat\ndrivers/by-os/amd64/2k12/netkvmco.dll\ndrivers/by-os/amd64/2k12/netkvm.inf\ndrivers/by-os/amd64/2k12/netkvm.sys\ndrivers/by-os/amd64/2k12/pvpanic.cat\ndrivers/by-os/amd64/2k12/pvpanic.inf\ndrivers/by-os/amd64/2k12/pvpanic.sys\ndrivers/by-os/amd64/2k12/qemupciserial.cat\ndrivers/by-os/amd64/2k12/qemupciserial.inf\ndrivers/by-os/amd64/2k12R2/balloon.cat\ndrivers/by-os/amd64/2k12R2/balloon.inf\ndrivers/by-os/amd64/2k12R2/balloon.sys\ndrivers/by-os/amd64/2k12R2/blnsvr.exe\ndrivers/by-os/amd64/2k12R2/fwcfg.cat\ndrivers/by-os/amd64/2k12R2/fwcfg.inf\ndrivers/by-os/amd64/2k12R2/fwcfg.sys\ndrivers/by-os/amd64/2k12R2/netkvm.cat\ndrivers/by-os/amd64/2k12R2/netkvmco.dll\ndrivers/by-os/amd64/2k12R2/netkvm.inf\ndrivers/by-os/amd64/2k12R2/netkvmno.dll\ndrivers/by-os/amd64/2k12R2/netkvmp.exe\ndrivers/by-os/amd64/2k12R2/netkvm.sys\ndrivers/by-os/amd64/2k12R2/pvpanic.cat\ndrivers/by-os/amd64/2k12R2/pvpanic.inf\ndrivers/by-os/amd64/2k12R2/pvpanic.sys\ndrivers/by-os/amd64/2k12R2/qemupciserial.cat\ndrivers/by-os/amd64/2k12R2/qemupciserial.inf\ndrivers/by-os/amd64/2k12R2/Readme.md\ndrivers/by-os/amd64/2k12R2/vgpusrv.exe\ndrivers/by-os/amd64/2k12R2/viofs.cat\ndrivers/by-os/amd64/2k12R2/viofs.inf\ndrivers/by-os/amd64/2k12R2/viofs.sys\ndrivers/by-os/amd64/2k12R2/viogpuap.exe\ndrivers/by-os/amd64/2k12R2/viogpudo.cat\ndrivers/by-os/amd64/2k12R2/viogpudo.inf\ndrivers/by-os/amd64/2k12R2/viogpudo.sys\ndrivers/by-os/amd64/2k12R2/viohidkmdf.sys\ndrivers/by-os/amd64/2k12R2/vioinput.cat\ndrivers/by-os/amd64/2k12R2/vioinput.inf\ndrivers/by-os/amd64/2k12R2/vioinput.sys\ndrivers/by-os/amd64/2k12R2/vioprot.cat\ndrivers/by-os/amd64/2k12R2/vioprot.inf\ndrivers/by-os/amd64/2k12R2/viorng.cat\ndrivers/by-os/amd64/2k12R2/viorngci.dll\ndrivers/by-os/amd64/2k12R2/viorng.inf\ndrivers/by-os/amd64/2k12R2/viorng.sys\ndrivers/by-os/amd64/2k12R2/viorngum.dll\ndrivers/by-os/amd64/2k12R2/vioscsi.cat\ndrivers/by-os/amd64/2k12R2/vioscsi.inf\ndrivers/by-os/amd64/2k12R2/vioscsi.sys\ndrivers/by-os/amd64/2k12R2/vioser.cat\ndrivers/by-os/amd64/2k12R2/vioser.inf\ndrivers/by-os/amd64/2k12R2/vioser.sys\ndrivers/by-os/amd64/2k12R2/viostor.cat\ndrivers/by-os/amd64/2k12R2/viostor.inf\ndrivers/by-os/amd64/2k12R2/viostor.sys\ndrivers/by-os/amd64/2k12R2/virtiofs.exe\ndrivers/by-os/amd64/2k12R2/WdfCoInstaller01011.dll\ndrivers/by-os/amd64/2k12/Readme.md\ndrivers/by-os/amd64/2k12/vgpusrv.exe\ndrivers/by-os/amd64/2k12/viofs.cat\ndrivers/by-os/amd64/2k12/viofs.inf\ndrivers/by-os/amd64/2k12/viofs.sys\ndrivers/by-os/amd64/2k12/viogpuap.exe\ndrivers/by-os/amd64/2k12/viogpudo.cat\ndrivers/by-os/amd64/2k12/viogpudo.inf\ndrivers/by-os/amd64/2k12/viogpudo.sys\ndrivers/by-os/amd64/2k12/viohidkmdf.sys\ndrivers/by-os/amd64/2k12/vioinput.cat\ndrivers/by-os/amd64/2k12/vioinput.inf\ndrivers/by-os/amd64/2k12/vioinput.sys\ndrivers/by-os/amd64/2k12/viorng.cat\ndrivers/by-os/amd64/2k12/viorngci.dll\ndrivers/by-os/amd64/2k12/viorng.inf\ndrivers/by-os/amd64/2k12/viorng.sys\ndrivers/by-os/amd64/2k12/viorngum.dll\ndrivers/by-os/amd64/2k12/vioscsi.cat\ndrivers/by-os/amd64/2k12/vioscsi.inf\ndrivers/by-os/amd64/2k12/vioscsi.sys\ndrivers/by-os/amd64/2k12/vioser.cat\ndrivers/by-os/amd64/2k12/vioser.inf\ndrivers/by-os/amd64/2k12/vioser.sys\ndrivers/by-os/amd64/2k12/viostor.cat\ndrivers/by-os/amd64/2k12/viostor.inf\ndrivers/by-os/amd64/2k12/viostor.sys\ndrivers/by-os/amd64/2k12/virtiofs.exe\ndrivers/by-os/amd64/2k12/WdfCoInstaller01011.dll\ndrivers/by-os/amd64/2k16/balloon.cat\ndrivers/by-os/amd64/2k16/balloon.inf\ndrivers/by-os/amd64/2k16/balloon.sys\ndrivers/by-os/amd64/2k16/blnsvr.exe\ndrivers/by-os/amd64/2k16/fwcfg.cat\ndrivers/by-os/amd64/2k16/fwcfg.inf\ndrivers/by-os/amd64/2k16/fwcfg.sys\ndrivers/by-os/amd64/2k16/netkvm.cat\ndrivers/by-os/amd64/2k16/netkvmco.exe\ndrivers/by-os/amd64/2k16/netkvm.inf\ndrivers/by-os/amd64/2k16/netkvmp.exe\ndrivers/by-os/amd64/2k16/netkvm.sys\ndrivers/by-os/amd64/2k16/pvpanic.cat\ndrivers/by-os/amd64/2k16/pvpanic.inf\ndrivers/by-os/amd64/2k16/pvpanic.sys\ndrivers/by-os/amd64/2k16/qemufwcfg.cat\ndrivers/by-os/amd64/2k16/qemufwcfg.inf\ndrivers/by-os/amd64/2k16/qemupciserial.cat\ndrivers/by-os/amd64/2k16/qemupciserial.inf\ndrivers/by-os/amd64/2k16/qxldod.cat\ndrivers/by-os/amd64/2k16/qxldod.inf\ndrivers/by-os/amd64/2k16/qxldod.sys\ndrivers/by-os/amd64/2k16/Readme.md\ndrivers/by-os/amd64/2k16/vgpusrv.exe\ndrivers/by-os/amd64/2k16/viofs.cat\ndrivers/by-os/amd64/2k16/viofs.inf\ndrivers/by-os/amd64/2k16/viofs.sys\ndrivers/by-os/amd64/2k16/viogpuap.exe\ndrivers/by-os/amd64/2k16/viogpudo.cat\ndrivers/by-os/amd64/2k16/viogpudo.inf\ndrivers/by-os/amd64/2k16/viogpudo.sys\ndrivers/by-os/amd64/2k16/viohidkmdf.sys\ndrivers/by-os/amd64/2k16/vioinput.cat\ndrivers/by-os/amd64/2k16/vioinput.inf\ndrivers/by-os/amd64/2k16/vioinput.sys\ndrivers/by-os/amd64/2k16/viomem.cat\ndrivers/by-os/amd64/2k16/viomem.inf\ndrivers/by-os/amd64/2k16/viomem.sys\ndrivers/by-os/amd64/2k16/vioprot.cat\ndrivers/by-os/amd64/2k16/vioprot.inf\ndrivers/by-os/amd64/2k16/viorng.cat\ndrivers/by-os/amd64/2k16/viorng.inf\ndrivers/by-os/amd64/2k16/viorng.sys\ndrivers/by-os/amd64/2k16/viorngum.dll\ndrivers/by-os/amd64/2k16/vioscsi.cat\ndrivers/by-os/amd64/2k16/vioscsi.inf\ndrivers/by-os/amd64/2k16/vioscsi.sys\ndrivers/by-os/amd64/2k16/vioser.cat\ndrivers/by-os/amd64/2k16/vioser.inf\ndrivers/by-os/amd64/2k16/vioser.sys\ndrivers/by-os/amd64/2k16/viostor.cat\ndrivers/by-os/amd64/2k16/viostor.inf\ndrivers/by-os/amd64/2k16/viostor.sys\ndrivers/by-os/amd64/2k16/virtiofs.exe\ndrivers/by-os/amd64/2k19/balloon.cat\ndrivers/by-os/amd64/2k19/balloon.inf\ndrivers/by-os/amd64/2k19/balloon.sys\ndrivers/by-os/amd64/2k19/blnsvr.exe\ndrivers/by-os/amd64/2k19/fwcfg.cat\ndrivers/by-os/amd64/2k19/fwcfg.inf\ndrivers/by-os/amd64/2k19/fwcfg.sys\ndrivers/by-os/amd64/2k19/netkvm.cat\ndrivers/by-os/amd64/2k19/netkvmco.exe\ndrivers/by-os/amd64/2k19/netkvm.inf\ndrivers/by-os/amd64/2k19/netkvmp.exe\ndrivers/by-os/amd64/2k19/netkvm.sys\ndrivers/by-os/amd64/2k19/pvpanic.cat\ndrivers/by-os/amd64/2k19/pvpanic.inf\ndrivers/by-os/amd64/2k19/pvpanic.sys\ndrivers/by-os/amd64/2k19/qemufwcfg.cat\ndrivers/by-os/amd64/2k19/qemufwcfg.inf\ndrivers/by-os/amd64/2k19/qemupciserial.cat\ndrivers/by-os/amd64/2k19/qemupciserial.inf\ndrivers/by-os/amd64/2k19/qxldod.cat\ndrivers/by-os/amd64/2k19/qxldod.inf\ndrivers/by-os/amd64/2k19/qxldod.sys\ndrivers/by-os/amd64/2k19/Readme.md\ndrivers/by-os/amd64/2k19/vgpusrv.exe\ndrivers/by-os/amd64/2k19/viofs.cat\ndrivers/by-os/amd64/2k19/viofs.inf\ndrivers/by-os/amd64/2k19/viofs.sys\ndrivers/by-os/amd64/2k19/viogpuap.exe\ndrivers/by-os/amd64/2k19/viogpudo.cat\ndrivers/by-os/amd64/2k19/viogpudo.inf\ndrivers/by-os/amd64/2k19/viogpudo.sys\ndrivers/by-os/amd64/2k19/viohidkmdf.sys\ndrivers/by-os/amd64/2k19/vioinput.cat\ndrivers/by-os/amd64/2k19/vioinput.inf\ndrivers/by-os/amd64/2k19/vioinput.sys\ndrivers/by-os/amd64/2k19/viomem.cat\ndrivers/by-os/amd64/2k19/viomem.inf\ndrivers/by-os/amd64/2k19/viomem.sys\ndrivers/by-os/amd64/2k19/vioprot.cat\ndrivers/by-os/amd64/2k19/vioprot.inf\ndrivers/by-os/amd64/2k19/viorng.cat\ndrivers/by-os/amd64/2k19/viorng.inf\ndrivers/by-os/amd64/2k19/viorng.sys\ndrivers/by-os/amd64/2k19/viorngum.dll\ndrivers/by-os/amd64/2k19/vioscsi.cat\ndrivers/by-os/amd64/2k19/vioscsi.inf\ndrivers/by-os/amd64/2k19/vioscsi.sys\ndrivers/by-os/amd64/2k19/vioser.cat\ndrivers/by-os/amd64/2k19/vioser.inf\ndrivers/by-os/amd64/2k19/vioser.sys\ndrivers/by-os/amd64/2k19/viostor.cat\ndrivers/by-os/amd64/2k19/viostor.inf\ndrivers/by-os/amd64/2k19/viostor.sys\ndrivers/by-os/amd64/2k19/virtiofs.exe\ndrivers/by-os/amd64/2k22/balloon.cat\ndrivers/by-os/amd64/2k22/balloon.inf\ndrivers/by-os/amd64/2k22/balloon.sys\ndrivers/by-os/amd64/2k22/blnsvr.exe\ndrivers/by-os/amd64/2k22/fwcfg.cat\ndrivers/by-os/amd64/2k22/fwcfg.inf\ndrivers/by-os/amd64/2k22/fwcfg.sys\ndrivers/by-os/amd64/2k22/netkvm.cat\ndrivers/by-os/amd64/2k22/netkvmco.exe\ndrivers/by-os/amd64/2k22/netkvm.inf\ndrivers/by-os/amd64/2k22/netkvmp.exe\ndrivers/by-os/amd64/2k22/netkvm.sys\ndrivers/by-os/amd64/2k22/pvpanic.cat\ndrivers/by-os/amd64/2k22/pvpanic.inf\ndrivers/by-os/amd64/2k22/pvpanic.sys\ndrivers/by-os/amd64/2k22/qemufwcfg.cat\ndrivers/by-os/amd64/2k22/qemufwcfg.inf\ndrivers/by-os/amd64/2k22/qemupciserial.cat\ndrivers/by-os/amd64/2k22/qemupciserial.inf\ndrivers/by-os/amd64/2k22/Readme.md\ndrivers/by-os/amd64/2k22/vgpusrv.exe\ndrivers/by-os/amd64/2k22/viofs.cat\ndrivers/by-os/amd64/2k22/viofs.inf\ndrivers/by-os/amd64/2k22/viofs.sys\ndrivers/by-os/amd64/2k22/viogpuap.exe\ndrivers/by-os/amd64/2k22/viogpudo.cat\ndrivers/by-os/amd64/2k22/viogpudo.inf\ndrivers/by-os/amd64/2k22/viogpudo.sys\ndrivers/by-os/amd64/2k22/viohidkmdf.sys\ndrivers/by-os/amd64/2k22/vioinput.cat\ndrivers/by-os/amd64/2k22/vioinput.inf\ndrivers/by-os/amd64/2k22/vioinput.sys\ndrivers/by-os/amd64/2k22/viomem.cat\ndrivers/by-os/amd64/2k22/viomem.inf\ndrivers/by-os/amd64/2k22/viomem.sys\ndrivers/by-os/amd64/2k22/vioprot.cat\ndrivers/by-os/amd64/2k22/vioprot.inf\ndrivers/by-os/amd64/2k22/viorng.cat\ndrivers/by-os/amd64/2k22/viorng.inf\ndrivers/by-os/amd64/2k22/viorng.sys\ndrivers/by-os/amd64/2k22/viorngum.dll\ndrivers/by-os/amd64/2k22/vioscsi.cat\ndrivers/by-os/amd64/2k22/vioscsi.inf\ndrivers/by-os/amd64/2k22/vioscsi.sys\ndrivers/by-os/amd64/2k22/vioser.cat\ndrivers/by-os/amd64/2k22/vioser.inf\ndrivers/by-os/amd64/2k22/vioser.sys\ndrivers/by-os/amd64/2k22/viostor.cat\ndrivers/by-os/amd64/2k22/viostor.inf\ndrivers/by-os/amd64/2k22/viostor.sys\ndrivers/by-os/amd64/2k22/virtiofs.exe\ndrivers/by-os/amd64/2k25/balloon.cat\ndrivers/by-os/amd64/2k25/balloon.inf\ndrivers/by-os/amd64/2k25/balloon.sys\ndrivers/by-os/amd64/2k25/blnsvr.exe\ndrivers/by-os/amd64/2k25/fwcfg.cat\ndrivers/by-os/amd64/2k25/fwcfg.inf\ndrivers/by-os/amd64/2k25/fwcfg.sys\ndrivers/by-os/amd64/2k25/netkvm.cat\ndrivers/by-os/amd64/2k25/netkvmco.exe\ndrivers/by-os/amd64/2k25/netkvm.inf\ndrivers/by-os/amd64/2k25/netkvmp.exe\ndrivers/by-os/amd64/2k25/netkvm.sys\ndrivers/by-os/amd64/2k25/pvpanic.cat\ndrivers/by-os/amd64/2k25/pvpanic.inf\ndrivers/by-os/amd64/2k25/pvpanic.sys\ndrivers/by-os/amd64/2k25/qemufwcfg.cat\ndrivers/by-os/amd64/2k25/qemufwcfg.inf\ndrivers/by-os/amd64/2k25/qemupciserial.cat\ndrivers/by-os/amd64/2k25/qemupciserial.inf\ndrivers/by-os/amd64/2k25/Readme.md\ndrivers/by-os/amd64/2k25/smbus.cat\ndrivers/by-os/amd64/2k25/smbus.inf\ndrivers/by-os/amd64/2k25/vgpusrv.exe\ndrivers/by-os/amd64/2k25/viofs.cat\ndrivers/by-os/amd64/2k25/viofs.inf\ndrivers/by-os/amd64/2k25/viofs.sys\ndrivers/by-os/amd64/2k25/viogpuap.exe\ndrivers/by-os/amd64/2k25/viogpudo.cat\ndrivers/by-os/amd64/2k25/viogpudo.inf\ndrivers/by-os/amd64/2k25/viogpudo.sys\ndrivers/by-os/amd64/2k25/viohidkmdf.sys\ndrivers/by-os/amd64/2k25/vioinput.cat\ndrivers/by-os/amd64/2k25/vioinput.inf\ndrivers/by-os/amd64/2k25/vioinput.sys\ndrivers/by-os/amd64/2k25/viomem.cat\ndrivers/by-os/amd64/2k25/viomem.inf\ndrivers/by-os/amd64/2k25/viomem.sys\ndrivers/by-os/amd64/2k25/vioprot.cat\ndrivers/by-os/amd64/2k25/vioprot.inf\ndrivers/by-os/amd64/2k25/viorng.cat\ndrivers/by-os/amd64/2k25/viorng.inf\ndrivers/by-os/amd64/2k25/viorng.sys\ndrivers/by-os/amd64/2k25/viorngum.dll\ndrivers/by-os/amd64/2k25/vioscsi.cat\ndrivers/by-os/amd64/2k25/vioscsi.inf\ndrivers/by-os/amd64/2k25/vioscsi.sys\ndrivers/by-os/amd64/2k25/vioser.cat\ndrivers/by-os/amd64/2k25/vioser.inf\ndrivers/by-os/amd64/2k25/vioser.sys\ndrivers/by-os/amd64/2k25/viostor.cat\ndrivers/by-os/amd64/2k25/viostor.inf\ndrivers/by-os/amd64/2k25/viostor.sys\ndrivers/by-os/amd64/2k25/virtiofs.exe\ndrivers/by-os/amd64/2k8R2/balloon.cat\ndrivers/by-os/amd64/2k8R2/balloon.inf\ndrivers/by-os/amd64/2k8R2/balloon.sys\ndrivers/by-os/amd64/2k8R2/blnsvr.exe\ndrivers/by-os/amd64/2k8R2/netkvm.cat\ndrivers/by-os/amd64/2k8R2/netkvmco.dll\ndrivers/by-os/amd64/2k8R2/netkvm.inf\ndrivers/by-os/amd64/2k8R2/netkvm.sys\ndrivers/by-os/amd64/2k8R2/pvpanic.cat\ndrivers/by-os/amd64/2k8R2/pvpanic.inf\ndrivers/by-os/amd64/2k8R2/pvpanic.sys\ndrivers/by-os/amd64/2k8R2/qemupciserial.cat\ndrivers/by-os/amd64/2k8R2/qemupciserial.inf\ndrivers/by-os/amd64/2k8R2/qxl.cat\ndrivers/by-os/amd64/2k8R2/qxldd.dll\ndrivers/by-os/amd64/2k8R2/qxl.inf\ndrivers/by-os/amd64/2k8R2/qxl.sys\ndrivers/by-os/amd64/2k8R2/readme.doc\ndrivers/by-os/amd64/2k8R2/viohidkmdf.sys\ndrivers/by-os/amd64/2k8R2/vioinput.cat\ndrivers/by-os/amd64/2k8R2/vioinput.inf\ndrivers/by-os/amd64/2k8R2/vioinput.sys\ndrivers/by-os/amd64/2k8R2/viorng.cat\ndrivers/by-os/amd64/2k8R2/viorngci.dll\ndrivers/by-os/amd64/2k8R2/viorng.inf\ndrivers/by-os/amd64/2k8R2/viorng.sys\ndrivers/by-os/amd64/2k8R2/viorngum.dll\ndrivers/by-os/amd64/2k8R2/vioscsi.cat\ndrivers/by-os/amd64/2k8R2/vioscsi.inf\ndrivers/by-os/amd64/2k8R2/vioscsi.sys\ndrivers/by-os/amd64/2k8R2/vioser.cat\ndrivers/by-os/amd64/2k8R2/vioser.inf\ndrivers/by-os/amd64/2k8R2/vioser.sys\ndrivers/by-os/amd64/2k8R2/viostor.cat\ndrivers/by-os/amd64/2k8R2/viostor.inf\ndrivers/by-os/amd64/2k8R2/viostor.sys\ndrivers/by-os/amd64/2k8R2/WdfCoInstaller01009.dll\ndrivers/by-os/amd64/w10/balloon.cat\ndrivers/by-os/amd64/w10/balloon.inf\ndrivers/by-os/amd64/w10/balloon.sys\ndrivers/by-os/amd64/w10/blnsvr.exe\ndrivers/by-os/amd64/w10/fwcfg.cat\ndrivers/by-os/amd64/w10/fwcfg.inf\ndrivers/by-os/amd64/w10/fwcfg.sys\ndrivers/by-os/amd64/w10/netkvm.cat\ndrivers/by-os/amd64/w10/netkvmco.exe\ndrivers/by-os/amd64/w10/netkvm.inf\ndrivers/by-os/amd64/w10/netkvmp.exe\ndrivers/by-os/amd64/w10/netkvm.sys\ndrivers/by-os/amd64/w10/pvpanic.cat\ndrivers/by-os/amd64/w10/pvpanic.inf\ndrivers/by-os/amd64/w10/pvpanic.sys\ndrivers/by-os/amd64/w10/qemufwcfg.cat\ndrivers/by-os/amd64/w10/qemufwcfg.inf\ndrivers/by-os/amd64/w10/qemupciserial.cat\ndrivers/by-os/amd64/w10/qemupciserial.inf\ndrivers/by-os/amd64/w10/qxldod.cat\ndrivers/by-os/amd64/w10/qxldod.inf\ndrivers/by-os/amd64/w10/qxldod.sys\ndrivers/by-os/amd64/w10/Readme.md\ndrivers/by-os/amd64/w10/vgpusrv.exe\ndrivers/by-os/amd64/w10/viofs.cat\ndrivers/by-os/amd64/w10/viofs.inf\ndrivers/by-os/amd64/w10/viofs.sys\ndrivers/by-os/amd64/w10/viogpuap.exe\ndrivers/by-os/amd64/w10/viogpudo.cat\ndrivers/by-os/amd64/w10/viogpudo.inf\ndrivers/by-os/amd64/w10/viogpudo.sys\ndrivers/by-os/amd64/w10/viohidkmdf.sys\ndrivers/by-os/amd64/w10/vioinput.cat\ndrivers/by-os/amd64/w10/vioinput.inf\ndrivers/by-os/amd64/w10/vioinput.sys\ndrivers/by-os/amd64/w10/viomem.cat\ndrivers/by-os/amd64/w10/viomem.inf\ndrivers/by-os/amd64/w10/viomem.sys\ndrivers/by-os/amd64/w10/vioprot.cat\ndrivers/by-os/amd64/w10/vioprot.inf\ndrivers/by-os/amd64/w10/viorng.cat\ndrivers/by-os/amd64/w10/viorng.inf\ndrivers/by-os/amd64/w10/viorng.sys\ndrivers/by-os/amd64/w10/viorngum.dll\ndrivers/by-os/amd64/w10/vioscsi.cat\ndrivers/by-os/amd64/w10/vioscsi.inf\ndrivers/by-os/amd64/w10/vioscsi.sys\ndrivers/by-os/amd64/w10/vioser.cat\ndrivers/by-os/amd64/w10/vioser.inf\ndrivers/by-os/amd64/w10/vioser.sys\ndrivers/by-os/amd64/w10/viostor.cat\ndrivers/by-os/amd64/w10/viostor.inf\ndrivers/by-os/amd64/w10/viostor.sys\ndrivers/by-os/amd64/w10/virtiofs.exe\ndrivers/by-os/amd64/w11/balloon.cat\ndrivers/by-os/amd64/w11/balloon.inf\ndrivers/by-os/amd64/w11/balloon.sys\ndrivers/by-os/amd64/w11/blnsvr.exe\ndrivers/by-os/amd64/w11/fwcfg.cat\ndrivers/by-os/amd64/w11/fwcfg.inf\ndrivers/by-os/amd64/w11/fwcfg.sys\ndrivers/by-os/amd64/w11/netkvm.cat\ndrivers/by-os/amd64/w11/netkvmco.exe\ndrivers/by-os/amd64/w11/netkvm.inf\ndrivers/by-os/amd64/w11/netkvmp.exe\ndrivers/by-os/amd64/w11/netkvm.sys\ndrivers/by-os/amd64/w11/pvpanic.cat\ndrivers/by-os/amd64/w11/pvpanic.inf\ndrivers/by-os/amd64/w11/pvpanic.sys\ndrivers/by-os/amd64/w11/qemufwcfg.cat\ndrivers/by-os/amd64/w11/qemufwcfg.inf\ndrivers/by-os/amd64/w11/qemupciserial.cat\ndrivers/by-os/amd64/w11/qemupciserial.inf\ndrivers/by-os/amd64/w11/Readme.md\ndrivers/by-os/amd64/w11/smbus.cat\ndrivers/by-os/amd64/w11/smbus.inf\ndrivers/by-os/amd64/w11/vgpusrv.exe\ndrivers/by-os/amd64/w11/viofs.cat\ndrivers/by-os/amd64/w11/viofs.inf\ndrivers/by-os/amd64/w11/viofs.sys\ndrivers/by-os/amd64/w11/viogpuap.exe\ndrivers/by-os/amd64/w11/viogpudo.cat\ndrivers/by-os/amd64/w11/viogpudo.inf\ndrivers/by-os/amd64/w11/viogpudo.sys\ndrivers/by-os/amd64/w11/viohidkmdf.sys\ndrivers/by-os/amd64/w11/vioinput.cat\ndrivers/by-os/amd64/w11/vioinput.inf\ndrivers/by-os/amd64/w11/vioinput.sys\ndrivers/by-os/amd64/w11/viomem.cat\ndrivers/by-os/amd64/w11/viomem.inf\ndrivers/by-os/amd64/w11/viomem.sys\ndrivers/by-os/amd64/w11/vioprot.cat\ndrivers/by-os/amd64/w11/vioprot.inf\ndrivers/by-os/amd64/w11/viorng.cat\ndrivers/by-os/amd64/w11/viorng.inf\ndrivers/by-os/amd64/w11/viorng.sys\ndrivers/by-os/amd64/w11/viorngum.dll\ndrivers/by-os/amd64/w11/vioscsi.cat\ndrivers/by-os/amd64/w11/vioscsi.inf\ndrivers/by-os/amd64/w11/vioscsi.sys\ndrivers/by-os/amd64/w11/vioser.cat\ndrivers/by-os/amd64/w11/vioser.inf\ndrivers/by-os/amd64/w11/vioser.sys\ndrivers/by-os/amd64/w11/viostor.cat\ndrivers/by-os/amd64/w11/viostor.inf\ndrivers/by-os/amd64/w11/viostor.sys\ndrivers/by-os/amd64/w11/virtiofs.exe\ndrivers/by-os/amd64/w7/balloon.cat\ndrivers/by-os/amd64/w7/balloon.inf\ndrivers/by-os/amd64/w7/balloon.sys\ndrivers/by-os/amd64/w7/blnsvr.exe\ndrivers/by-os/amd64/w7/netkvm.cat\ndrivers/by-os/amd64/w7/netkvmco.dll\ndrivers/by-os/amd64/w7/netkvm.inf\ndrivers/by-os/amd64/w7/netkvm.sys\ndrivers/by-os/amd64/w7/pvpanic.cat\ndrivers/by-os/amd64/w7/pvpanic.inf\ndrivers/by-os/amd64/w7/pvpanic.sys\ndrivers/by-os/amd64/w7/qemupciserial.cat\ndrivers/by-os/amd64/w7/qemupciserial.inf\ndrivers/by-os/amd64/w7/qxl.cat\ndrivers/by-os/amd64/w7/qxldd.dll\ndrivers/by-os/amd64/w7/qxl.inf\ndrivers/by-os/amd64/w7/qxl.sys\ndrivers/by-os/amd64/w7/readme.doc\ndrivers/by-os/amd64/w7/viohidkmdf.sys\ndrivers/by-os/amd64/w7/vioinput.cat\ndrivers/by-os/amd64/w7/vioinput.inf\ndrivers/by-os/amd64/w7/vioinput.sys\ndrivers/by-os/amd64/w7/viorng.cat\ndrivers/by-os/amd64/w7/viorngci.dll\ndrivers/by-os/amd64/w7/viorng.inf\ndrivers/by-os/amd64/w7/viorng.sys\ndrivers/by-os/amd64/w7/viorngum.dll\ndrivers/by-os/amd64/w7/vioscsi.cat\ndrivers/by-os/amd64/w7/vioscsi.inf\ndrivers/by-os/amd64/w7/vioscsi.sys\ndrivers/by-os/amd64/w7/vioser.cat\ndrivers/by-os/amd64/w7/vioser.inf\ndrivers/by-os/amd64/w7/vioser.sys\ndrivers/by-os/amd64/w7/viostor.cat\ndrivers/by-os/amd64/w7/viostor.inf\ndrivers/by-os/amd64/w7/viostor.sys\ndrivers/by-os/amd64/w7/WdfCoInstaller01009.dll\ndrivers/by-os/amd64/w8.1/balloon.cat\ndrivers/by-os/amd64/w8.1/balloon.inf\ndrivers/by-os/amd64/w8.1/balloon.sys\ndrivers/by-os/amd64/w8.1/blnsvr.exe\ndrivers/by-os/amd64/w8.1/netkvm.cat\ndrivers/by-os/amd64/w8.1/netkvmco.dll\ndrivers/by-os/amd64/w8.1/netkvm.inf\ndrivers/by-os/amd64/w8.1/netkvmno.dll\ndrivers/by-os/amd64/w8.1/netkvmp.exe\ndrivers/by-os/amd64/w8.1/netkvm.sys\ndrivers/by-os/amd64/w8.1/pvpanic.cat\ndrivers/by-os/amd64/w8.1/pvpanic.inf\ndrivers/by-os/amd64/w8.1/pvpanic.sys\ndrivers/by-os/amd64/w8.1/qemupciserial.cat\ndrivers/by-os/amd64/w8.1/qemupciserial.inf\ndrivers/by-os/amd64/w8.1/Readme.md\ndrivers/by-os/amd64/w8.1/viofs.cat\ndrivers/by-os/amd64/w8.1/viofs.inf\ndrivers/by-os/amd64/w8.1/viofs.sys\ndrivers/by-os/amd64/w8.1/viohidkmdf.sys\ndrivers/by-os/amd64/w8.1/vioinput.cat\ndrivers/by-os/amd64/w8.1/vioinput.inf\ndrivers/by-os/amd64/w8.1/vioinput.sys\ndrivers/by-os/amd64/w8.1/vioprot.cat\ndrivers/by-os/amd64/w8.1/vioprot.inf\ndrivers/by-os/amd64/w8.1/viorng.cat\ndrivers/by-os/amd64/w8.1/viorngci.dll\ndrivers/by-os/amd64/w8.1/viorng.inf\ndrivers/by-os/amd64/w8.1/viorng.sys\ndrivers/by-os/amd64/w8.1/viorngum.dll\ndrivers/by-os/amd64/w8.1/vioscsi.cat\ndrivers/by-os/amd64/w8.1/vioscsi.inf\ndrivers/by-os/amd64/w8.1/vioscsi.sys\ndrivers/by-os/amd64/w8.1/vioser.cat\ndrivers/by-os/amd64/w8.1/vioser.inf\ndrivers/by-os/amd64/w8.1/vioser.sys\ndrivers/by-os/amd64/w8.1/viostor.cat\ndrivers/by-os/amd64/w8.1/viostor.inf\ndrivers/by-os/amd64/w8.1/viostor.sys\ndrivers/by-os/amd64/w8.1/virtiofs.exe\ndrivers/by-os/amd64/w8.1/WdfCoInstaller01011.dll\ndrivers/by-os/amd64/w8/balloon.cat\ndrivers/by-os/amd64/w8/balloon.inf\ndrivers/by-os/amd64/w8/balloon.sys\ndrivers/by-os/amd64/w8/blnsvr.exe\ndrivers/by-os/amd64/w8/netkvm.cat\ndrivers/by-os/amd64/w8/netkvmco.dll\ndrivers/by-os/amd64/w8/netkvm.inf\ndrivers/by-os/amd64/w8/netkvm.sys\ndrivers/by-os/amd64/w8/pvpanic.cat\ndrivers/by-os/amd64/w8/pvpanic.inf\ndrivers/by-os/amd64/w8/pvpanic.sys\ndrivers/by-os/amd64/w8/qemupciserial.cat\ndrivers/by-os/amd64/w8/qemupciserial.inf\ndrivers/by-os/amd64/w8/Readme.md\ndrivers/by-os/amd64/w8/viofs.cat\ndrivers/by-os/amd64/w8/viofs.inf\ndrivers/by-os/amd64/w8/viofs.sys\ndrivers/by-os/amd64/w8/viohidkmdf.sys\ndrivers/by-os/amd64/w8/vioinput.cat\ndrivers/by-os/amd64/w8/vioinput.inf\ndrivers/by-os/amd64/w8/vioinput.sys\ndrivers/by-os/amd64/w8/viorng.cat\ndrivers/by-os/amd64/w8/viorngci.dll\ndrivers/by-os/amd64/w8/viorng.inf\ndrivers/by-os/amd64/w8/viorng.sys\ndrivers/by-os/amd64/w8/viorngum.dll\ndrivers/by-os/amd64/w8/vioscsi.cat\ndrivers/by-os/amd64/w8/vioscsi.inf\ndrivers/by-os/amd64/w8/vioscsi.sys\ndrivers/by-os/amd64/w8/vioser.cat\ndrivers/by-os/amd64/w8/vioser.inf\ndrivers/by-os/amd64/w8/vioser.sys\ndrivers/by-os/amd64/w8/viostor.cat\ndrivers/by-os/amd64/w8/viostor.inf\ndrivers/by-os/amd64/w8/viostor.sys\ndrivers/by-os/amd64/w8/virtiofs.exe\ndrivers/by-os/amd64/w8/WdfCoInstaller01011.dll\ndrivers/by-os/i386/w10/balloon.cat\ndrivers/by-os/i386/w10/balloon.inf\ndrivers/by-os/i386/w10/balloon.sys\ndrivers/by-os/i386/w10/blnsvr.exe\ndrivers/by-os/i386/w10/fwcfg.cat\ndrivers/by-os/i386/w10/fwcfg.inf\ndrivers/by-os/i386/w10/fwcfg.sys\ndrivers/by-os/i386/w10/netkvm.cat\ndrivers/by-os/i386/w10/netkvmco.exe\ndrivers/by-os/i386/w10/netkvm.inf\ndrivers/by-os/i386/w10/netkvmp.exe\ndrivers/by-os/i386/w10/netkvm.sys\ndrivers/by-os/i386/w10/pvpanic.cat\ndrivers/by-os/i386/w10/pvpanic.inf\ndrivers/by-os/i386/w10/pvpanic.sys\ndrivers/by-os/i386/w10/qemufwcfg.cat\ndrivers/by-os/i386/w10/qemufwcfg.inf\ndrivers/by-os/i386/w10/qemupciserial.cat\ndrivers/by-os/i386/w10/qemupciserial.inf\ndrivers/by-os/i386/w10/qxldod.cat\ndrivers/by-os/i386/w10/qxldod.inf\ndrivers/by-os/i386/w10/qxldod.sys\ndrivers/by-os/i386/w10/Readme.md\ndrivers/by-os/i386/w10/vgpusrv.exe\ndrivers/by-os/i386/w10/viofs.cat\ndrivers/by-os/i386/w10/viofs.inf\ndrivers/by-os/i386/w10/viofs.sys\ndrivers/by-os/i386/w10/viogpuap.exe\ndrivers/by-os/i386/w10/viogpudo.cat\ndrivers/by-os/i386/w10/viogpudo.inf\ndrivers/by-os/i386/w10/viogpudo.sys\ndrivers/by-os/i386/w10/viohidkmdf.sys\ndrivers/by-os/i386/w10/vioinput.cat\ndrivers/by-os/i386/w10/vioinput.inf\ndrivers/by-os/i386/w10/vioinput.sys\ndrivers/by-os/i386/w10/vioprot.cat\ndrivers/by-os/i386/w10/vioprot.inf\ndrivers/by-os/i386/w10/viorng.cat\ndrivers/by-os/i386/w10/viorng.inf\ndrivers/by-os/i386/w10/viorng.sys\ndrivers/by-os/i386/w10/viorngum.dll\ndrivers/by-os/i386/w10/vioscsi.cat\ndrivers/by-os/i386/w10/vioscsi.inf\ndrivers/by-os/i386/w10/vioscsi.sys\ndrivers/by-os/i386/w10/vioser.cat\ndrivers/by-os/i386/w10/vioser.inf\ndrivers/by-os/i386/w10/vioser.sys\ndrivers/by-os/i386/w10/viostor.cat\ndrivers/by-os/i386/w10/viostor.inf\ndrivers/by-os/i386/w10/viostor.sys\ndrivers/by-os/i386/w10/virtiofs.exe\ndrivers/by-os/i386/w7/balloon.cat\ndrivers/by-os/i386/w7/balloon.inf\ndrivers/by-os/i386/w7/balloon.sys\ndrivers/by-os/i386/w7/blnsvr.exe\ndrivers/by-os/i386/w7/netkvm.cat\ndrivers/by-os/i386/w7/netkvmco.dll\ndrivers/by-os/i386/w7/netkvm.inf\ndrivers/by-os/i386/w7/netkvm.sys\ndrivers/by-os/i386/w7/pvpanic.cat\ndrivers/by-os/i386/w7/pvpanic.inf\ndrivers/by-os/i386/w7/pvpanic.sys\ndrivers/by-os/i386/w7/qemupciserial.cat\ndrivers/by-os/i386/w7/qemupciserial.inf\ndrivers/by-os/i386/w7/qxl.cat\ndrivers/by-os/i386/w7/qxldd.dll\ndrivers/by-os/i386/w7/qxl.inf\ndrivers/by-os/i386/w7/qxl.sys\ndrivers/by-os/i386/w7/readme.doc\ndrivers/by-os/i386/w7/viohidkmdf.sys\ndrivers/by-os/i386/w7/vioinput.cat\ndrivers/by-os/i386/w7/vioinput.inf\ndrivers/by-os/i386/w7/vioinput.sys\ndrivers/by-os/i386/w7/viorng.cat\ndrivers/by-os/i386/w7/viorngci.dll\ndrivers/by-os/i386/w7/viorng.inf\ndrivers/by-os/i386/w7/viorng.sys\ndrivers/by-os/i386/w7/viorngum.dll\ndrivers/by-os/i386/w7/vioscsi.cat\ndrivers/by-os/i386/w7/vioscsi.inf\ndrivers/by-os/i386/w7/vioscsi.sys\ndrivers/by-os/i386/w7/vioser.cat\ndrivers/by-os/i386/w7/vioser.inf\ndrivers/by-os/i386/w7/vioser.sys\ndrivers/by-os/i386/w7/viostor.cat\ndrivers/by-os/i386/w7/viostor.inf\ndrivers/by-os/i386/w7/viostor.sys\ndrivers/by-os/i386/w7/WdfCoInstaller01009.dll\ndrivers/by-os/i386/w8.1/balloon.cat\ndrivers/by-os/i386/w8.1/balloon.inf\ndrivers/by-os/i386/w8.1/balloon.sys\ndrivers/by-os/i386/w8.1/blnsvr.exe\ndrivers/by-os/i386/w8.1/fwcfg.cat\ndrivers/by-os/i386/w8.1/fwcfg.inf\ndrivers/by-os/i386/w8.1/fwcfg.sys\ndrivers/by-os/i386/w8.1/netkvm.cat\ndrivers/by-os/i386/w8.1/netkvmco.dll\ndrivers/by-os/i386/w8.1/netkvm.inf\ndrivers/by-os/i386/w8.1/netkvmno.dll\ndrivers/by-os/i386/w8.1/netkvmp.exe\ndrivers/by-os/i386/w8.1/netkvm.sys\ndrivers/by-os/i386/w8.1/pvpanic.cat\ndrivers/by-os/i386/w8.1/pvpanic.inf\ndrivers/by-os/i386/w8.1/pvpanic.sys\ndrivers/by-os/i386/w8.1/qemupciserial.cat\ndrivers/by-os/i386/w8.1/qemupciserial.inf\ndrivers/by-os/i386/w8.1/Readme.md\ndrivers/by-os/i386/w8.1/viofs.cat\ndrivers/by-os/i386/w8.1/viofs.inf\ndrivers/by-os/i386/w8.1/viofs.sys\ndrivers/by-os/i386/w8.1/viohidkmdf.sys\ndrivers/by-os/i386/w8.1/vioinput.cat\ndrivers/by-os/i386/w8.1/vioinput.inf\ndrivers/by-os/i386/w8.1/vioinput.sys\ndrivers/by-os/i386/w8.1/vioprot.cat\ndrivers/by-os/i386/w8.1/vioprot.inf\ndrivers/by-os/i386/w8.1/viorng.cat\ndrivers/by-os/i386/w8.1/viorngci.dll\ndrivers/by-os/i386/w8.1/viorng.inf\ndrivers/by-os/i386/w8.1/viorng.sys\ndrivers/by-os/i386/w8.1/viorngum.dll\ndrivers/by-os/i386/w8.1/vioscsi.cat\ndrivers/by-os/i386/w8.1/vioscsi.inf\ndrivers/by-os/i386/w8.1/vioscsi.sys\ndrivers/by-os/i386/w8.1/vioser.cat\ndrivers/by-os/i386/w8.1/vioser.inf\ndrivers/by-os/i386/w8.1/vioser.sys\ndrivers/by-os/i386/w8.1/viostor.cat\ndrivers/by-os/i386/w8.1/viostor.inf\ndrivers/by-os/i386/w8.1/viostor.sys\ndrivers/by-os/i386/w8.1/virtiofs.exe\ndrivers/by-os/i386/w8.1/WdfCoInstaller01011.dll\ndrivers/by-os/i386/w8/balloon.cat\ndrivers/by-os/i386/w8/balloon.inf\ndrivers/by-os/i386/w8/balloon.sys\ndrivers/by-os/i386/w8/blnsvr.exe\ndrivers/by-os/i386/w8/netkvm.cat\ndrivers/by-os/i386/w8/netkvmco.dll\ndrivers/by-os/i386/w8/netkvm.inf\ndrivers/by-os/i386/w8/netkvm.sys\ndrivers/by-os/i386/w8/pvpanic.cat\ndrivers/by-os/i386/w8/pvpanic.inf\ndrivers/by-os/i386/w8/pvpanic.sys\ndrivers/by-os/i386/w8/qemupciserial.cat\ndrivers/by-os/i386/w8/qemupciserial.inf\ndrivers/by-os/i386/w8/Readme.md\ndrivers/by-os/i386/w8/viofs.cat\ndrivers/by-os/i386/w8/viofs.inf\ndrivers/by-os/i386/w8/viofs.sys\ndrivers/by-os/i386/w8/viohidkmdf.sys\ndrivers/by-os/i386/w8/vioinput.cat\ndrivers/by-os/i386/w8/vioinput.inf\ndrivers/by-os/i386/w8/vioinput.sys\ndrivers/by-os/i386/w8/viorng.cat\ndrivers/by-os/i386/w8/viorngci.dll\ndrivers/by-os/i386/w8/viorng.inf\ndrivers/by-os/i386/w8/viorng.sys\ndrivers/by-os/i386/w8/viorngum.dll\ndrivers/by-os/i386/w8/vioscsi.cat\ndrivers/by-os/i386/w8/vioscsi.inf\ndrivers/by-os/i386/w8/vioscsi.sys\ndrivers/by-os/i386/w8/vioser.cat\ndrivers/by-os/i386/w8/vioser.inf\ndrivers/by-os/i386/w8/vioser.sys\ndrivers/by-os/i386/w8/viostor.cat\ndrivers/by-os/i386/w8/viostor.inf\ndrivers/by-os/i386/w8/viostor.sys\ndrivers/by-os/i386/w8/virtiofs.exe\ndrivers/by-os/i386/w8/WdfCoInstaller01011.dll\ndrivers/i386/Win10/netkvm.cat\ndrivers/i386/Win10/netkvm.inf\ndrivers/i386/Win10/netkvmp.exe\ndrivers/i386/Win10/netkvm.sys\ndrivers/i386/Win10/Readme.md\ndrivers/i386/Win10/vioscsi.cat\ndrivers/i386/Win10/vioscsi.inf\ndrivers/i386/Win10/vioscsi.sys\ndrivers/i386/Win10/viostor.cat\ndrivers/i386/Win10/viostor.inf\ndrivers/i386/Win10/viostor.sys\ndrivers/i386/Win7/netkvm.cat\ndrivers/i386/Win7/netkvm.inf\ndrivers/i386/Win7/netkvm.sys\ndrivers/i386/Win7/qxl.cat\ndrivers/i386/Win7/qxldd.dll\ndrivers/i386/Win7/qxl.inf\ndrivers/i386/Win7/qxl.sys\ndrivers/i386/Win7/vioscsi.cat\ndrivers/i386/Win7/vioscsi.inf\ndrivers/i386/Win7/vioscsi.sys\ndrivers/i386/Win7/viostor.cat\ndrivers/i386/Win7/viostor.inf\ndrivers/i386/Win7/viostor.sys\ndrivers/i386/Win8.1/netkvm.cat\ndrivers/i386/Win8.1/netkvm.inf\ndrivers/i386/Win8.1/netkvm.sys\ndrivers/i386/Win8.1/Readme.md\ndrivers/i386/Win8.1/vioscsi.cat\ndrivers/i386/Win8.1/vioscsi.inf\ndrivers/i386/Win8.1/vioscsi.sys\ndrivers/i386/Win8.1/viostor.cat\ndrivers/i386/Win8.1/viostor.inf\ndrivers/i386/Win8.1/viostor.sys\ndrivers/i386/Win8/netkvm.cat\ndrivers/i386/Win8/netkvm.inf\ndrivers/i386/Win8/netkvm.sys\ndrivers/i386/Win8/Readme.md\ndrivers/i386/Win8/vioscsi.cat\ndrivers/i386/Win8/vioscsi.inf\ndrivers/i386/Win8/vioscsi.sys\ndrivers/i386/Win8/viostor.cat\ndrivers/i386/Win8/viostor.inf\ndrivers/i386/Win8/viostor.sys\n"
  },
  {
    "path": "test-data/fake-virtio-win/virtio-win-iso-list.txt",
    "content": "cd/amd64/2k16/vioscsi.cat\ncd/amd64/2k16/vioscsi.inf\ncd/amd64/2k16/vioscsi.pdb\ncd/amd64/2k16/vioscsi.sys\ncd/amd64/2k16/viostor.cat\ncd/amd64/2k16/viostor.inf\ncd/amd64/2k16/viostor.pdb\ncd/amd64/2k16/viostor.sys\ncd/amd64/2k19/vioscsi.cat\ncd/amd64/2k19/vioscsi.inf\ncd/amd64/2k19/vioscsi.pdb\ncd/amd64/2k19/vioscsi.sys\ncd/amd64/2k19/viostor.cat\ncd/amd64/2k19/viostor.inf\ncd/amd64/2k19/viostor.pdb\ncd/amd64/2k19/viostor.sys\ncd/amd64/2k22/vioscsi.cat\ncd/amd64/2k22/vioscsi.inf\ncd/amd64/2k22/vioscsi.pdb\ncd/amd64/2k22/vioscsi.sys\ncd/amd64/2k22/viostor.cat\ncd/amd64/2k22/viostor.inf\ncd/amd64/2k22/viostor.pdb\ncd/amd64/2k22/viostor.sys\ncd/amd64/2k25/vioscsi.cat\ncd/amd64/2k25/vioscsi.inf\ncd/amd64/2k25/vioscsi.pdb\ncd/amd64/2k25/vioscsi.sys\ncd/amd64/2k25/viostor.cat\ncd/amd64/2k25/viostor.inf\ncd/amd64/2k25/viostor.pdb\ncd/amd64/2k25/viostor.sys\ncd/amd64/w10/vioscsi.cat\ncd/amd64/w10/vioscsi.inf\ncd/amd64/w10/vioscsi.pdb\ncd/amd64/w10/vioscsi.sys\ncd/amd64/w10/viostor.cat\ncd/amd64/w10/viostor.inf\ncd/amd64/w10/viostor.pdb\ncd/amd64/w10/viostor.sys\ncd/amd64/w11/vioscsi.cat\ncd/amd64/w11/vioscsi.inf\ncd/amd64/w11/vioscsi.pdb\ncd/amd64/w11/vioscsi.sys\ncd/amd64/w11/viostor.cat\ncd/amd64/w11/viostor.inf\ncd/amd64/w11/viostor.pdb\ncd/amd64/w11/viostor.sys\ncd/Balloon/2k12/amd64/balloon.cat\ncd/Balloon/2k12/amd64/balloon.inf\ncd/Balloon/2k12/amd64/balloon.pdb\ncd/Balloon/2k12/amd64/balloon.sys\ncd/Balloon/2k12/amd64/blnsvr.exe\ncd/Balloon/2k12/amd64/blnsvr.pdb\ncd/Balloon/2k12/amd64/WdfCoInstaller01011.dll\ncd/Balloon/2k12R2/amd64/balloon.cat\ncd/Balloon/2k12R2/amd64/balloon.inf\ncd/Balloon/2k12R2/amd64/balloon.pdb\ncd/Balloon/2k12R2/amd64/balloon.sys\ncd/Balloon/2k12R2/amd64/blnsvr.exe\ncd/Balloon/2k12R2/amd64/blnsvr.pdb\ncd/Balloon/2k12R2/amd64/WdfCoInstaller01011.dll\ncd/Balloon/2k16/amd64/balloon.cat\ncd/Balloon/2k16/amd64/balloon.inf\ncd/Balloon/2k16/amd64/balloon.pdb\ncd/Balloon/2k16/amd64/balloon.sys\ncd/Balloon/2k16/amd64/blnsvr.exe\ncd/Balloon/2k16/amd64/blnsvr.pdb\ncd/Balloon/2k19/amd64/balloon.cat\ncd/Balloon/2k19/amd64/balloon.inf\ncd/Balloon/2k19/amd64/balloon.pdb\ncd/Balloon/2k19/amd64/balloon.sys\ncd/Balloon/2k19/amd64/blnsvr.exe\ncd/Balloon/2k19/amd64/blnsvr.pdb\ncd/Balloon/2k22/amd64/balloon.cat\ncd/Balloon/2k22/amd64/balloon.inf\ncd/Balloon/2k22/amd64/balloon.pdb\ncd/Balloon/2k22/amd64/balloon.sys\ncd/Balloon/2k22/amd64/blnsvr.exe\ncd/Balloon/2k22/amd64/blnsvr.pdb\ncd/Balloon/2k25/amd64/balloon.cat\ncd/Balloon/2k25/amd64/balloon.inf\ncd/Balloon/2k25/amd64/balloon.pdb\ncd/Balloon/2k25/amd64/balloon.sys\ncd/Balloon/2k25/amd64/blnsvr.exe\ncd/Balloon/2k25/amd64/blnsvr.pdb\ncd/Balloon/2k8R2/amd64/balloon.cat\ncd/Balloon/2k8R2/amd64/balloon.inf\ncd/Balloon/2k8R2/amd64/balloon.pdb\ncd/Balloon/2k8R2/amd64/balloon.sys\ncd/Balloon/2k8R2/amd64/blnsvr.exe\ncd/Balloon/2k8R2/amd64/blnsvr.pdb\ncd/Balloon/2k8R2/amd64/WdfCoInstaller01009.dll\ncd/Balloon/w10/amd64/balloon.cat\ncd/Balloon/w10/amd64/balloon.inf\ncd/Balloon/w10/amd64/balloon.pdb\ncd/Balloon/w10/amd64/balloon.sys\ncd/Balloon/w10/amd64/blnsvr.exe\ncd/Balloon/w10/amd64/blnsvr.pdb\ncd/Balloon/w10/x86/balloon.cat\ncd/Balloon/w10/x86/balloon.inf\ncd/Balloon/w10/x86/balloon.pdb\ncd/Balloon/w10/x86/balloon.sys\ncd/Balloon/w10/x86/blnsvr.exe\ncd/Balloon/w10/x86/blnsvr.pdb\ncd/Balloon/w11/amd64/balloon.cat\ncd/Balloon/w11/amd64/balloon.inf\ncd/Balloon/w11/amd64/balloon.pdb\ncd/Balloon/w11/amd64/balloon.sys\ncd/Balloon/w11/amd64/blnsvr.exe\ncd/Balloon/w11/amd64/blnsvr.pdb\ncd/Balloon/w7/amd64/balloon.cat\ncd/Balloon/w7/amd64/balloon.inf\ncd/Balloon/w7/amd64/balloon.pdb\ncd/Balloon/w7/amd64/balloon.sys\ncd/Balloon/w7/amd64/blnsvr.exe\ncd/Balloon/w7/amd64/blnsvr.pdb\ncd/Balloon/w7/amd64/WdfCoInstaller01009.dll\ncd/Balloon/w7/x86/balloon.cat\ncd/Balloon/w7/x86/balloon.inf\ncd/Balloon/w7/x86/balloon.pdb\ncd/Balloon/w7/x86/balloon.sys\ncd/Balloon/w7/x86/blnsvr.exe\ncd/Balloon/w7/x86/blnsvr.pdb\ncd/Balloon/w7/x86/WdfCoInstaller01009.dll\ncd/Balloon/w8.1/amd64/balloon.cat\ncd/Balloon/w8.1/amd64/balloon.inf\ncd/Balloon/w8.1/amd64/balloon.pdb\ncd/Balloon/w8.1/amd64/balloon.sys\ncd/Balloon/w8.1/amd64/blnsvr.exe\ncd/Balloon/w8.1/amd64/blnsvr.pdb\ncd/Balloon/w8.1/amd64/WdfCoInstaller01011.dll\ncd/Balloon/w8.1/x86/balloon.cat\ncd/Balloon/w8.1/x86/balloon.inf\ncd/Balloon/w8.1/x86/balloon.pdb\ncd/Balloon/w8.1/x86/balloon.sys\ncd/Balloon/w8.1/x86/blnsvr.exe\ncd/Balloon/w8.1/x86/blnsvr.pdb\ncd/Balloon/w8.1/x86/WdfCoInstaller01011.dll\ncd/Balloon/w8/amd64/balloon.cat\ncd/Balloon/w8/amd64/balloon.inf\ncd/Balloon/w8/amd64/balloon.pdb\ncd/Balloon/w8/amd64/balloon.sys\ncd/Balloon/w8/amd64/blnsvr.exe\ncd/Balloon/w8/amd64/blnsvr.pdb\ncd/Balloon/w8/amd64/WdfCoInstaller01011.dll\ncd/Balloon/w8/x86/balloon.cat\ncd/Balloon/w8/x86/balloon.inf\ncd/Balloon/w8/x86/balloon.pdb\ncd/Balloon/w8/x86/balloon.sys\ncd/Balloon/w8/x86/blnsvr.exe\ncd/Balloon/w8/x86/blnsvr.pdb\ncd/Balloon/w8/x86/WdfCoInstaller01011.dll\ncd/data/info.json\ncd/fwcfg/2k12/amd64/fwcfg.cat\ncd/fwcfg/2k12/amd64/fwcfg.inf\ncd/fwcfg/2k12/amd64/fwcfg.pdb\ncd/fwcfg/2k12/amd64/fwcfg.sys\ncd/fwcfg/2k12/amd64/WdfCoInstaller01011.dll\ncd/fwcfg/2k12R2/amd64/fwcfg.cat\ncd/fwcfg/2k12R2/amd64/fwcfg.inf\ncd/fwcfg/2k12R2/amd64/fwcfg.pdb\ncd/fwcfg/2k12R2/amd64/fwcfg.sys\ncd/fwcfg/2k12R2/amd64/WdfCoInstaller01011.dll\ncd/fwcfg/2k16/amd64/fwcfg.cat\ncd/fwcfg/2k16/amd64/fwcfg.inf\ncd/fwcfg/2k16/amd64/fwcfg.pdb\ncd/fwcfg/2k16/amd64/fwcfg.sys\ncd/fwcfg/2k19/amd64/fwcfg.cat\ncd/fwcfg/2k19/amd64/fwcfg.inf\ncd/fwcfg/2k19/amd64/fwcfg.pdb\ncd/fwcfg/2k19/amd64/fwcfg.sys\ncd/fwcfg/2k22/amd64/fwcfg.cat\ncd/fwcfg/2k22/amd64/fwcfg.inf\ncd/fwcfg/2k22/amd64/fwcfg.pdb\ncd/fwcfg/2k22/amd64/fwcfg.sys\ncd/fwcfg/2k25/amd64/fwcfg.cat\ncd/fwcfg/2k25/amd64/fwcfg.inf\ncd/fwcfg/2k25/amd64/fwcfg.pdb\ncd/fwcfg/2k25/amd64/fwcfg.sys\ncd/fwcfg/w10/amd64/fwcfg.cat\ncd/fwcfg/w10/amd64/fwcfg.inf\ncd/fwcfg/w10/amd64/fwcfg.pdb\ncd/fwcfg/w10/amd64/fwcfg.sys\ncd/fwcfg/w10/x86/fwcfg.cat\ncd/fwcfg/w10/x86/fwcfg.inf\ncd/fwcfg/w10/x86/fwcfg.pdb\ncd/fwcfg/w10/x86/fwcfg.sys\ncd/fwcfg/w11/amd64/fwcfg.cat\ncd/fwcfg/w11/amd64/fwcfg.inf\ncd/fwcfg/w11/amd64/fwcfg.pdb\ncd/fwcfg/w11/amd64/fwcfg.sys\ncd/fwcfg/w8.1/x86/fwcfg.cat\ncd/fwcfg/w8.1/x86/fwcfg.inf\ncd/fwcfg/w8.1/x86/fwcfg.pdb\ncd/fwcfg/w8.1/x86/fwcfg.sys\ncd/guest-agent/qemu-ga-i386.msi\ncd/guest-agent/qemu-ga-x86_64.msi\ncd/i386/w10/vioscsi.cat\ncd/i386/w10/vioscsi.inf\ncd/i386/w10/vioscsi.pdb\ncd/i386/w10/vioscsi.sys\ncd/i386/w10/viostor.cat\ncd/i386/w10/viostor.inf\ncd/i386/w10/viostor.pdb\ncd/i386/w10/viostor.sys\ncd/NetKVM/2k12/amd64/netkvm.cat\ncd/NetKVM/2k12/amd64/netkvmco.dll\ncd/NetKVM/2k12/amd64/netkvmco.pdb\ncd/NetKVM/2k12/amd64/netkvm.inf\ncd/NetKVM/2k12/amd64/netkvm.pdb\ncd/NetKVM/2k12/amd64/netkvm.sys\ncd/NetKVM/2k12/amd64/Readme.md\ncd/NetKVM/2k12R2/amd64/netkvm.cat\ncd/NetKVM/2k12R2/amd64/netkvmco.dll\ncd/NetKVM/2k12R2/amd64/netkvmco.pdb\ncd/NetKVM/2k12R2/amd64/netkvm.inf\ncd/NetKVM/2k12R2/amd64/netkvm.pdb\ncd/NetKVM/2k12R2/amd64/netkvm.sys\ncd/NetKVM/2k12R2/amd64/Readme.md\ncd/NetKVM/2k16/amd64/netkvm.cat\ncd/NetKVM/2k16/amd64/netkvmco.exe\ncd/NetKVM/2k16/amd64/netkvmco.pdb\ncd/NetKVM/2k16/amd64/netkvm.inf\ncd/NetKVM/2k16/amd64/netkvm.pdb\ncd/NetKVM/2k16/amd64/netkvmp.exe\ncd/NetKVM/2k16/amd64/netkvmp.pdb\ncd/NetKVM/2k16/amd64/netkvm.sys\ncd/NetKVM/2k16/amd64/Readme.md\ncd/NetKVM/2k19/amd64/netkvm.cat\ncd/NetKVM/2k19/amd64/netkvmco.exe\ncd/NetKVM/2k19/amd64/netkvmco.pdb\ncd/NetKVM/2k19/amd64/netkvm.inf\ncd/NetKVM/2k19/amd64/netkvm.pdb\ncd/NetKVM/2k19/amd64/netkvmp.exe\ncd/NetKVM/2k19/amd64/netkvmp.pdb\ncd/NetKVM/2k19/amd64/netkvm.sys\ncd/NetKVM/2k19/amd64/Readme.md\ncd/NetKVM/2k22/amd64/netkvm.cat\ncd/NetKVM/2k22/amd64/netkvmco.exe\ncd/NetKVM/2k22/amd64/netkvmco.pdb\ncd/NetKVM/2k22/amd64/netkvm.inf\ncd/NetKVM/2k22/amd64/netkvm.pdb\ncd/NetKVM/2k22/amd64/netkvmp.exe\ncd/NetKVM/2k22/amd64/netkvmp.pdb\ncd/NetKVM/2k22/amd64/netkvm.sys\ncd/NetKVM/2k22/amd64/Readme.md\ncd/NetKVM/2k25/amd64/netkvm.cat\ncd/NetKVM/2k25/amd64/netkvmco.exe\ncd/NetKVM/2k25/amd64/netkvmco.pdb\ncd/NetKVM/2k25/amd64/netkvm.inf\ncd/NetKVM/2k25/amd64/netkvm.pdb\ncd/NetKVM/2k25/amd64/netkvmp.exe\ncd/NetKVM/2k25/amd64/netkvmp.pdb\ncd/NetKVM/2k25/amd64/netkvm.sys\ncd/NetKVM/2k25/amd64/Readme.md\ncd/NetKVM/2k8R2/amd64/netkvm.cat\ncd/NetKVM/2k8R2/amd64/netkvmco.dll\ncd/NetKVM/2k8R2/amd64/netkvmco.pdb\ncd/NetKVM/2k8R2/amd64/netkvm.inf\ncd/NetKVM/2k8R2/amd64/netkvm.pdb\ncd/NetKVM/2k8R2/amd64/netkvm.sys\ncd/NetKVM/2k8R2/amd64/readme.doc\ncd/NetKVM/w10/amd64/netkvm.cat\ncd/NetKVM/w10/amd64/netkvmco.exe\ncd/NetKVM/w10/amd64/netkvmco.pdb\ncd/NetKVM/w10/amd64/netkvm.inf\ncd/NetKVM/w10/amd64/netkvm.pdb\ncd/NetKVM/w10/amd64/netkvmp.exe\ncd/NetKVM/w10/amd64/netkvmp.pdb\ncd/NetKVM/w10/amd64/netkvm.sys\ncd/NetKVM/w10/amd64/Readme.md\ncd/NetKVM/w10/x86/netkvm.cat\ncd/NetKVM/w10/x86/netkvmco.exe\ncd/NetKVM/w10/x86/netkvmco.pdb\ncd/NetKVM/w10/x86/netkvm.inf\ncd/NetKVM/w10/x86/netkvm.pdb\ncd/NetKVM/w10/x86/netkvmp.exe\ncd/NetKVM/w10/x86/netkvmp.pdb\ncd/NetKVM/w10/x86/netkvm.sys\ncd/NetKVM/w10/x86/Readme.md\ncd/NetKVM/w11/amd64/netkvm.cat\ncd/NetKVM/w11/amd64/netkvmco.exe\ncd/NetKVM/w11/amd64/netkvmco.pdb\ncd/NetKVM/w11/amd64/netkvm.inf\ncd/NetKVM/w11/amd64/netkvm.pdb\ncd/NetKVM/w11/amd64/netkvmp.exe\ncd/NetKVM/w11/amd64/netkvmp.pdb\ncd/NetKVM/w11/amd64/netkvm.sys\ncd/NetKVM/w11/amd64/Readme.md\ncd/NetKVM/w7/amd64/netkvm.cat\ncd/NetKVM/w7/amd64/netkvmco.dll\ncd/NetKVM/w7/amd64/netkvmco.pdb\ncd/NetKVM/w7/amd64/netkvm.inf\ncd/NetKVM/w7/amd64/netkvm.pdb\ncd/NetKVM/w7/amd64/netkvm.sys\ncd/NetKVM/w7/amd64/readme.doc\ncd/NetKVM/w7/x86/netkvm.cat\ncd/NetKVM/w7/x86/netkvmco.dll\ncd/NetKVM/w7/x86/netkvmco.pdb\ncd/NetKVM/w7/x86/netkvm.inf\ncd/NetKVM/w7/x86/netkvm.pdb\ncd/NetKVM/w7/x86/netkvm.sys\ncd/NetKVM/w7/x86/readme.doc\ncd/NetKVM/w8.1/amd64/netkvm.cat\ncd/NetKVM/w8.1/amd64/netkvmco.dll\ncd/NetKVM/w8.1/amd64/netkvmco.pdb\ncd/NetKVM/w8.1/amd64/netkvm.inf\ncd/NetKVM/w8.1/amd64/netkvm.pdb\ncd/NetKVM/w8.1/amd64/netkvm.sys\ncd/NetKVM/w8.1/amd64/Readme.md\ncd/NetKVM/w8.1/x86/netkvm.cat\ncd/NetKVM/w8.1/x86/netkvmco.dll\ncd/NetKVM/w8.1/x86/netkvmco.pdb\ncd/NetKVM/w8.1/x86/netkvm.inf\ncd/NetKVM/w8.1/x86/netkvm.pdb\ncd/NetKVM/w8.1/x86/netkvm.sys\ncd/NetKVM/w8.1/x86/Readme.md\ncd/NetKVM/w8/amd64/netkvm.cat\ncd/NetKVM/w8/amd64/netkvmco.dll\ncd/NetKVM/w8/amd64/netkvmco.pdb\ncd/NetKVM/w8/amd64/netkvm.inf\ncd/NetKVM/w8/amd64/netkvm.pdb\ncd/NetKVM/w8/amd64/netkvm.sys\ncd/NetKVM/w8/amd64/Readme.md\ncd/NetKVM/w8/x86/netkvm.cat\ncd/NetKVM/w8/x86/netkvmco.dll\ncd/NetKVM/w8/x86/netkvmco.pdb\ncd/NetKVM/w8/x86/netkvm.inf\ncd/NetKVM/w8/x86/netkvm.pdb\ncd/NetKVM/w8/x86/netkvm.sys\ncd/NetKVM/w8/x86/Readme.md\ncd/pvpanic/2k12/amd64/pvpanic.cat\ncd/pvpanic/2k12/amd64/pvpanic.inf\ncd/pvpanic/2k12/amd64/pvpanic.pdb\ncd/pvpanic/2k12/amd64/pvpanic.sys\ncd/pvpanic/2k12/amd64/WdfCoInstaller01011.dll\ncd/pvpanic/2k12R2/amd64/pvpanic.cat\ncd/pvpanic/2k12R2/amd64/pvpanic.inf\ncd/pvpanic/2k12R2/amd64/pvpanic.pdb\ncd/pvpanic/2k12R2/amd64/pvpanic.sys\ncd/pvpanic/2k12R2/amd64/WdfCoInstaller01011.dll\ncd/pvpanic/2k16/amd64/pvpanic.cat\ncd/pvpanic/2k16/amd64/pvpanic.inf\ncd/pvpanic/2k16/amd64/pvpanic.pdb\ncd/pvpanic/2k16/amd64/pvpanic.sys\ncd/pvpanic/2k19/amd64/pvpanic.cat\ncd/pvpanic/2k19/amd64/pvpanic.inf\ncd/pvpanic/2k19/amd64/pvpanic.pdb\ncd/pvpanic/2k19/amd64/pvpanic.sys\ncd/pvpanic/2k22/amd64/pvpanic.cat\ncd/pvpanic/2k22/amd64/pvpanic.inf\ncd/pvpanic/2k22/amd64/pvpanic.pdb\ncd/pvpanic/2k22/amd64/pvpanic.sys\ncd/pvpanic/2k25/amd64/pvpanic.cat\ncd/pvpanic/2k25/amd64/pvpanic.inf\ncd/pvpanic/2k25/amd64/pvpanic.pdb\ncd/pvpanic/2k25/amd64/pvpanic.sys\ncd/pvpanic/2k8R2/amd64/pvpanic.cat\ncd/pvpanic/2k8R2/amd64/pvpanic.inf\ncd/pvpanic/2k8R2/amd64/pvpanic.pdb\ncd/pvpanic/2k8R2/amd64/pvpanic.sys\ncd/pvpanic/2k8R2/amd64/WdfCoInstaller01009.dll\ncd/pvpanic/w10/amd64/pvpanic.cat\ncd/pvpanic/w10/amd64/pvpanic.inf\ncd/pvpanic/w10/amd64/pvpanic.pdb\ncd/pvpanic/w10/amd64/pvpanic.sys\ncd/pvpanic/w10/x86/pvpanic.cat\ncd/pvpanic/w10/x86/pvpanic.inf\ncd/pvpanic/w10/x86/pvpanic.pdb\ncd/pvpanic/w10/x86/pvpanic.sys\ncd/pvpanic/w11/amd64/pvpanic.cat\ncd/pvpanic/w11/amd64/pvpanic.inf\ncd/pvpanic/w11/amd64/pvpanic.pdb\ncd/pvpanic/w11/amd64/pvpanic.sys\ncd/pvpanic/w7/amd64/pvpanic.cat\ncd/pvpanic/w7/amd64/pvpanic.inf\ncd/pvpanic/w7/amd64/pvpanic.pdb\ncd/pvpanic/w7/amd64/pvpanic.sys\ncd/pvpanic/w7/amd64/WdfCoInstaller01009.dll\ncd/pvpanic/w7/x86/pvpanic.cat\ncd/pvpanic/w7/x86/pvpanic.inf\ncd/pvpanic/w7/x86/pvpanic.pdb\ncd/pvpanic/w7/x86/pvpanic.sys\ncd/pvpanic/w7/x86/WdfCoInstaller01009.dll\ncd/pvpanic/w8.1/amd64/pvpanic.cat\ncd/pvpanic/w8.1/amd64/pvpanic.inf\ncd/pvpanic/w8.1/amd64/pvpanic.pdb\ncd/pvpanic/w8.1/amd64/pvpanic.sys\ncd/pvpanic/w8.1/amd64/WdfCoInstaller01011.dll\ncd/pvpanic/w8.1/x86/pvpanic.cat\ncd/pvpanic/w8.1/x86/pvpanic.inf\ncd/pvpanic/w8.1/x86/pvpanic.pdb\ncd/pvpanic/w8.1/x86/pvpanic.sys\ncd/pvpanic/w8.1/x86/WdfCoInstaller01011.dll\ncd/pvpanic/w8/amd64/pvpanic.cat\ncd/pvpanic/w8/amd64/pvpanic.inf\ncd/pvpanic/w8/amd64/pvpanic.pdb\ncd/pvpanic/w8/amd64/pvpanic.sys\ncd/pvpanic/w8/amd64/WdfCoInstaller01011.dll\ncd/pvpanic/w8/x86/pvpanic.cat\ncd/pvpanic/w8/x86/pvpanic.inf\ncd/pvpanic/w8/x86/pvpanic.pdb\ncd/pvpanic/w8/x86/pvpanic.sys\ncd/pvpanic/w8/x86/WdfCoInstaller01011.dll\ncd/qemufwcfg/2k16/amd64/qemufwcfg.cat\ncd/qemufwcfg/2k16/amd64/qemufwcfg.inf\ncd/qemufwcfg/2k19/amd64/qemufwcfg.cat\ncd/qemufwcfg/2k19/amd64/qemufwcfg.inf\ncd/qemufwcfg/2k22/amd64/qemufwcfg.cat\ncd/qemufwcfg/2k22/amd64/qemufwcfg.inf\ncd/qemufwcfg/2k25/amd64/qemufwcfg.cat\ncd/qemufwcfg/2k25/amd64/qemufwcfg.inf\ncd/qemufwcfg/w10/amd64/qemufwcfg.cat\ncd/qemufwcfg/w10/amd64/qemufwcfg.inf\ncd/qemufwcfg/w10/x86/qemufwcfg.cat\ncd/qemufwcfg/w10/x86/qemufwcfg.inf\ncd/qemufwcfg/w11/amd64/qemufwcfg.cat\ncd/qemufwcfg/w11/amd64/qemufwcfg.inf\ncd/qemupciserial/2k12/amd64/qemupciserial.cat\ncd/qemupciserial/2k12/amd64/qemupciserial.inf\ncd/qemupciserial/2k12R2/amd64/qemupciserial.cat\ncd/qemupciserial/2k12R2/amd64/qemupciserial.inf\ncd/qemupciserial/2k16/amd64/qemupciserial.cat\ncd/qemupciserial/2k16/amd64/qemupciserial.inf\ncd/qemupciserial/2k19/amd64/qemupciserial.cat\ncd/qemupciserial/2k19/amd64/qemupciserial.inf\ncd/qemupciserial/2k22/amd64/qemupciserial.cat\ncd/qemupciserial/2k22/amd64/qemupciserial.inf\ncd/qemupciserial/2k25/amd64/qemupciserial.cat\ncd/qemupciserial/2k25/amd64/qemupciserial.inf\ncd/qemupciserial/2k8R2/amd64/qemupciserial.cat\ncd/qemupciserial/2k8R2/amd64/qemupciserial.inf\ncd/qemupciserial/w10/amd64/qemupciserial.cat\ncd/qemupciserial/w10/amd64/qemupciserial.inf\ncd/qemupciserial/w10/x86/qemupciserial.cat\ncd/qemupciserial/w10/x86/qemupciserial.inf\ncd/qemupciserial/w11/amd64/qemupciserial.cat\ncd/qemupciserial/w11/amd64/qemupciserial.inf\ncd/qemupciserial/w7/amd64/qemupciserial.cat\ncd/qemupciserial/w7/amd64/qemupciserial.inf\ncd/qemupciserial/w7/x86/qemupciserial.cat\ncd/qemupciserial/w7/x86/qemupciserial.inf\ncd/qemupciserial/w8.1/amd64/qemupciserial.cat\ncd/qemupciserial/w8.1/amd64/qemupciserial.inf\ncd/qemupciserial/w8.1/x86/qemupciserial.cat\ncd/qemupciserial/w8.1/x86/qemupciserial.inf\ncd/qemupciserial/w8/amd64/qemupciserial.cat\ncd/qemupciserial/w8/amd64/qemupciserial.inf\ncd/qemupciserial/w8/x86/qemupciserial.cat\ncd/qemupciserial/w8/x86/qemupciserial.inf\ncd/qxl/2k8R2/amd64/qxl.cat\ncd/qxl/2k8R2/amd64/qxldd.dll\ncd/qxl/2k8R2/amd64/qxl.inf\ncd/qxl/2k8R2/amd64/qxl.sys\ncd/qxldod/2k16/amd64/qxldod.cat\ncd/qxldod/2k16/amd64/qxldod.inf\ncd/qxldod/2k16/amd64/qxldod.sys\ncd/qxldod/2k19/amd64/qxldod.cat\ncd/qxldod/2k19/amd64/qxldod.inf\ncd/qxldod/2k19/amd64/qxldod.sys\ncd/qxldod/w10/amd64/qxldod.cat\ncd/qxldod/w10/amd64/qxldod.inf\ncd/qxldod/w10/amd64/qxldod.sys\ncd/qxldod/w10/x86/qxldod.cat\ncd/qxldod/w10/x86/qxldod.inf\ncd/qxldod/w10/x86/qxldod.sys\ncd/qxl/w7/amd64/qxl.cat\ncd/qxl/w7/amd64/qxldd.dll\ncd/qxl/w7/amd64/qxl.inf\ncd/qxl/w7/amd64/qxl.sys\ncd/qxl/w7/x86/qxl.cat\ncd/qxl/w7/x86/qxldd.dll\ncd/qxl/w7/x86/qxl.inf\ncd/qxl/w7/x86/qxl.sys\ncd/qxl-wddm-dod/QxlWddmDod_x64.msi\ncd/qxl-wddm-dod/QxlWddmDod_x86.msi\ncd/release-drivers-versions.txt\ncd/spice-vdagent/spice-vdagent-x64.msi\ncd/spice-vdagent/spice-vdagent-x86.msi\ncd/sriov/2k12R2/amd64/netkvmno.dll\ncd/sriov/2k12R2/amd64/netkvmno.pdb\ncd/sriov/2k12R2/amd64/netkvmp.exe\ncd/sriov/2k12R2/amd64/netkvmp.pdb\ncd/sriov/2k12R2/amd64/vioprot.cat\ncd/sriov/2k12R2/amd64/vioprot.inf\ncd/sriov/2k16/amd64/vioprot.cat\ncd/sriov/2k16/amd64/vioprot.inf\ncd/sriov/2k19/amd64/vioprot.cat\ncd/sriov/2k19/amd64/vioprot.inf\ncd/sriov/2k22/amd64/vioprot.cat\ncd/sriov/2k22/amd64/vioprot.inf\ncd/sriov/2k25/amd64/vioprot.cat\ncd/sriov/2k25/amd64/vioprot.inf\ncd/sriov/w10/amd64/vioprot.cat\ncd/sriov/w10/amd64/vioprot.inf\ncd/sriov/w10/x86/vioprot.cat\ncd/sriov/w10/x86/vioprot.inf\ncd/sriov/w11/amd64/vioprot.cat\ncd/sriov/w11/amd64/vioprot.inf\ncd/sriov/w8.1/amd64/netkvmno.dll\ncd/sriov/w8.1/amd64/netkvmno.pdb\ncd/sriov/w8.1/amd64/netkvmp.exe\ncd/sriov/w8.1/amd64/netkvmp.pdb\ncd/sriov/w8.1/amd64/vioprot.cat\ncd/sriov/w8.1/amd64/vioprot.inf\ncd/sriov/w8.1/x86/netkvmno.dll\ncd/sriov/w8.1/x86/netkvmno.pdb\ncd/sriov/w8.1/x86/netkvmp.exe\ncd/sriov/w8.1/x86/netkvmp.pdb\ncd/sriov/w8.1/x86/vioprot.cat\ncd/sriov/w8.1/x86/vioprot.inf\ncd/tools/debug/CollectSystemInfo.ps1\ncd/tools/debug/LICENSE\ncd/tools/debug/README.md\ncd/viofs/2k12/amd64/viofs.cat\ncd/viofs/2k12/amd64/viofs.inf\ncd/viofs/2k12/amd64/viofs.pdb\ncd/viofs/2k12/amd64/viofs.sys\ncd/viofs/2k12/amd64/virtiofs.exe\ncd/viofs/2k12/amd64/virtiofs.pdb\ncd/viofs/2k12/amd64/WdfCoInstaller01011.dll\ncd/viofs/2k12R2/amd64/viofs.cat\ncd/viofs/2k12R2/amd64/viofs.inf\ncd/viofs/2k12R2/amd64/viofs.pdb\ncd/viofs/2k12R2/amd64/viofs.sys\ncd/viofs/2k12R2/amd64/virtiofs.exe\ncd/viofs/2k12R2/amd64/virtiofs.pdb\ncd/viofs/2k12R2/amd64/WdfCoInstaller01011.dll\ncd/viofs/2k16/amd64/viofs.cat\ncd/viofs/2k16/amd64/viofs.inf\ncd/viofs/2k16/amd64/viofs.pdb\ncd/viofs/2k16/amd64/viofs.sys\ncd/viofs/2k16/amd64/virtiofs.exe\ncd/viofs/2k16/amd64/virtiofs.pdb\ncd/viofs/2k19/amd64/viofs.cat\ncd/viofs/2k19/amd64/viofs.inf\ncd/viofs/2k19/amd64/viofs.pdb\ncd/viofs/2k19/amd64/viofs.sys\ncd/viofs/2k19/amd64/virtiofs.exe\ncd/viofs/2k19/amd64/virtiofs.pdb\ncd/viofs/2k22/amd64/viofs.cat\ncd/viofs/2k22/amd64/viofs.inf\ncd/viofs/2k22/amd64/viofs.pdb\ncd/viofs/2k22/amd64/viofs.sys\ncd/viofs/2k22/amd64/virtiofs.exe\ncd/viofs/2k22/amd64/virtiofs.pdb\ncd/viofs/2k25/amd64/viofs.cat\ncd/viofs/2k25/amd64/viofs.inf\ncd/viofs/2k25/amd64/viofs.pdb\ncd/viofs/2k25/amd64/viofs.sys\ncd/viofs/2k25/amd64/virtiofs.exe\ncd/viofs/2k25/amd64/virtiofs.pdb\ncd/viofs/w10/amd64/viofs.cat\ncd/viofs/w10/amd64/viofs.inf\ncd/viofs/w10/amd64/viofs.pdb\ncd/viofs/w10/amd64/viofs.sys\ncd/viofs/w10/amd64/virtiofs.exe\ncd/viofs/w10/amd64/virtiofs.pdb\ncd/viofs/w10/x86/viofs.cat\ncd/viofs/w10/x86/viofs.inf\ncd/viofs/w10/x86/viofs.pdb\ncd/viofs/w10/x86/viofs.sys\ncd/viofs/w10/x86/virtiofs.exe\ncd/viofs/w10/x86/virtiofs.pdb\ncd/viofs/w11/amd64/viofs.cat\ncd/viofs/w11/amd64/viofs.inf\ncd/viofs/w11/amd64/viofs.pdb\ncd/viofs/w11/amd64/viofs.sys\ncd/viofs/w11/amd64/virtiofs.exe\ncd/viofs/w11/amd64/virtiofs.pdb\ncd/viofs/w8.1/amd64/viofs.cat\ncd/viofs/w8.1/amd64/viofs.inf\ncd/viofs/w8.1/amd64/viofs.pdb\ncd/viofs/w8.1/amd64/viofs.sys\ncd/viofs/w8.1/amd64/virtiofs.exe\ncd/viofs/w8.1/amd64/virtiofs.pdb\ncd/viofs/w8.1/amd64/WdfCoInstaller01011.dll\ncd/viofs/w8.1/x86/viofs.cat\ncd/viofs/w8.1/x86/viofs.inf\ncd/viofs/w8.1/x86/viofs.pdb\ncd/viofs/w8.1/x86/viofs.sys\ncd/viofs/w8.1/x86/virtiofs.exe\ncd/viofs/w8.1/x86/virtiofs.pdb\ncd/viofs/w8.1/x86/WdfCoInstaller01011.dll\ncd/viofs/w8/amd64/viofs.cat\ncd/viofs/w8/amd64/viofs.inf\ncd/viofs/w8/amd64/viofs.pdb\ncd/viofs/w8/amd64/viofs.sys\ncd/viofs/w8/amd64/virtiofs.exe\ncd/viofs/w8/amd64/virtiofs.pdb\ncd/viofs/w8/amd64/WdfCoInstaller01011.dll\ncd/viofs/w8/x86/viofs.cat\ncd/viofs/w8/x86/viofs.inf\ncd/viofs/w8/x86/viofs.pdb\ncd/viofs/w8/x86/viofs.sys\ncd/viofs/w8/x86/virtiofs.exe\ncd/viofs/w8/x86/virtiofs.pdb\ncd/viofs/w8/x86/WdfCoInstaller01011.dll\ncd/viogpudo/2k12/amd64/vgpusrv.exe\ncd/viogpudo/2k12/amd64/vgpusrv.pdb\ncd/viogpudo/2k12/amd64/viogpuap.exe\ncd/viogpudo/2k12/amd64/viogpuap.pdb\ncd/viogpudo/2k12/amd64/viogpudo.cat\ncd/viogpudo/2k12/amd64/viogpudo.inf\ncd/viogpudo/2k12/amd64/viogpudo.pdb\ncd/viogpudo/2k12/amd64/viogpudo.sys\ncd/viogpudo/2k12R2/amd64/vgpusrv.exe\ncd/viogpudo/2k12R2/amd64/vgpusrv.pdb\ncd/viogpudo/2k12R2/amd64/viogpuap.exe\ncd/viogpudo/2k12R2/amd64/viogpuap.pdb\ncd/viogpudo/2k12R2/amd64/viogpudo.cat\ncd/viogpudo/2k12R2/amd64/viogpudo.inf\ncd/viogpudo/2k12R2/amd64/viogpudo.pdb\ncd/viogpudo/2k12R2/amd64/viogpudo.sys\ncd/viogpudo/2k16/amd64/vgpusrv.exe\ncd/viogpudo/2k16/amd64/vgpusrv.pdb\ncd/viogpudo/2k16/amd64/viogpuap.exe\ncd/viogpudo/2k16/amd64/viogpuap.pdb\ncd/viogpudo/2k16/amd64/viogpudo.cat\ncd/viogpudo/2k16/amd64/viogpudo.inf\ncd/viogpudo/2k16/amd64/viogpudo.pdb\ncd/viogpudo/2k16/amd64/viogpudo.sys\ncd/viogpudo/2k19/amd64/vgpusrv.exe\ncd/viogpudo/2k19/amd64/vgpusrv.pdb\ncd/viogpudo/2k19/amd64/viogpuap.exe\ncd/viogpudo/2k19/amd64/viogpuap.pdb\ncd/viogpudo/2k19/amd64/viogpudo.cat\ncd/viogpudo/2k19/amd64/viogpudo.inf\ncd/viogpudo/2k19/amd64/viogpudo.pdb\ncd/viogpudo/2k19/amd64/viogpudo.sys\ncd/viogpudo/2k22/amd64/vgpusrv.exe\ncd/viogpudo/2k22/amd64/vgpusrv.pdb\ncd/viogpudo/2k22/amd64/viogpuap.exe\ncd/viogpudo/2k22/amd64/viogpuap.pdb\ncd/viogpudo/2k22/amd64/viogpudo.cat\ncd/viogpudo/2k22/amd64/viogpudo.inf\ncd/viogpudo/2k22/amd64/viogpudo.pdb\ncd/viogpudo/2k22/amd64/viogpudo.sys\ncd/viogpudo/2k25/amd64/vgpusrv.exe\ncd/viogpudo/2k25/amd64/vgpusrv.pdb\ncd/viogpudo/2k25/amd64/viogpuap.exe\ncd/viogpudo/2k25/amd64/viogpuap.pdb\ncd/viogpudo/2k25/amd64/viogpudo.cat\ncd/viogpudo/2k25/amd64/viogpudo.inf\ncd/viogpudo/2k25/amd64/viogpudo.pdb\ncd/viogpudo/2k25/amd64/viogpudo.sys\ncd/viogpudo/w10/amd64/vgpusrv.exe\ncd/viogpudo/w10/amd64/vgpusrv.pdb\ncd/viogpudo/w10/amd64/viogpuap.exe\ncd/viogpudo/w10/amd64/viogpuap.pdb\ncd/viogpudo/w10/amd64/viogpudo.cat\ncd/viogpudo/w10/amd64/viogpudo.inf\ncd/viogpudo/w10/amd64/viogpudo.pdb\ncd/viogpudo/w10/amd64/viogpudo.sys\ncd/viogpudo/w10/x86/vgpusrv.exe\ncd/viogpudo/w10/x86/vgpusrv.pdb\ncd/viogpudo/w10/x86/viogpuap.exe\ncd/viogpudo/w10/x86/viogpuap.pdb\ncd/viogpudo/w10/x86/viogpudo.cat\ncd/viogpudo/w10/x86/viogpudo.inf\ncd/viogpudo/w10/x86/viogpudo.pdb\ncd/viogpudo/w10/x86/viogpudo.sys\ncd/viogpudo/w11/amd64/vgpusrv.exe\ncd/viogpudo/w11/amd64/vgpusrv.pdb\ncd/viogpudo/w11/amd64/viogpuap.exe\ncd/viogpudo/w11/amd64/viogpuap.pdb\ncd/viogpudo/w11/amd64/viogpudo.cat\ncd/viogpudo/w11/amd64/viogpudo.inf\ncd/viogpudo/w11/amd64/viogpudo.pdb\ncd/viogpudo/w11/amd64/viogpudo.sys\ncd/vioinput/2k12/amd64/viohidkmdf.pdb\ncd/vioinput/2k12/amd64/viohidkmdf.sys\ncd/vioinput/2k12/amd64/vioinput.cat\ncd/vioinput/2k12/amd64/vioinput.inf\ncd/vioinput/2k12/amd64/vioinput.pdb\ncd/vioinput/2k12/amd64/vioinput.sys\ncd/vioinput/2k12/amd64/WdfCoInstaller01011.dll\ncd/vioinput/2k12R2/amd64/viohidkmdf.pdb\ncd/vioinput/2k12R2/amd64/viohidkmdf.sys\ncd/vioinput/2k12R2/amd64/vioinput.cat\ncd/vioinput/2k12R2/amd64/vioinput.inf\ncd/vioinput/2k12R2/amd64/vioinput.pdb\ncd/vioinput/2k12R2/amd64/vioinput.sys\ncd/vioinput/2k12R2/amd64/WdfCoInstaller01011.dll\ncd/vioinput/2k16/amd64/viohidkmdf.pdb\ncd/vioinput/2k16/amd64/viohidkmdf.sys\ncd/vioinput/2k16/amd64/vioinput.cat\ncd/vioinput/2k16/amd64/vioinput.inf\ncd/vioinput/2k16/amd64/vioinput.pdb\ncd/vioinput/2k16/amd64/vioinput.sys\ncd/vioinput/2k19/amd64/viohidkmdf.pdb\ncd/vioinput/2k19/amd64/viohidkmdf.sys\ncd/vioinput/2k19/amd64/vioinput.cat\ncd/vioinput/2k19/amd64/vioinput.inf\ncd/vioinput/2k19/amd64/vioinput.pdb\ncd/vioinput/2k19/amd64/vioinput.sys\ncd/vioinput/2k22/amd64/viohidkmdf.pdb\ncd/vioinput/2k22/amd64/viohidkmdf.sys\ncd/vioinput/2k22/amd64/vioinput.cat\ncd/vioinput/2k22/amd64/vioinput.inf\ncd/vioinput/2k22/amd64/vioinput.pdb\ncd/vioinput/2k22/amd64/vioinput.sys\ncd/vioinput/2k25/amd64/viohidkmdf.pdb\ncd/vioinput/2k25/amd64/viohidkmdf.sys\ncd/vioinput/2k25/amd64/vioinput.cat\ncd/vioinput/2k25/amd64/vioinput.inf\ncd/vioinput/2k25/amd64/vioinput.pdb\ncd/vioinput/2k25/amd64/vioinput.sys\ncd/vioinput/2k8R2/amd64/viohidkmdf.pdb\ncd/vioinput/2k8R2/amd64/viohidkmdf.sys\ncd/vioinput/2k8R2/amd64/vioinput.cat\ncd/vioinput/2k8R2/amd64/vioinput.inf\ncd/vioinput/2k8R2/amd64/vioinput.pdb\ncd/vioinput/2k8R2/amd64/vioinput.sys\ncd/vioinput/2k8R2/amd64/WdfCoInstaller01009.dll\ncd/vioinput/w10/amd64/viohidkmdf.pdb\ncd/vioinput/w10/amd64/viohidkmdf.sys\ncd/vioinput/w10/amd64/vioinput.cat\ncd/vioinput/w10/amd64/vioinput.inf\ncd/vioinput/w10/amd64/vioinput.pdb\ncd/vioinput/w10/amd64/vioinput.sys\ncd/vioinput/w10/x86/viohidkmdf.pdb\ncd/vioinput/w10/x86/viohidkmdf.sys\ncd/vioinput/w10/x86/vioinput.cat\ncd/vioinput/w10/x86/vioinput.inf\ncd/vioinput/w10/x86/vioinput.pdb\ncd/vioinput/w10/x86/vioinput.sys\ncd/vioinput/w11/amd64/viohidkmdf.pdb\ncd/vioinput/w11/amd64/viohidkmdf.sys\ncd/vioinput/w11/amd64/vioinput.cat\ncd/vioinput/w11/amd64/vioinput.inf\ncd/vioinput/w11/amd64/vioinput.pdb\ncd/vioinput/w11/amd64/vioinput.sys\ncd/vioinput/w7/amd64/viohidkmdf.pdb\ncd/vioinput/w7/amd64/viohidkmdf.sys\ncd/vioinput/w7/amd64/vioinput.cat\ncd/vioinput/w7/amd64/vioinput.inf\ncd/vioinput/w7/amd64/vioinput.pdb\ncd/vioinput/w7/amd64/vioinput.sys\ncd/vioinput/w7/amd64/WdfCoInstaller01009.dll\ncd/vioinput/w7/x86/viohidkmdf.pdb\ncd/vioinput/w7/x86/viohidkmdf.sys\ncd/vioinput/w7/x86/vioinput.cat\ncd/vioinput/w7/x86/vioinput.inf\ncd/vioinput/w7/x86/vioinput.pdb\ncd/vioinput/w7/x86/vioinput.sys\ncd/vioinput/w7/x86/WdfCoInstaller01009.dll\ncd/vioinput/w8.1/amd64/viohidkmdf.pdb\ncd/vioinput/w8.1/amd64/viohidkmdf.sys\ncd/vioinput/w8.1/amd64/vioinput.cat\ncd/vioinput/w8.1/amd64/vioinput.inf\ncd/vioinput/w8.1/amd64/vioinput.pdb\ncd/vioinput/w8.1/amd64/vioinput.sys\ncd/vioinput/w8.1/amd64/WdfCoInstaller01011.dll\ncd/vioinput/w8.1/x86/viohidkmdf.pdb\ncd/vioinput/w8.1/x86/viohidkmdf.sys\ncd/vioinput/w8.1/x86/vioinput.cat\ncd/vioinput/w8.1/x86/vioinput.inf\ncd/vioinput/w8.1/x86/vioinput.pdb\ncd/vioinput/w8.1/x86/vioinput.sys\ncd/vioinput/w8.1/x86/WdfCoInstaller01011.dll\ncd/vioinput/w8/amd64/viohidkmdf.pdb\ncd/vioinput/w8/amd64/viohidkmdf.sys\ncd/vioinput/w8/amd64/vioinput.cat\ncd/vioinput/w8/amd64/vioinput.inf\ncd/vioinput/w8/amd64/vioinput.pdb\ncd/vioinput/w8/amd64/vioinput.sys\ncd/vioinput/w8/amd64/WdfCoInstaller01011.dll\ncd/vioinput/w8/x86/viohidkmdf.pdb\ncd/vioinput/w8/x86/viohidkmdf.sys\ncd/vioinput/w8/x86/vioinput.cat\ncd/vioinput/w8/x86/vioinput.inf\ncd/vioinput/w8/x86/vioinput.pdb\ncd/vioinput/w8/x86/vioinput.sys\ncd/vioinput/w8/x86/WdfCoInstaller01011.dll\ncd/viomem/2k16/amd64/viomem.cat\ncd/viomem/2k16/amd64/viomem.inf\ncd/viomem/2k16/amd64/viomem.pdb\ncd/viomem/2k16/amd64/viomem.sys\ncd/viomem/2k19/amd64/viomem.cat\ncd/viomem/2k19/amd64/viomem.inf\ncd/viomem/2k19/amd64/viomem.pdb\ncd/viomem/2k19/amd64/viomem.sys\ncd/viomem/2k22/amd64/viomem.cat\ncd/viomem/2k22/amd64/viomem.inf\ncd/viomem/2k22/amd64/viomem.pdb\ncd/viomem/2k22/amd64/viomem.sys\ncd/viomem/2k25/amd64/viomem.cat\ncd/viomem/2k25/amd64/viomem.inf\ncd/viomem/2k25/amd64/viomem.pdb\ncd/viomem/2k25/amd64/viomem.sys\ncd/viomem/w10/amd64/viomem.cat\ncd/viomem/w10/amd64/viomem.inf\ncd/viomem/w10/amd64/viomem.pdb\ncd/viomem/w10/amd64/viomem.sys\ncd/viomem/w11/amd64/viomem.cat\ncd/viomem/w11/amd64/viomem.inf\ncd/viomem/w11/amd64/viomem.pdb\ncd/viomem/w11/amd64/viomem.sys\ncd/viorng/2k12/amd64/viorng.cat\ncd/viorng/2k12/amd64/viorngci.dll\ncd/viorng/2k12/amd64/viorngci.pdb\ncd/viorng/2k12/amd64/viorng.inf\ncd/viorng/2k12/amd64/viorng.pdb\ncd/viorng/2k12/amd64/viorng.sys\ncd/viorng/2k12/amd64/viorngum.dll\ncd/viorng/2k12/amd64/viorngum.pdb\ncd/viorng/2k12/amd64/WdfCoInstaller01011.dll\ncd/viorng/2k12R2/amd64/viorng.cat\ncd/viorng/2k12R2/amd64/viorngci.dll\ncd/viorng/2k12R2/amd64/viorngci.pdb\ncd/viorng/2k12R2/amd64/viorng.inf\ncd/viorng/2k12R2/amd64/viorng.pdb\ncd/viorng/2k12R2/amd64/viorng.sys\ncd/viorng/2k12R2/amd64/viorngum.dll\ncd/viorng/2k12R2/amd64/viorngum.pdb\ncd/viorng/2k12R2/amd64/WdfCoInstaller01011.dll\ncd/viorng/2k16/amd64/viorng.cat\ncd/viorng/2k16/amd64/viorng.inf\ncd/viorng/2k16/amd64/viorng.pdb\ncd/viorng/2k16/amd64/viorng.sys\ncd/viorng/2k16/amd64/viorngum.dll\ncd/viorng/2k16/amd64/viorngum.pdb\ncd/viorng/2k19/amd64/viorng.cat\ncd/viorng/2k19/amd64/viorng.inf\ncd/viorng/2k19/amd64/viorng.pdb\ncd/viorng/2k19/amd64/viorng.sys\ncd/viorng/2k19/amd64/viorngum.dll\ncd/viorng/2k19/amd64/viorngum.pdb\ncd/viorng/2k22/amd64/viorng.cat\ncd/viorng/2k22/amd64/viorng.inf\ncd/viorng/2k22/amd64/viorng.pdb\ncd/viorng/2k22/amd64/viorng.sys\ncd/viorng/2k22/amd64/viorngum.dll\ncd/viorng/2k22/amd64/viorngum.pdb\ncd/viorng/2k25/amd64/viorng.cat\ncd/viorng/2k25/amd64/viorng.inf\ncd/viorng/2k25/amd64/viorng.pdb\ncd/viorng/2k25/amd64/viorng.sys\ncd/viorng/2k25/amd64/viorngum.dll\ncd/viorng/2k25/amd64/viorngum.pdb\ncd/viorng/2k8R2/amd64/viorng.cat\ncd/viorng/2k8R2/amd64/viorngci.dll\ncd/viorng/2k8R2/amd64/viorngci.pdb\ncd/viorng/2k8R2/amd64/viorng.inf\ncd/viorng/2k8R2/amd64/viorng.pdb\ncd/viorng/2k8R2/amd64/viorng.sys\ncd/viorng/2k8R2/amd64/viorngum.dll\ncd/viorng/2k8R2/amd64/viorngum.pdb\ncd/viorng/2k8R2/amd64/WdfCoInstaller01009.dll\ncd/viorng/w10/amd64/viorng.cat\ncd/viorng/w10/amd64/viorng.inf\ncd/viorng/w10/amd64/viorng.pdb\ncd/viorng/w10/amd64/viorng.sys\ncd/viorng/w10/amd64/viorngum.dll\ncd/viorng/w10/amd64/viorngum.pdb\ncd/viorng/w10/x86/viorng.cat\ncd/viorng/w10/x86/viorng.inf\ncd/viorng/w10/x86/viorng.pdb\ncd/viorng/w10/x86/viorng.sys\ncd/viorng/w10/x86/viorngum.dll\ncd/viorng/w10/x86/viorngum.pdb\ncd/viorng/w11/amd64/viorng.cat\ncd/viorng/w11/amd64/viorng.inf\ncd/viorng/w11/amd64/viorng.pdb\ncd/viorng/w11/amd64/viorng.sys\ncd/viorng/w11/amd64/viorngum.dll\ncd/viorng/w11/amd64/viorngum.pdb\ncd/viorng/w7/amd64/viorng.cat\ncd/viorng/w7/amd64/viorngci.dll\ncd/viorng/w7/amd64/viorngci.pdb\ncd/viorng/w7/amd64/viorng.inf\ncd/viorng/w7/amd64/viorng.pdb\ncd/viorng/w7/amd64/viorng.sys\ncd/viorng/w7/amd64/viorngum.dll\ncd/viorng/w7/amd64/viorngum.pdb\ncd/viorng/w7/amd64/WdfCoInstaller01009.dll\ncd/viorng/w7/x86/viorng.cat\ncd/viorng/w7/x86/viorngci.dll\ncd/viorng/w7/x86/viorngci.pdb\ncd/viorng/w7/x86/viorng.inf\ncd/viorng/w7/x86/viorng.pdb\ncd/viorng/w7/x86/viorng.sys\ncd/viorng/w7/x86/viorngum.dll\ncd/viorng/w7/x86/viorngum.pdb\ncd/viorng/w7/x86/WdfCoInstaller01009.dll\ncd/viorng/w8.1/amd64/viorng.cat\ncd/viorng/w8.1/amd64/viorngci.dll\ncd/viorng/w8.1/amd64/viorngci.pdb\ncd/viorng/w8.1/amd64/viorng.inf\ncd/viorng/w8.1/amd64/viorng.pdb\ncd/viorng/w8.1/amd64/viorng.sys\ncd/viorng/w8.1/amd64/viorngum.dll\ncd/viorng/w8.1/amd64/viorngum.pdb\ncd/viorng/w8.1/amd64/WdfCoInstaller01011.dll\ncd/viorng/w8.1/x86/viorng.cat\ncd/viorng/w8.1/x86/viorngci.dll\ncd/viorng/w8.1/x86/viorngci.pdb\ncd/viorng/w8.1/x86/viorng.inf\ncd/viorng/w8.1/x86/viorng.pdb\ncd/viorng/w8.1/x86/viorng.sys\ncd/viorng/w8.1/x86/viorngum.dll\ncd/viorng/w8.1/x86/viorngum.pdb\ncd/viorng/w8.1/x86/WdfCoInstaller01011.dll\ncd/viorng/w8/amd64/viorng.cat\ncd/viorng/w8/amd64/viorngci.dll\ncd/viorng/w8/amd64/viorngci.pdb\ncd/viorng/w8/amd64/viorng.inf\ncd/viorng/w8/amd64/viorng.pdb\ncd/viorng/w8/amd64/viorng.sys\ncd/viorng/w8/amd64/viorngum.dll\ncd/viorng/w8/amd64/viorngum.pdb\ncd/viorng/w8/amd64/WdfCoInstaller01011.dll\ncd/viorng/w8/x86/viorng.cat\ncd/viorng/w8/x86/viorngci.dll\ncd/viorng/w8/x86/viorngci.pdb\ncd/viorng/w8/x86/viorng.inf\ncd/viorng/w8/x86/viorng.pdb\ncd/viorng/w8/x86/viorng.sys\ncd/viorng/w8/x86/viorngum.dll\ncd/viorng/w8/x86/viorngum.pdb\ncd/viorng/w8/x86/WdfCoInstaller01011.dll\ncd/vioscsi/2k12/amd64/vioscsi.cat\ncd/vioscsi/2k12/amd64/vioscsi.inf\ncd/vioscsi/2k12/amd64/vioscsi.pdb\ncd/vioscsi/2k12/amd64/vioscsi.sys\ncd/vioscsi/2k12R2/amd64/vioscsi.cat\ncd/vioscsi/2k12R2/amd64/vioscsi.inf\ncd/vioscsi/2k12R2/amd64/vioscsi.pdb\ncd/vioscsi/2k12R2/amd64/vioscsi.sys\ncd/vioscsi/2k16/amd64/vioscsi.cat\ncd/vioscsi/2k16/amd64/vioscsi.inf\ncd/vioscsi/2k16/amd64/vioscsi.pdb\ncd/vioscsi/2k16/amd64/vioscsi.sys\ncd/vioscsi/2k19/amd64/vioscsi.cat\ncd/vioscsi/2k19/amd64/vioscsi.inf\ncd/vioscsi/2k19/amd64/vioscsi.pdb\ncd/vioscsi/2k19/amd64/vioscsi.sys\ncd/vioscsi/2k22/amd64/vioscsi.cat\ncd/vioscsi/2k22/amd64/vioscsi.inf\ncd/vioscsi/2k22/amd64/vioscsi.pdb\ncd/vioscsi/2k22/amd64/vioscsi.sys\ncd/vioscsi/2k25/amd64/vioscsi.cat\ncd/vioscsi/2k25/amd64/vioscsi.inf\ncd/vioscsi/2k25/amd64/vioscsi.pdb\ncd/vioscsi/2k25/amd64/vioscsi.sys\ncd/vioscsi/2k8R2/amd64/vioscsi.cat\ncd/vioscsi/2k8R2/amd64/vioscsi.inf\ncd/vioscsi/2k8R2/amd64/vioscsi.pdb\ncd/vioscsi/2k8R2/amd64/vioscsi.sys\ncd/vioscsi/w10/amd64/vioscsi.cat\ncd/vioscsi/w10/amd64/vioscsi.inf\ncd/vioscsi/w10/amd64/vioscsi.pdb\ncd/vioscsi/w10/amd64/vioscsi.sys\ncd/vioscsi/w10/x86/vioscsi.cat\ncd/vioscsi/w10/x86/vioscsi.inf\ncd/vioscsi/w10/x86/vioscsi.pdb\ncd/vioscsi/w10/x86/vioscsi.sys\ncd/vioscsi/w11/amd64/vioscsi.cat\ncd/vioscsi/w11/amd64/vioscsi.inf\ncd/vioscsi/w11/amd64/vioscsi.pdb\ncd/vioscsi/w11/amd64/vioscsi.sys\ncd/vioscsi/w7/amd64/vioscsi.cat\ncd/vioscsi/w7/amd64/vioscsi.inf\ncd/vioscsi/w7/amd64/vioscsi.pdb\ncd/vioscsi/w7/amd64/vioscsi.sys\ncd/vioscsi/w7/x86/vioscsi.cat\ncd/vioscsi/w7/x86/vioscsi.inf\ncd/vioscsi/w7/x86/vioscsi.pdb\ncd/vioscsi/w7/x86/vioscsi.sys\ncd/vioscsi/w8.1/amd64/vioscsi.cat\ncd/vioscsi/w8.1/amd64/vioscsi.inf\ncd/vioscsi/w8.1/amd64/vioscsi.pdb\ncd/vioscsi/w8.1/amd64/vioscsi.sys\ncd/vioscsi/w8.1/x86/vioscsi.cat\ncd/vioscsi/w8.1/x86/vioscsi.inf\ncd/vioscsi/w8.1/x86/vioscsi.pdb\ncd/vioscsi/w8.1/x86/vioscsi.sys\ncd/vioscsi/w8/amd64/vioscsi.cat\ncd/vioscsi/w8/amd64/vioscsi.inf\ncd/vioscsi/w8/amd64/vioscsi.pdb\ncd/vioscsi/w8/amd64/vioscsi.sys\ncd/vioscsi/w8/x86/vioscsi.cat\ncd/vioscsi/w8/x86/vioscsi.inf\ncd/vioscsi/w8/x86/vioscsi.pdb\ncd/vioscsi/w8/x86/vioscsi.sys\ncd/vioserial/2k12/amd64/vioser.cat\ncd/vioserial/2k12/amd64/vioser.inf\ncd/vioserial/2k12/amd64/vioser.pdb\ncd/vioserial/2k12/amd64/vioser.sys\ncd/vioserial/2k12/amd64/WdfCoInstaller01011.dll\ncd/vioserial/2k12R2/amd64/vioser.cat\ncd/vioserial/2k12R2/amd64/vioser.inf\ncd/vioserial/2k12R2/amd64/vioser.pdb\ncd/vioserial/2k12R2/amd64/vioser.sys\ncd/vioserial/2k12R2/amd64/WdfCoInstaller01011.dll\ncd/vioserial/2k16/amd64/vioser.cat\ncd/vioserial/2k16/amd64/vioser.inf\ncd/vioserial/2k16/amd64/vioser.pdb\ncd/vioserial/2k16/amd64/vioser.sys\ncd/vioserial/2k19/amd64/vioser.cat\ncd/vioserial/2k19/amd64/vioser.inf\ncd/vioserial/2k19/amd64/vioser.pdb\ncd/vioserial/2k19/amd64/vioser.sys\ncd/vioserial/2k22/amd64/vioser.cat\ncd/vioserial/2k22/amd64/vioser.inf\ncd/vioserial/2k22/amd64/vioser.pdb\ncd/vioserial/2k22/amd64/vioser.sys\ncd/vioserial/2k25/amd64/vioser.cat\ncd/vioserial/2k25/amd64/vioser.inf\ncd/vioserial/2k25/amd64/vioser.pdb\ncd/vioserial/2k25/amd64/vioser.sys\ncd/vioserial/2k8R2/amd64/vioser.cat\ncd/vioserial/2k8R2/amd64/vioser.inf\ncd/vioserial/2k8R2/amd64/vioser.pdb\ncd/vioserial/2k8R2/amd64/vioser.sys\ncd/vioserial/2k8R2/amd64/WdfCoInstaller01009.dll\ncd/vioserial/w10/amd64/vioser.cat\ncd/vioserial/w10/amd64/vioser.inf\ncd/vioserial/w10/amd64/vioser.pdb\ncd/vioserial/w10/amd64/vioser.sys\ncd/vioserial/w10/x86/vioser.cat\ncd/vioserial/w10/x86/vioser.inf\ncd/vioserial/w10/x86/vioser.pdb\ncd/vioserial/w10/x86/vioser.sys\ncd/vioserial/w11/amd64/vioser.cat\ncd/vioserial/w11/amd64/vioser.inf\ncd/vioserial/w11/amd64/vioser.pdb\ncd/vioserial/w11/amd64/vioser.sys\ncd/vioserial/w7/amd64/vioser.cat\ncd/vioserial/w7/amd64/vioser.inf\ncd/vioserial/w7/amd64/vioser.pdb\ncd/vioserial/w7/amd64/vioser.sys\ncd/vioserial/w7/amd64/WdfCoInstaller01009.dll\ncd/vioserial/w7/x86/vioser.cat\ncd/vioserial/w7/x86/vioser.inf\ncd/vioserial/w7/x86/vioser.pdb\ncd/vioserial/w7/x86/vioser.sys\ncd/vioserial/w7/x86/WdfCoInstaller01009.dll\ncd/vioserial/w8.1/amd64/vioser.cat\ncd/vioserial/w8.1/amd64/vioser.inf\ncd/vioserial/w8.1/amd64/vioser.pdb\ncd/vioserial/w8.1/amd64/vioser.sys\ncd/vioserial/w8.1/amd64/WdfCoInstaller01011.dll\ncd/vioserial/w8.1/x86/vioser.cat\ncd/vioserial/w8.1/x86/vioser.inf\ncd/vioserial/w8.1/x86/vioser.pdb\ncd/vioserial/w8.1/x86/vioser.sys\ncd/vioserial/w8.1/x86/WdfCoInstaller01011.dll\ncd/vioserial/w8/amd64/vioser.cat\ncd/vioserial/w8/amd64/vioser.inf\ncd/vioserial/w8/amd64/vioser.pdb\ncd/vioserial/w8/amd64/vioser.sys\ncd/vioserial/w8/amd64/WdfCoInstaller01011.dll\ncd/vioserial/w8/x86/vioser.cat\ncd/vioserial/w8/x86/vioser.inf\ncd/vioserial/w8/x86/vioser.pdb\ncd/vioserial/w8/x86/vioser.sys\ncd/vioserial/w8/x86/WdfCoInstaller01011.dll\ncd/viostor/2k12/amd64/viostor.cat\ncd/viostor/2k12/amd64/viostor.inf\ncd/viostor/2k12/amd64/viostor.pdb\ncd/viostor/2k12/amd64/viostor.sys\ncd/viostor/2k12R2/amd64/viostor.cat\ncd/viostor/2k12R2/amd64/viostor.inf\ncd/viostor/2k12R2/amd64/viostor.pdb\ncd/viostor/2k12R2/amd64/viostor.sys\ncd/viostor/2k16/amd64/viostor.cat\ncd/viostor/2k16/amd64/viostor.inf\ncd/viostor/2k16/amd64/viostor.pdb\ncd/viostor/2k16/amd64/viostor.sys\ncd/viostor/2k19/amd64/viostor.cat\ncd/viostor/2k19/amd64/viostor.inf\ncd/viostor/2k19/amd64/viostor.pdb\ncd/viostor/2k19/amd64/viostor.sys\ncd/viostor/2k22/amd64/viostor.cat\ncd/viostor/2k22/amd64/viostor.inf\ncd/viostor/2k22/amd64/viostor.pdb\ncd/viostor/2k22/amd64/viostor.sys\ncd/viostor/2k25/amd64/viostor.cat\ncd/viostor/2k25/amd64/viostor.inf\ncd/viostor/2k25/amd64/viostor.pdb\ncd/viostor/2k25/amd64/viostor.sys\ncd/viostor/2k8R2/amd64/viostor.cat\ncd/viostor/2k8R2/amd64/viostor.inf\ncd/viostor/2k8R2/amd64/viostor.pdb\ncd/viostor/2k8R2/amd64/viostor.sys\ncd/viostor/w10/amd64/viostor.cat\ncd/viostor/w10/amd64/viostor.inf\ncd/viostor/w10/amd64/viostor.pdb\ncd/viostor/w10/amd64/viostor.sys\ncd/viostor/w10/x86/viostor.cat\ncd/viostor/w10/x86/viostor.inf\ncd/viostor/w10/x86/viostor.pdb\ncd/viostor/w10/x86/viostor.sys\ncd/viostor/w11/amd64/viostor.cat\ncd/viostor/w11/amd64/viostor.inf\ncd/viostor/w11/amd64/viostor.pdb\ncd/viostor/w11/amd64/viostor.sys\ncd/viostor/w7/amd64/viostor.cat\ncd/viostor/w7/amd64/viostor.inf\ncd/viostor/w7/amd64/viostor.pdb\ncd/viostor/w7/amd64/viostor.sys\ncd/viostor/w7/x86/viostor.cat\ncd/viostor/w7/x86/viostor.inf\ncd/viostor/w7/x86/viostor.pdb\ncd/viostor/w7/x86/viostor.sys\ncd/viostor/w8.1/amd64/viostor.cat\ncd/viostor/w8.1/amd64/viostor.inf\ncd/viostor/w8.1/amd64/viostor.pdb\ncd/viostor/w8.1/amd64/viostor.sys\ncd/viostor/w8.1/x86/viostor.cat\ncd/viostor/w8.1/x86/viostor.inf\ncd/viostor/w8.1/x86/viostor.pdb\ncd/viostor/w8.1/x86/viostor.sys\ncd/viostor/w8/amd64/viostor.cat\ncd/viostor/w8/amd64/viostor.inf\ncd/viostor/w8/amd64/viostor.pdb\ncd/viostor/w8/amd64/viostor.sys\ncd/viostor/w8/x86/viostor.cat\ncd/viostor/w8/x86/viostor.inf\ncd/viostor/w8/x86/viostor.pdb\ncd/viostor/w8/x86/viostor.sys\ncd/virtio-win-gt-x64.msi\ncd/virtio-win-gt-x86.msi\ncd/virtio-win-guest-tools.exe\ncd/virtio-win_license.txt\ncd/winfsp-2.0.23075.msi\n"
  },
  {
    "path": "test-data/phony-guests/Makefile.am",
    "content": "# libguestfs test images\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nEXTRA_DIST = \\\n\tmake-debian-img.sh \\\n\tdebian-packages \\\n\tdebian-syslog \\\n\tmake-fedora-img.pl \\\n\tfedora-journal.tar.xz \\\n\tfedora-db.sql.xz \\\n\tfedora.db \\\n\tmake-ubuntu-img.sh \\\n\tmake-archlinux-img.sh \\\n\tarchlinux-package \\\n\tmake-coreos-img.sh \\\n\tmake-windows-img.sh \\\n\twin10-software.reg \\\n\twin10-software.reg.bin \\\n\twin11-software.reg \\\n\twin11-software.reg.bin \\\n\twin2k22-software.reg \\\n\twin2k22-software.reg.bin \\\n\twin2k25-software.reg \\\n\twin2k25-software.reg.bin \\\n\twin7-32-software.reg \\\n\twin7-32-software.reg.bin \\\n\twinxp-32-software.reg \\\n\twinxp-32-software.reg.bin \\\n\twindows-software-all.reg \\\n\twindows-system.reg \\\n\twindows-system.reg.bin \\\n\twindows-bcd.reg \\\n\twindows-bcd.reg.bin \\\n\tminimal-hive \\\n\tmake-guests-all-good.pl \\\n\tguests.xml.in\n\ndisk_images = \\\n\tblank-disk.img \\\n\tblank-part.img \\\n\tblank-fs.img \\\n\tblank-bootroot.img \\\n\tblank-bootrootlv.img \\\n\tdebian.img \\\n\tfedora.img \\\n\tfedora-md1.img \\\n\tfedora-md2.img \\\n\tfedora-btrfs.img \\\n\tfedora-luks-on-lvm.img \\\n\tfedora-lvm-on-luks.img \\\n\tubuntu.img \\\n\tarchlinux.img \\\n\tcoreos.img \\\n\twin10.img \\\n\twin11.img \\\n\twin2k22.img \\\n\twin2k22-uefi.img \\\n\twin2k25.img \\\n\twin7-32.img \\\n\twinxp-32.img \\\n\twindows.img\n\n# This is 'check_DATA' because we don't need it until 'make check'\n# time and we need the tools we have built in order to make it.\ncheck_DATA = $(disk_images) guests-all-good.xml\n\nCLEANFILES += \\\n\t$(check_DATA) \\\n\tguests-all-good.xml \\\n\tstamp-fedora-md.img\n\n# Make several different blank images.  These are not guests, but we\n# include them in the libvirt fake XML to make sure that virt-df and\n# virt-alignment-scan don't break when they encounter them.\nblank-%.img:\n\trm -f $@ $@-t\n\t$(top_builddir)/run guestfish \\\n\t    -N $@-t=\"$$(echo $@ | $(SED) -e 's/blank-//' -e 's/.img//')\" exit\n\tmv $@-t $@\n\n# Make a (dummy) Fedora image.\nfedora.img: make-fedora-img.pl \\\n\t\tfedora-journal.tar.xz \\\n\t\tfedora.db \\\n\t\tfedora-static-bin\n\tSRCDIR=$(srcdir) LAYOUT=partitions $(top_builddir)/run --test ./$<\n\n# Make a (dummy) Fedora image using md devices\nfedora-md1.img fedora-md2.img: stamp-fedora-md.img\n\nstamp-fedora-md.img: make-fedora-img.pl \\\n\t\tfedora-journal.tar.xz \\\n\t\tfedora.db \\\n\t\tfedora-static-bin\n\trm -f $@\n\tSRCDIR=$(srcdir) LAYOUT=partitions-md $(top_builddir)/run --test ./$<\n\t$(AM_V_at)touch $@\n\n# Make a (dummy) Fedora image using a single btrfs with two subvolumes\n# for root and home.\nfedora-btrfs.img: make-fedora-img.pl \\\n\t\tfedora-journal.tar.xz \\\n\t\tfedora.db \\\n\t\tfedora-static-bin\n\tSRCDIR=$(srcdir) LAYOUT=btrfs $(top_builddir)/run --test ./$<\n\n# Make a (dummy) Fedora image with LUKS-on-LVM.\nfedora-luks-on-lvm.img: make-fedora-img.pl \\\n\t\tfedora-journal.tar.xz \\\n\t\tfedora.db \\\n\t\tfedora-static-bin\n\tSRCDIR=$(srcdir) LAYOUT=luks-on-lvm $(top_builddir)/run --test ./$<\n\n# Make a (dummy) Fedora image with LVM-on-LUKS.\nfedora-lvm-on-luks.img: make-fedora-img.pl \\\n\t\tfedora-journal.tar.xz \\\n\t\tfedora.db \\\n\t\tfedora-static-bin\n\tSRCDIR=$(srcdir) LAYOUT=lvm-on-luks $(top_builddir)/run --test ./$<\n\n# Make a (dummy) Debian image.\ndebian.img: make-debian-img.sh\n\tSRCDIR=$(srcdir) $(top_builddir)/run --test ./$<\n\n# Make a (dummy) Ubuntu image.\nubuntu.img: make-ubuntu-img.sh\n\tSRCDIR=$(srcdir) $(top_builddir)/run --test ./$<\n\n# Make a (dummy) Arch Linux image.\narchlinux.img: make-archlinux-img.sh\n\tSRCDIR=$(srcdir) $(top_builddir)/run --test ./$<\n\n# Make a (dummy) CoreOS image.\ncoreos.img: make-coreos-img.sh\n\tSRCDIR=$(srcdir) $(top_builddir)/run --test ./$<\n\n# Make a (dummy) Windows image.\nwin%.img: make-windows-img.sh \\\n\t\twin%-software.reg.bin \\\n\t\twindows-system.reg.bin\n\tSRCDIR=$(srcdir) $(top_builddir)/run --test ./$< $@\n\n# Make a (dummy) Windows UEFI image.\nwin2k22-uefi.img: make-windows-img.sh \\\n\t\twin2k22-software.reg.bin \\\n\t\twindows-system.reg.bin \\\n\t\twindows-bcd.reg.bin\n\tSRCDIR=$(srcdir) $(top_builddir)/run --test ./$< $@\n\n# This is the 'latest` windows image used by most test cases\nwindows.img: win2k22.img\n\tln -f $< $@\n\nguests-all-good.xml: make-guests-all-good.pl $(disk_images)\n\trm -f $@ $@-t\n\t./$^ > $@-t\n\tmv $@-t $@\n\n# Since users might not have the tools needed to create this, we also\n# distribute these files and they are only cleaned by 'make distclean'\n# not regular 'make clean'.\nfedora.db: fedora-db.sql.xz\n\trm -f $@ $@-t\n\txzcat $< | $(SQLITE3) $@-t\n\tmv $@-t $@\n\n# This is included in the phony Fedora image to act as a phony \"rpm\"\n# and \"dracut\" command.  For the use of -all-static here, see\n# libguestfs/tests/Makefile.am\ncheck_PROGRAMS = fedora-static-bin\nfedora_static_bin_SOURCES = fedora.c\nfedora_static_bin_LDFLAGS = -all-static\n\n%-software.reg.bin: %-software.reg windows-software-all.reg\n\trm -f $@ $@-t $<-t\n\tcp $(srcdir)/minimal-hive $@-t\n\tcat $^ > $<-t\n\thivexregedit --merge $@-t --prefix 'HKEY_LOCAL_MACHINE\\SOFTWARE' $<-t\n\tmv $@-t $@\n\trm -f $<-t\n\nwindows-system.reg.bin: windows-system.reg\n\trm -f $@ $@-t\n\tcp $(srcdir)/minimal-hive $@-t\n\thivexregedit --merge $@-t --prefix 'HKEY_LOCAL_MACHINE\\SYSTEM' $<\n\tmv $@-t $@\n\nwindows-bcd.reg.bin: windows-bcd.reg\n\trm -f $@ $@-t\n\tcp $(srcdir)/minimal-hive $@-t\n\thivexregedit --merge $@-t $<\n\tmv $@-t $@\n\nDISTCLEANFILES += \\\n\tfedora.db \\\n\twindows-software.reg.bin \\\n\twindows-system.reg.bin \\\n\twindows-bcd.reg.bin\n\n# Don't construct the guests in parallel.  In automake 1.13, check_DATA\n# was changed so it can now run in parallel, but this causes everything\n# to fall over on machines with limited memory.\n.NOTPARALLEL:\n"
  },
  {
    "path": "test-data/phony-guests/archlinux-package",
    "content": "%NAME%\ntest-package\n\n%VERSION%\n1:0.1-1\n\n%DESC%\nTest package for libguestfs\n\n%URL%\nhttp://libguestfs.org/\n\n%ARCH%\nx86_64\n\n"
  },
  {
    "path": "test-data/phony-guests/debian-packages",
    "content": "Package: test1\nStatus: installed ok\nPriority: optional\nSection: libs\nInstalled-Size: 123\nArchitecture: amd64\nSource: test\nVersion: 1.2.3-1\nConfig-Version: 1.2.3-1\nDepends: libc6 (>= 2.3)\nDescription: this is a test package\n This is a test package.\n .\n Don't confuse it with a real package.\nHomepage: http://libguestfs.org/\n\nPackage: test2\nStatus: installed ok\nPriority: optional\nSection: libs\nInstalled-Size: 123\nArchitecture: amd64\nSource: test\nVersion: 1.2.3-1\nConfig-Version: 1.2.3-1\nDepends: libc6 (>= 2.3)\nDescription: this is a test package\n This is a test package.\n .\n Don't confuse it with a real package.\nHomepage: http://libguestfs.org/\n\nPackage: test3\nStatus: installed ok\nPriority: optional\nSection: libs\nInstalled-Size: 123\nArchitecture: amd64\nSource: test\nVersion: 1.2.3-1\nConfig-Version: 1.2.3-1\nDepends: libc6 (>= 2.3)\nDescription: this is a test package\n This is a test package.\n .\n Don't confuse it with a real package.\nHomepage: http://libguestfs.org/\n\n"
  },
  {
    "path": "test-data/phony-guests/debian-syslog",
    "content": "Jun 14 11:48:55 debian.invalid NetworkManager[2392]: <info> Policy set 'Wired connection 1' (eth0) as default for IPv4 routing and DNS.\nJun 14 11:48:55 debian.invalid NetworkManager[2392]: <info> Policy set 'Wired connection 1' (eth0) as default for IPv6 routing and DNS.\nJun 14 11:48:55 debian.invalid NetworkManager[2392]: <info> Activation (eth0) Stage 5 of 5 (IPv6 Commit) complete.\nJun 14 11:49:00 debian.invalid dbus[2367]: [system] Activating service name='org.freedesktop.ConsoleKit' (using servicehelper)\nJun 14 11:49:00 debian.invalid dbus[2367]: [system] Successfully activated service 'org.freedesktop.ConsoleKit'\n"
  },
  {
    "path": "test-data/phony-guests/fedora.c",
    "content": "/* libguestfs test images\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n */\n\n/* This is \"just enough\" of a binary to look like /bin/sh, RPM and\n * dracut, as far as virt-v2v is concerned.\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <unistd.h>\n\n/* NB: This is also defined in make-fedora-img.pl */\n#define KVER \"5.19.0-0.rc1.14.fc37.x86_64\"\n\nstatic const char *\nget_basename (const char *str)\n{\n  const char *ret = strrchr (str, '/');\n  return ret == NULL ? str : ret + 1;\n}\n\nstatic void\nadd_str (char ***argv, size_t *argc, char *str)\n{\n  (*argc)++;\n  (*argv) = realloc (*argv, *argc * sizeof (char *));\n  (*argv)[*argc-1] = str;\n}\n\nstatic void\nadd_null (char ***argv, size_t *argc)\n{\n  add_str (argv, argc, NULL);\n}\n\nstatic void\nadd (char ***argv, size_t *argc, const char *s, size_t len)\n{\n  char *copy = strndup (s, len);\n  add_str (argv, argc, copy);\n}\n\nint\nmain (int argc, char *argv[])\n{\n  if (argc == 3 &&\n      strcmp (get_basename (argv[0]), \"rpm\") == 0 &&\n      strcmp (argv[1], \"-ql\") == 0 &&\n      strncmp (argv[2], \"kernel-\", 7) == 0) {\n    /* XXX These files and directories actually exist.  It would be\n     * better to list files in /boot and /lib/modules matching a\n     * pattern rather than hard-coding the list here, which duplicates\n     * information in make-fedora-img.pl.\n     */\n    printf (\"/boot/vmlinuz-\" KVER \"\\n\");\n    printf (\"/lib/modules/\" KVER \"\\n\");\n    printf (\"/lib/modules/\" KVER \"/kernel\\n\");\n    printf (\"/lib/modules/\" KVER \"/kernel/drivers\\n\");\n    printf (\"/lib/modules/\" KVER \"/kernel/drivers/block\\n\");\n    printf (\"/lib/modules/\" KVER \"/kernel/drivers/block/virtio_blk.ko\\n\");\n  }\n  else if (argc >= 1 &&\n           strcmp (get_basename (argv[0]), \"dracut\") == 0) {\n    // do nothing, pretend to rebuild the initramfs\n  }\n  else if (argc == 3 &&\n           strcmp (get_basename (argv[0]), \"sh\") == 0 &&\n           strcmp (argv[1], \"-c\") == 0) {\n    /* Split the command and execute it.  Only handles trivial cases. */\n    char *cmd = argv[2];\n    char **cmdv = NULL;\n    size_t i, cmdvlen = 0, n;\n    const size_t len = strlen (cmd);\n\n    for (i = 0; i < len;) {\n      switch (cmd[i]) {\n      case ' ': case '\\t':\n        i++;\n        continue;\n\n      case '\"':\n        n = strcspn (&cmd[i+1], \"\\\"\");\n        add (&cmdv, &cmdvlen, &cmd[i+1], n);\n        i += n+2;\n        break;\n\n      case '\\'':\n        n = strcspn (&cmd[i+1], \"'\");\n        add (&cmdv, &cmdvlen, &cmd[i+1], n);\n        i += n+2;\n        break;\n\n      default:\n        n = strcspn (&cmd[i], \" \\t\");\n        add (&cmdv, &cmdvlen, &cmd[i], n);\n        i += n;\n      }\n    }\n    add_null (&cmdv, &cmdvlen);\n\n    execvp (cmdv[0], cmdv);\n    perror (cmdv[0]);\n    exit (EXIT_FAILURE);\n  }\n  else {\n    int i;\n\n    fprintf (stderr, \"ERROR: test-data/phony-guests/fedora.c: \"\n             \"unexpected command:\\n\");\n    for (i = 0; i < argc; ++i)\n      fprintf (stderr, \"argv[%d] = %s\\n\", i, argv[i]);\n    exit (EXIT_FAILURE);\n  }\n\n  exit (EXIT_SUCCESS);\n}\n"
  },
  {
    "path": "test-data/phony-guests/guests.xml.in",
    "content": "<!--\n    libguestfs test images\n    @configure_input@\n    Copyright (C) 2013 Red Hat Inc.\n\n    This program is free software; you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation; either version 2 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program; if not, write to the Free Software\n    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n    To use the test guests by name, specify the following libvirt URI:\n    test://$(abs_builddir)/guests.xml\n\n    eg:\n    ./run ./df/virt-df -c test://@abs_builddir@/guests.xml\n    ./run ./align/virt-alignment-scan -c test://@abs_builddir@/guests.xml\n-->\n<node>\n\n  <!-- no disks -->\n  <domain type='test'>\n    <name>nodisks</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n    </devices>\n  </domain>\n\n  <!-- deliberately missing disks -->\n  <domain type='test'>\n    <name>missing-disks</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/no-such-disk.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <domain type='test'>\n    <name>blank-bootroot</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/blank-bootroot.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <domain type='test'>\n    <name>blank-bootrootlv</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/blank-bootrootlv.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <domain type='test'>\n    <name>blank-disk</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/blank-disk.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <domain type='test'>\n    <name>blank-fs</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/blank-fs.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <domain type='test'>\n    <name>blank-part</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/blank-part.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <domain type='test'>\n    <name>debian</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/debian.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <domain type='test'>\n    <name>fedora</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/fedora.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <domain type='test'>\n    <name>fedora-btrfs</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/fedora-btrfs.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <!-- LUKS passwords are 'FEDORA-Root', 'FEDORA-LV1', 'FEDORA-LV2',\n       'FEDORA-LV3' -->\n  <domain type='test'>\n    <name>fedora-luks-on-lvm</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/fedora-luks-on-lvm.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <!-- LUKS password is 'FEDORA' -->\n  <domain type='test'>\n    <name>fedora-lvm-on-luks</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/fedora-lvm-on-luks.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <domain type='test'>\n    <name>fedora-md1</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/fedora-md1.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <domain type='test'>\n    <name>fedora-md2</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/fedora-md2.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <domain type='test'>\n    <name>ubuntu</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/ubuntu.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <domain type='test'>\n    <name>archlinux</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/archlinux.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <domain type='test'>\n    <name>coreos</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/coreos.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n\n  <domain type='test'>\n    <name>windows</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_builddir@/windows.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n      <interface type='network'>\n        <mac address='00:11:22:33:44:55'/>\n        <source network='default'/>\n        <model type='virtio'/>\n      </interface>\n      <video>\n        <model type='vga' vram='16384' heads='1'/>\n      </video>\n    </devices>\n  </domain>\n\n</node>\n"
  },
  {
    "path": "test-data/phony-guests/make-archlinux-img.sh",
    "content": "#!/bin/bash -\n# libguestfs\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Make an Arch Linux image which is enough to fool the inspection heuristics.\n\nexport LANG=C\nset -e\n\n# Create a disk image.\nguestfish <<EOF\nsparse archlinux.img-t 512M\nrun\n\n# Format the disk.\npart-init /dev/sda mbr\npart-add /dev/sda p 64\t    -64\n\n# Phony / filesystem.\nmkfs ext4 /dev/sda1 blocksize:4096\nset-e2uuid /dev/sda1 01234567-0123-0123-0123-012345678902\n\n# Enough to fool inspection API.\nmount /dev/sda1 /\nmkdir /boot\nmkdir /bin\nmkdir /etc\nmkdir /home\nmkdir /usr\nmkdir-p /var/lib/pacman/local/test-package-1:0.1-1\n\nwrite /etc/fstab \"/dev/sda1 / ext4 rw,relatime,data=ordered 0 1\"\ntouch /etc/arch-release\nwrite /etc/hostname \"archlinux.test\"\n\nupload $SRCDIR/archlinux-package /var/lib/pacman/local/test-package-1:0.1-1/desc\n\nupload $SRCDIR/../binaries/bin-x86_64-dynamic /bin/ls\nchmod 0755 /bin/ls\n\nmkdir /boot/grub\ntouch /boot/grub/grub.conf\nEOF\n\nmv archlinux.img-t archlinux.img\n"
  },
  {
    "path": "test-data/phony-guests/make-coreos-img.sh",
    "content": "#!/bin/bash -\n# libguestfs\n# Copyright (C) 2015 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Make a CoreOS image which is enough to fool the inspection heuristics.\n\nexport LANG=C\nset -e\n\n# os-release file.\ncat > coreos.release <<'EOF'\nNAME=CoreOS\nID=coreos\nVERSION=899.13.0\nVERSION_ID=899.13.0\nBUILD_ID=2016-03-23-0120\nPRETTY_NAME=\"CoreOS 899.13.0\"\nANSI_COLOR=\"1;32\"\nHOME_URL=\"https://coreos.com/\"\nBUG_REPORT_URL=\"https://github.com/coreos/bugs/issues\"\nEOF\n\n# Create a disk image.\nguestfish <<EOF\nsparse coreos.img-t 512M\nrun\n\npart-init /dev/sda gpt\npart-add /dev/sda p 4096 266239\npart-add /dev/sda p 266240 270335\npart-add /dev/sda p 270336 532479\npart-add /dev/sda p 532480 794623\npart-add /dev/sda p 794624 -4096\n\npart-set-name /dev/sda 1 EFI_SYSTEM\npart-set-bootable /dev/sda 1 true\npart-set-name /dev/sda 2 BIOS-BOOT\npart-set-name /dev/sda 3 USR-A\npart-set-name /dev/sda 4 USR-B\npart-set-name /dev/sda 5 ROOT\n\nmkfs fat /dev/sda1\nmkfs ext4 /dev/sda3\nset-label /dev/sda3 USR-A\nset-uuid /dev/sda3 01234567-0123-0123-0123-012345678901\nmkfs ext4 /dev/sda5\nset-label /dev/sda5 ROOT\nset-uuid /dev/sda5 01234567-0123-0123-0123-012345678902\n\n# Enough to fool inspection API.\nmount /dev/sda5 /\nmkdir-p /etc/coreos\nmkdir /usr\nmount /dev/sda3 /usr\nmkdir /usr/bin\nmkdir /usr/lib64\nmkdir /usr/local\nmkdir-p /usr/share/coreos/\n\nln-s usr/bin /bin\nln-s usr/lib64 /lib64\nln-s lib64 /lib\nln-s lib64 /usr/lib\nmkdir /root\nmkdir /home\n\nwrite /etc/coreos/update.conf \"GROUP=stable\"\nupload coreos.release /usr/lib/os-release\nln-s ../usr/lib/os-release /etc/os-release\nwrite /etc/hostname \"coreos.invalid\"\n\nEOF\n\nrm coreos.release\nmv coreos.img-t coreos.img\n"
  },
  {
    "path": "test-data/phony-guests/make-debian-img.sh",
    "content": "#!/bin/bash -\n# libguestfs\n# Copyright (C) 2010 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Make a Debian image which is enough to fool the inspection heuristics.\n\nexport LANG=C\nset -e\n\n# fstab file.\ncat > debian.fstab <<EOF\nLABEL=BOOT /boot ext2 default 0 0\n/dev/debian/root / ext2 default 0 0\n/dev/debian/usr /usr ext2 default 1 2\n/dev/debian/var /var ext2 default 1 2\n/dev/debian/home /home ext2 default 1 2\nEOF\n\n# Create a disk image.\nguestfish <<EOF\nsparse debian.img-t 512M\nrun\n\n# Format the disk.\npart-init /dev/sda mbr\npart-add /dev/sda p 64     524287\npart-add /dev/sda p 524288    -64\n\npvcreate /dev/sda2\nvgcreate debian /dev/sda2\nlvcreate root debian 64\nlvcreate usr debian 32\nlvcreate var debian 32\nlvcreate home debian 32\n\n# Phony /boot filesystem.\nmkfs ext2 /dev/sda1 blocksize:4096\nset-label /dev/sda1 BOOT\nset-e2uuid /dev/sda1 01234567-0123-0123-0123-012345678901\n\n# Phony root and other filesystems.\nmkfs ext2 /dev/debian/root blocksize:4096\nset-e2uuid /dev/debian/root 01234567-0123-0123-0123-012345678902\nmkfs ext2 /dev/debian/usr blocksize:4096\nset-e2uuid /dev/debian/usr 01234567-0123-0123-0123-012345678903\nmkfs ext2 /dev/debian/var blocksize:4096\nset-e2uuid /dev/debian/var 01234567-0123-0123-0123-012345678904\nmkfs ext2 /dev/debian/home blocksize:4096\nset-e2uuid /dev/debian/home 01234567-0123-0123-0123-012345678905\n\n# Enough to fool inspection API.\nmount /dev/debian/root /\nmkdir /boot\nmount /dev/sda1 /boot\nmkdir /usr\nmount /dev/debian/usr /usr\nmkdir /var\nmount /dev/debian/var /var\nmkdir /home\nmount /dev/debian/home /home\nmkdir /bin\nmkdir /etc\nmkdir-p /var/lib/dpkg\nmkdir /var/lib/urandom\nmkdir /var/log\n\nupload debian.fstab /etc/fstab\nwrite /etc/debian_version \"5.0.1\"\nwrite /etc/hostname \"debian.invalid\"\n\nupload $SRCDIR/debian-packages /var/lib/dpkg/status\n\nupload $SRCDIR/../binaries/bin-x86_64-dynamic /bin/ls\nchmod 0755 /bin/ls\n\nupload $SRCDIR/debian-syslog /var/log/syslog\n\nmkdir /boot/grub\ntouch /boot/grub/grub.conf\nEOF\n\nrm debian.fstab\nmv debian.img-t debian.img\n"
  },
  {
    "path": "test-data/phony-guests/make-fedora-img.pl",
    "content": "#!/usr/bin/env perl\n# libguestfs\n# Copyright (C) 2010-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Make a standard test image which is used by all the tools test\n# scripts.  This test image is supposed to look like a Fedora\n# installation, or at least enough of one to fool the inspection API\n# heuristics.\n\nuse strict;\nuse warnings;\n\nuse Sys::Guestfs;\nuse File::Temp;\n\nmy $IMAGE_SIZE = 1024*1024*1024; # bytes\nmy $LEADING_SECTORS = 64;\nmy $TRAILING_SECTORS = 64;\nmy $SECTOR_SIZE = 512; # bytes\n\nmy @PARTITIONS = (\n    # 32k blank space\n    ['p', $LEADING_SECTORS, $IMAGE_SIZE/2/$SECTOR_SIZE-1],\n    ['p', $IMAGE_SIZE/2/$SECTOR_SIZE, -$TRAILING_SECTORS],\n    # 32k blank space\n);\n\nmy @images;\nmy $g = Sys::Guestfs->new ();\n\nmy $bootdev;\n\nforeach ('LAYOUT', 'SRCDIR') {\n    defined ($ENV{$_}) or die \"Missing environment variable: $_\";\n}\n\nif ($ENV{LAYOUT} eq 'partitions') {\n    push (@images, \"fedora.img-t\");\n\n    open (my $fstab, '>', \"fedora.fstab\") or die;\n    print $fstab <<EOF;\nLABEL=BOOT /boot ext2 default 0 0\nLABEL=ROOT / ext2 default 0 0\nEOF\n    close ($fstab) or die;\n\n    $bootdev = '/dev/sda1';\n\n    $g->disk_create (\"fedora.img-t\", \"raw\", $IMAGE_SIZE);\n\n    $g->add_drive (\"fedora.img-t\", format => \"raw\");\n    $g->launch ();\n\n    $g->part_init ('/dev/sda', 'mbr');\n    foreach my $p (@PARTITIONS) {\n        $g->part_add('/dev/sda', @$p);\n    }\n\n    init_lvm_root ('/dev/sda2');\n}\n\nelsif ($ENV{LAYOUT} eq 'partitions-md') {\n    push (@images, \"fedora-md1.img-t\", \"fedora-md2.img-t\");\n\n    open (my $fstab, '>', \"fedora.fstab\") or die;\n    print $fstab <<EOF;\n/dev/md0 /boot ext2 default 0 0\nLABEL=ROOT / ext2 default 0 0\nEOF\n    close ($fstab) or die;\n\n    $bootdev = '/dev/md/bootdev';\n\n    foreach my $img (@images) {\n        $g->disk_create ($img, \"raw\", $IMAGE_SIZE);\n        $g->add_drive ($img, format => \"raw\");\n    }\n\n    $g->launch ();\n\n    # Format the disks.\n    foreach my $d ('a', 'b') {\n        $g->part_init (\"/dev/sd$d\", 'mbr');\n        foreach my $p (@PARTITIONS) {\n            $g->part_add(\"/dev/sd$d\", @$p);\n        }\n    }\n\n    $g->md_create ('bootdev', ['/dev/sda1', '/dev/sdb1']);\n    $g->md_create ('rootdev', ['/dev/sda2', '/dev/sdb2']);\n\n    open (my $mdadm, '>', \"fedora.mdadm\") or die;\n    print $mdadm <<EOF;\nMAILADDR root\nAUTO +imsm +1.x -all\nEOF\n\n    my $i = 0;\n    foreach ('bootdev', 'rootdev') {\n        my %detail = $g->md_detail (\"/dev/md/$_\");\n        print $mdadm \"ARRAY /dev/md$i level=raid1 num-devices=2 UUID=\",\n            $detail{uuid}, \"\\n\";\n        $i++;\n    }\n\n    close ($mdadm) or die;\n\n    init_lvm_root ('/dev/md/rootdev');\n}\n\nelsif ($ENV{LAYOUT} eq 'btrfs') {\n    # Test if btrfs is available.\n    my $g2 = Sys::Guestfs->new ();\n    $g2->add_drive (\"/dev/null\");\n    $g2->launch ();\n    my $btrfs_available = $g2->feature_available ([\"btrfs\"]);\n    $g2->close ();\n\n    if (!$btrfs_available) {\n        # Btrfs not available, create an empty image.\n        push (@images, \"fedora-btrfs.img\");\n\n        unlink (\"fedora-btrfs.img\");\n        open (my $img, '>', \"fedora-btrfs.img\");\n        close ($img) or die;\n        exit 0;\n    }\n    else {\n        push (@images, \"fedora-btrfs.img-t\");\n\n        open (my $fstab, '>', \"fedora.fstab\") or die;\n        print $fstab <<EOF;\nLABEL=BOOT /boot ext2 default 0 0\nLABEL=ROOT / btrfs subvol=root 0 0\nLABEL=ROOT /home btrfs subvol=home 0 0\nEOF\n        close ($fstab) or die;\n\n        $bootdev = '/dev/sda1';\n\n        $g->disk_create (\"fedora-btrfs.img-t\", \"raw\", $IMAGE_SIZE);\n\n        $g->add_drive (\"fedora-btrfs.img-t\", format => \"raw\");\n        $g->launch ();\n\n        $g->part_init ('/dev/sda', 'mbr');\n        $g->part_add ('/dev/sda', 'p', 64, 524287);\n        $g->part_add ('/dev/sda', 'p', 524288, -64);\n\n        $g->mkfs_btrfs (['/dev/sda2'], label => 'ROOT');\n        $g->mount ('/dev/sda2', '/');\n        $g->btrfs_subvolume_create ('/root');\n        $g->btrfs_subvolume_create ('/home');\n        $g->umount ('/');\n\n        $g->mount ('btrfsvol:/dev/sda2/root', '/');\n    }\n}\n\nelsif ($ENV{LAYOUT} eq 'lvm-on-luks') {\n    push (@images, \"fedora-lvm-on-luks.img-t\");\n\n    open (my $fstab, '>', \"fedora.fstab\") or die;\n    print $fstab <<EOF;\nLABEL=BOOT /boot ext2 default 0 0\nLABEL=ROOT / ext2 default 0 0\nEOF\n    close ($fstab) or die;\n\n    $bootdev = '/dev/sda1';\n\n    $g->disk_create (\"fedora-lvm-on-luks.img-t\", \"raw\", $IMAGE_SIZE);\n\n    $g->add_drive (\"fedora-lvm-on-luks.img-t\", format => \"raw\");\n    $g->launch ();\n\n    $g->part_init ('/dev/sda', 'mbr');\n    foreach my $p (@PARTITIONS) {\n        $g->part_add('/dev/sda', @$p);\n    }\n\n    # Put LUKS on the second partition.\n    $g->luks_format ('/dev/sda2', 'FEDORA', 0);\n    $g->cryptsetup_open ('/dev/sda2', 'FEDORA', 'luks');\n\n    init_lvm_root ('/dev/mapper/luks');\n}\n\nelsif ($ENV{LAYOUT} eq 'luks-on-lvm') {\n    push (@images, \"fedora-luks-on-lvm.img-t\");\n\n    open (my $fstab, '>', \"fedora.fstab\") or die;\n    print $fstab <<EOF;\nLABEL=BOOT /boot ext2 default 0 0\nLABEL=ROOT / ext2 default 0 0\nEOF\n    close ($fstab) or die;\n\n    $bootdev = '/dev/sda1';\n\n    $g->disk_create (\"fedora-luks-on-lvm.img-t\", \"raw\", $IMAGE_SIZE);\n\n    $g->add_drive (\"fedora-luks-on-lvm.img-t\", format => \"raw\");\n    $g->launch ();\n\n    $g->part_init ('/dev/sda', 'mbr');\n    foreach my $p (@PARTITIONS) {\n        $g->part_add('/dev/sda', @$p);\n    }\n\n    # Create the Volume Group on /dev/sda2.\n    $g->pvcreate ('/dev/sda2');\n    $g->vgcreate ('Volume-Group', ['/dev/sda2']);\n    $g->lvcreate ('Root',              'Volume-Group', 256);\n    $g->lvcreate ('Logical-Volume-1',  'Volume-Group', 32);\n    $g->lvcreate ('Logical-Volume-2',  'Volume-Group', 32);\n    $g->lvcreate ('Logical-Volume-3',  'Volume-Group', 64);\n\n    # Format each Logical Group as a LUKS device, with a different password.\n    $g->luks_format ('/dev/Volume-Group/Root',              'FEDORA-Root', 0);\n    $g->luks_format ('/dev/Volume-Group/Logical-Volume-1',  'FEDORA-LV1',  0);\n    $g->luks_format ('/dev/Volume-Group/Logical-Volume-2',  'FEDORA-LV2',  0);\n    $g->luks_format ('/dev/Volume-Group/Logical-Volume-3',  'FEDORA-LV3',  0);\n\n    # Open the LUKS devices. This creates nodes like /dev/mapper/*-luks.\n    $g->cryptsetup_open ('/dev/Volume-Group/Root',\n                         'FEDORA-Root', 'Root-luks');\n    $g->cryptsetup_open ('/dev/Volume-Group/Logical-Volume-1',\n                         'FEDORA-LV1',  'LV1-luks');\n    $g->cryptsetup_open ('/dev/Volume-Group/Logical-Volume-2',\n                         'FEDORA-LV2',  'LV2-luks');\n    $g->cryptsetup_open ('/dev/Volume-Group/Logical-Volume-3',\n                         'FEDORA-LV3',  'LV3-luks');\n\n    # Phony root filesystem.\n    $g->mkfs ('ext2', '/dev/mapper/Root-luks', blocksize => 4096, label => 'ROOT');\n    $g->set_uuid ('/dev/mapper/Root-luks', '01234567-0123-0123-0123-012345678902');\n\n    # Other filesystems, just for testing findfs-label.\n    $g->mkfs ('ext2', '/dev/mapper/LV1-luks', blocksize => 4096, label => 'LV1');\n    $g->mkfs ('ext2', '/dev/mapper/LV2-luks', blocksize => 1024, label => 'LV2');\n    $g->mkfs ('ext2', '/dev/mapper/LV3-luks', blocksize => 2048, label => 'LV3');\n\n    $g->mount ('/dev/mapper/Root-luks', '/');\n}\n\nelse {\n    print STDERR \"$0: Unknown LAYOUT: \",$ENV{LAYOUT},\"\\n\";\n    exit 1;\n}\n\nsub init_lvm_root {\n    my ($rootdev) = @_;\n\n    $g->pvcreate ($rootdev);\n    $g->vgcreate ('VG', [$rootdev]);\n    $g->lvcreate ('Root', 'VG', 256);\n    $g->lvcreate ('LV1', 'VG', 32);\n    $g->lvcreate ('LV2', 'VG', 32);\n    $g->lvcreate ('LV3', 'VG', 64);\n\n    # Phony root filesystem.\n    $g->mkfs ('ext2', '/dev/VG/Root', blocksize => 4096);\n    $g->set_label ('/dev/VG/Root', 'ROOT');\n    $g->set_uuid ('/dev/VG/Root', '01234567-0123-0123-0123-012345678902');\n\n    # Other filesystems.\n    # Note that these should be empty, for testing virt-df.\n    $g->mkfs ('ext2', '/dev/VG/LV1', blocksize => 4096);\n    $g->mkfs ('ext2', '/dev/VG/LV2', blocksize => 1024);\n    $g->mkfs ('ext2', '/dev/VG/LV3', blocksize => 2048);\n\n    $g->mount ('/dev/VG/Root', '/');\n}\n\n# Phony /boot filesystem\n$g->mkfs ('ext2', $bootdev, blocksize => 4096);\n$g->set_label ($bootdev, 'BOOT');\n$g->set_uuid ($bootdev, '01234567-0123-0123-0123-012345678901');\n\n# Enough to fool inspection API.\n$g->mkdir ('/boot');\n$g->mount ($bootdev, '/boot');\n$g->mkdir ('/bin');\n$g->mkdir ('/etc');\n$g->mkdir ('/etc/sysconfig');\n$g->mkdir ('/sbin');\n$g->mkdir ('/usr');\n$g->mkdir ('/usr/share');\n$g->mkdir ('/usr/share/zoneinfo');\n$g->mkdir ('/usr/share/zoneinfo/Europe');\n$g->touch ('/usr/share/zoneinfo/Europe/London');\n$g->mkdir_p ('/var/lib/rpm');\n$g->mkdir_p ('/usr/lib/rpm');\n$g->mkdir_p ('/var/log/journal');\n\n$g->write ('/etc/shadow', \"root::15440:0:99999:7:::\\n\");\n$g->chmod (0, '/etc/shadow');\n$g->lsetxattr ('security.selinux', \"system_u:object_r:shadow_t:s0\\0\", 30,\n               '/etc/shadow');\n\n$g->upload (\"fedora.fstab\", '/etc/fstab');\n$g->write ('/etc/motd', \"Welcome to Fedora release 14 (Phony)\\n\");\n$g->write ('/etc/redhat-release', 'Fedora release 14 (Phony)');\n$g->write ('/etc/fedora-release', 'Fedora release 14 (Phony)');\n$g->write ('/etc/sysconfig/network', 'HOSTNAME=fedora.invalid');\n\nif (-f \"fedora.mdadm\") {\n    $g->upload (\"fedora.mdadm\", '/etc/mdadm.conf');\n    unlink (\"fedora.mdadm\") or die;\n}\n\n$g->upload ($ENV{SRCDIR}.'/fedora.db', '/var/lib/rpm/rpmdb.sqlite');\n$g->touch ('/usr/lib/rpm/rpmrc');\n$g->write ('/usr/lib/rpm/macros', <<EOF);\n%_dbpath /var/lib/rpm\n%_db_backend sqlite\nEOF\n\n$g->upload ($ENV{SRCDIR}.'/../binaries/bin-x86_64-dynamic', '/bin/ls');\n$g->chmod (0755, '/bin/ls');\n\n$g->tar_in ($ENV{SRCDIR}.'/fedora-journal.tar.xz', '/var/log/journal', compress => \"xz\");\n\n# NB: This is also defined in fedora.c\nmy $kver = \"5.19.0-0.rc1.14.fc37.x86_64\";\n$g->mkdir ('/boot/grub');\n$g->write ('/boot/grub/grub.conf', <<EOF);\ntitle Fedora\n    root (hd0,0)\n    kernel /vmlinuz-$kver\n    initrd /initramfs-$kver.img\nEOF\n\n$g->touch ('/etc/modprobe.conf');\n\n# Test files.\n$g->write ('/etc/test1', 'abcdefg');\n$g->write ('/etc/test2', '');\n$g->write ('/etc/test3',\n'a\nb\nc\nd\ne\nf\n');\n$g->chown (10, 11, '/etc/test3');\n$g->chmod (0600, '/etc/test3');\n$g->write ('/bin/test1', 'abcdefg');\n$g->write ('/bin/test2', 'zxcvbnm');\n$g->write ('/bin/test3', '1234567');\n$g->write ('/bin/test4', '');\n$g->ln_s ('/bin/test1', '/bin/test5');\n$g->mkfifo (0777, '/bin/test6');\n$g->mknod (0777, 10, 10, '/bin/test7');\n\n# Virt-v2v needs a /bin/sh, an RPM command and a dracut command, or at\n# least something which acts similarly to those.\n$g->upload ('fedora-static-bin', '/bin/sh');\n$g->chmod (0777, '/bin/sh');\n$g->upload ('fedora-static-bin', '/bin/rpm');\n$g->chmod (0777, '/bin/rpm');\n$g->upload ('fedora-static-bin', '/sbin/dracut');\n$g->chmod (0777, '/sbin/dracut');\n\n# Virt-v2v also needs a kernel, initrd and modules path.\n$g->touch (\"/boot/vmlinuz-$kver\");\n$g->touch (\"/boot/initramfs-$kver.img\");\n$g->mkdir_p (\"/lib/modules/$kver/kernel/drivers/block\");\n$g->upload ($ENV{SRCDIR}.'/../binaries/bin-x86_64-dynamic',\n            \"/lib/modules/$kver/kernel/drivers/block/virtio_blk.ko\");\n\n# Cleanup\n$g->shutdown ();\n$g->close ();\n\nunlink (\"fedora.fstab\") or die;\nforeach my $img (@images) {\n    $img =~ /^(.*)-t$/ or die;\n    rename ($img, $1) or die;\n}\n"
  },
  {
    "path": "test-data/phony-guests/make-guests-all-good.pl",
    "content": "#!/usr/bin/env perl\n# libguestfs\n# Copyright (C) 2013 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Make the 'guests-all-good.xml' file.\n\nuse strict;\nuse warnings;\n\nmy $outdir = `pwd`; chomp $outdir;\n\nprint <<__EOT__;\n<!--\nThis file is generated from $0.\n\nANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\n\nTo use the test guests by name, specify the following libvirt URI:\ntest://\\$(abs_builddir)/guests-all-good.xml\n\neg:\n  ./run ./df/virt-df -c test://$outdir/guests-all-good.xml\n  ./run ./align/virt-alignment-scan -c test://$outdir/guests-all-good.xml\n\nNote this differs from 'guests.xml' just in that none of these guests\nhave missing disks, etc.\n-->\n<node>\n__EOT__\n\nforeach (@ARGV) {\n    my $name = $_;\n    $name =~ s/.img//;\n\n    if (-f $_ && -s $_) {\n        print <<__EOT__;\n  <domain type='test'>\n    <name>$name</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='$outdir/$_'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n__EOT__\n    }\n}\n\nprint \"</node>\";\n"
  },
  {
    "path": "test-data/phony-guests/make-ubuntu-img.sh",
    "content": "#!/bin/bash -\n# libguestfs\n# Copyright (C) 2010 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Make an Ubuntu image which is enough to fool the inspection heuristics.\n\nexport LANG=C\nset -e\n\n# fstab file.\ncat > ubuntu.fstab <<EOF\nLABEL=BOOT /boot ext2 default 0 0\n/dev/sda2 / ext2 default 1 2\n\n# RHBZ#811872: dummy encrypted swap device\n/dev/mapper/cryptswap1 none swap sw 0 0\nEOF\n\n# lsb-release file.\ncat > ubuntu.release <<'EOF'\nDISTRIB_ID=Ubuntu\nDISTRIB_RELEASE=10.10\nDISTRIB_CODENAME=maverick\nDISTRIB_DESCRIPTION=\"Ubuntu 10.10 (Phony Pharaoh)\"\nEOF\n\n# Create a disk image.\nguestfish <<EOF\nsparse ubuntu.img-t 512M\nrun\n\n# Format the disk.\npart-init /dev/sda mbr\npart-add /dev/sda p 64     524287\npart-add /dev/sda p 524288    -64\n\n# Phony /boot filesystem.\nmkfs ext2 /dev/sda1 blocksize:4096\nset-label /dev/sda1 BOOT\nset-e2uuid /dev/sda1 01234567-0123-0123-0123-012345678901\n\n# Phony root filesystem (Ubuntu doesn't use LVM by default).\nmkfs ext2 /dev/sda2 blocksize:4096\nset-e2uuid /dev/sda2 01234567-0123-0123-0123-012345678902\n\n# Enough to fool inspection API.\nmount /dev/sda2 /\nmkdir /boot\nmount /dev/sda1 /boot\nmkdir /bin\nmkdir /etc\nmkdir /home\nmkdir /usr\nmkdir-p /var/lib/dpkg\nmkdir /var/lib/urandom\n\nupload ubuntu.fstab /etc/fstab\nwrite /etc/debian_version \"5.0.1\"\nupload ubuntu.release /etc/lsb-release\nwrite /etc/hostname \"ubuntu.invalid\"\n\nupload $SRCDIR/debian-packages /var/lib/dpkg/status\n\nupload $SRCDIR/../binaries/bin-x86_64-dynamic /bin/ls\nchmod 0755 /bin/ls\n\nmkdir /boot/grub\ntouch /boot/grub/grub.conf\nEOF\n\nrm ubuntu.fstab ubuntu.release\nmv ubuntu.img-t ubuntu.img\n"
  },
  {
    "path": "test-data/phony-guests/make-windows-img.sh",
    "content": "#!/bin/bash -\n# libguestfs\n# Copyright (C) 2010-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Make a Windows image which is enough to fool the inspection heuristics.\n\nexport LANG=C\nset -e\n\nIMAGENAME=\"$1\"\ntest -z \"$IMAGENAME\" && (echo \"Must pass image name\" ; exit 1)\n\nif [[ \"$IMAGENAME\" =~ -uefi ]]; then\n    EFI=1\n    OSNAME=${IMAGENAME%\"-uefi.img\"}\nelse\n    OSNAME=${IMAGENAME%\".img\"}\nfi\n\nSOFTWARE_REG=\"$SRCDIR/$OSNAME-software.reg.bin\"\nSYSTEM_REG=\"$SRCDIR/windows-system.reg.bin\"\n\nif [[ \"$IMAGENAME\" =~ -32 ]]; then\n    CMD_EXE=\"$SRCDIR/../binaries/bin-win32.exe\"\nelse\n    CMD_EXE=\"$SRCDIR/../binaries/bin-win64.exe\"\nfi\n\n# If the currently compiled libguestfs doesn't support\n# ntfs-3g/ntfsprogs then we cannot create a Windows phony image.\n# Nothing actually uses these images in the standard build so we can\n# just 'touch' it and emit a warning.\nif ! guestfish -a /dev/null run : available \"ntfs3g ntfsprogs\"; then\n    echo \"***\"\n    echo \"Warning: cannot create $IMAGENAME because there is no NTFS\"\n    echo \"support in this build of libguestfs.  Just touching the output\"\n    echo \"file instead.\"\n    echo \"***\"\n    touch $IMAGENAME\n    exit 0\nfi\n\n# Extra initialization required for UEFI.\nif test \"$EFI\" = \"1\"; then\n    BCD=\"$SRCDIR/windows-bcd.reg.bin\"\n    EFI_COMMANDS=\"\n# Set /dev/sda1 as the EFI system partition (ESP)\npart_set_gpt_type /dev/sda 1 C12A7328-F81F-11D2-BA4B-00A0C93EC93B\n\n# Create a boot ESP similar to Windows 11\nmount /dev/sda1 /Windows/TEMP\n\nmkdir /Windows/TEMP/EFI\nmkdir /Windows/TEMP/EFI/Boot\ntouch /Windows/TEMP/EFI/Boot/bootx64.efi\n\nmkdir /Windows/TEMP/EFI/Microsoft\nmkdir /Windows/TEMP/EFI/Microsoft/Boot\ntouch /Windows/TEMP/EFI/Microsoft/Boot/bootmgf.efi\ntouch /Windows/TEMP/EFI/Microsoft/Boot/bootmgfw.efi\nupload $BCD /Windows/TEMP/EFI/Microsoft/Boot/BCD\n\"\nfi\n\n# Create a disk image.\nguestfish <<EOF\nsparse $IMAGENAME-t 512M\nrun\n\n# Format the disk.\npart-init /dev/sda gpt\npart-add /dev/sda p 64     524287\npart-add /dev/sda p 524288    -64\n\n# Phony boot loader filesystem.\nmkfs vfat /dev/sda1\n\n# Mark this as a BIOS boot partition.  UEFI commands below\n# may override this.\npart_set_gpt_type /dev/sda 1 21686148-6449-6E6F-744E-656564454649\n\n# Phony root filesystem.\nmkfs ntfs /dev/sda2\n\n# Enough to fool inspection API.\nmount /dev/sda2 /\nmkdir-p /Windows/System32/Config\nmkdir-p /Windows/System32/Drivers\nmkdir-p /Windows/TEMP\n\nupload $SOFTWARE_REG /Windows/System32/Config/SOFTWARE\nupload $SYSTEM_REG /Windows/System32/Config/SYSTEM\n\nupload $CMD_EXE /Windows/System32/cmd.exe\n\nmkdir \"/Program Files\"\ntouch /autoexec.bat\n\n# If UEFI, put a BCD on here.\n$EFI_COMMANDS\n\nEOF\n\nmv $IMAGENAME-t $IMAGENAME\n"
  },
  {
    "path": "test-data/phony-guests/win10-software.reg",
    "content": "\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion]\n\"BaseBuildRevisionNumber\"=dword:00000001\n\"BuildBranch\"=str(1):\"rs5_release\"\n\"BuildGUID\"=str(1):\"ffffffff-ffff-ffff-ffff-ffffffffffff\"\n\"BuildLab\"=str(1):\"17763.rs5_release.180914-1434\"\n\"BuildLabEx\"=str(1):\"17763.1.amd64fre.rs5_release.180914-1434\"\n\"CompositionEditionID\"=str(1):\"EnterpriseEval\"\n\"CurrentBuild\"=str(1):\"17763\"\n\"CurrentBuildNumber\"=str(1):\"17763\"\n\"CurrentMajorVersionNumber\"=dword:0000000a\n\"CurrentMinorVersionNumber\"=dword:00000000\n\"CurrentType\"=str(1):\"Multiprocessor Free\"\n\"CurrentVersion\"=str(1):\"6.3\"\n\"DisplayVersion\"=str(1):\"23H2\"\n\"EditionID\"=str(1):\"EnterpriseEval\"\n\"EditionSubManufacturer\"=str(1):\"\"\n\"EditionSubVersion\"=str(1):\"\"\n\"EditionSubstring\"=str(1):\"\"\n\"InstallDate\"=dword:5f68c547\n\"InstallationType\"=str(1):\"Client\"\n\"PathName\"=str(1):\"C:\\Windows\"\n\"PendingInstall\"=dword:00000000\n\"ProductId\"=str(1):\"00326-10000-00000-AA831\"\n\"ProductName\"=str(1):\"Windows 10 Enterprise Evaluation\"\n\"ReleaseId\"=str(1):\"1809\"\n\"SoftwareType\"=str(1):\"System\"\n\"SystemRoot\"=str(1):\"C:\\Windows\"\n\"UBR\"=dword:00000f28\n"
  },
  {
    "path": "test-data/phony-guests/win11-software.reg",
    "content": "\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion]\n\"BaseBuildRevisionNumber\"=dword:00000001\n\"BuildBranch\"=str(1):\"ni_release\"\n\"BuildGUID\"=str(1):\"ffffffff-ffff-ffff-ffff-ffffffffffff\"\n\"BuildLab\"=str(1):\"22621.ni_release.220506-1250\"\n\"BuildLabEx\"=str(1):\"22621.1.amd64fre.ni_release.220506-1250\"\n\"CompositionEditionID\"=str(1):\"Core\"\n\"CurrentBuild\"=str(1):\"22631\"\n\"CurrentBuildNumber\"=str(1):\"22631\"\n\"CurrentMajorVersionNumber\"=dword:0000000a\n\"CurrentMinorVersionNumber\"=dword:00000000\n\"CurrentType\"=str(1):\"Multiprocessor Free\"\n\"CurrentVersion\"=str(1):\"6.3\"\n\"DisplayVersion\"=str(1):\"23H2\"\n\"EditionID\"=str(1):\"Core\"\n\"EditionSubManufacturer\"=str(1):\"\"\n\"EditionSubVersion\"=str(1):\"\"\n\"EditionSubstring\"=str(1):\"\"\n\"InstallDate\"=dword:66ec5751\n\"InstallationType\"=str(1):\"Client\"\n\"PathName\"=str(1):\"C:\\Windows\"\n\"PendingInstall\"=dword:00000000\n\"ProductId\"=str(1):\"00326-10000-00000-AA831\"\n\"ProductName\"=str(1):\"Windows 10 Home\"\n\"ReleaseId\"=str(1):\"2009\"\n\"SoftwareType\"=str(1):\"System\"\n\"SystemRoot\"=str(1):\"C:\\Windows\"\n\"UBR\"=dword:00000f28\n"
  },
  {
    "path": "test-data/phony-guests/win2k22-software.reg",
    "content": "\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion]\n\"BaseBuildRevisionNumber\"=dword:0000035b\n\"BuildBranch\"=str(1):\"fe_release\"\n\"BuildGUID\"=str(1):\"ffffffff-ffff-ffff-ffff-ffffffffffff\"\n\"BuildLab\"=str(1):\"20348.fe_release.210507-1500\"\n\"BuildLabEx\"=str(1):\"20348.1.amd64fre.fe_release.210507-1500\"\n\"CompositionEditionID\"=str(1):\"ServerStandard\"\n\"CurrentBuild\"=str(1):\"20348\"\n\"CurrentBuildNumber\"=str(1):\"20348\"\n\"CurrentMajorVersionNumber\"=dword:0000000a\n\"CurrentMinorVersionNumber\"=dword:00000000\n\"CurrentType\"=str(1):\"Multiprocessor Free\"\n\"CurrentVersion\"=str(1):\"6.3\"\n\"DisplayVersion\"=str(1):\"21H2\"\n\"EditionID\"=str(1):\"ServerStandard\"\n\"EditionSubManufacturer\"=str(1):\"\"\n\"EditionSubVersion\"=str(1):\"\"\n\"EditionSubstring\"=str(1):\"\"\n\"InstallDate\"=dword:660d8137\n\"InstallTime\"=hex(b):b1,16,64,7e,e2,85,da,01\n\"InstallationType\"=str(1):\"Server\"\n\"LCUVer\"=str(1):\"10.0.20348.1607\"\n\"PathName\"=str(1):\"C:\\Windows\"\n\"PendingInstall\"=dword:00000000\n\"ProductId\"=str(1):\"00453-60000-00000-AA671\"\n\"ProductName\"=str(1):\"Windows Server 2022 Phony Edition\"\n\"RegisteredOrganization\"=str(1):\"\"\n\"RegisteredOwner\"=str(1):\"Windows User\"\n\"ReleaseId\"=str(1):\"2009\"\n\"SoftwareType\"=str(1):\"System\"\n\"SystemRoot\"=str(1):\"C:\\Windows\"\n\"UBR\"=dword:00000647\n"
  },
  {
    "path": "test-data/phony-guests/win2k25-software.reg",
    "content": "\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion]\n\"BaseBuildRevisionNumber\"=dword:00000001\n\"BuildBranch\"=str(1):\"ge_release\"\n\"BuildGUID\"=str(1):\"ffffffff-ffff-ffff-ffff-ffffffffffff\"\n\"BuildLab\"=str(1):\"26100.ge_release.240331-1435\"\n\"BuildLabEx\"=str(1):\"26100.1.amd64fre.ge_release.240331-1435\"\n\"CompositionEditionID\"=str(1):\"ServerStandard\"\n\"CurrentBuild\"=str(1):\"26100\"\n\"CurrentBuildNumber\"=str(1):\"26100\"\n\"CurrentMajorVersionNumber\"=dword:0000000a\n\"CurrentMinorVersionNumber\"=dword:00000000\n\"CurrentType\"=str(1):\"Multiprocessor Free\"\n\"CurrentVersion\"=str(1):\"6.3\"\n\"DisplayVersion\"=str(1):\"24H2\"\n\"EditionID\"=str(1):\"ServerStandard\"\n\"EditionSubManufacturer\"=str(1):\"\"\n\"EditionSubVersion\"=str(1):\"\"\n\"EditionSubstring\"=str(1):\"\"\n\"InstallDate\"=dword:67bdfb62\n\"InstallationType\"=str(1):\"Server\"\n\"LCUVer\"=str(1):\"10.0.26100.2894\"\n\"PathName\"=str(1):\"C:\\Windows\"\n\"PendingInstall\"=dword:00000000\n\"ProductId\"=str(1):\"00492-80000-06585-AA493\"\n\"ProductName\"=str(1):\"Windows Server 2025 Phony Edition\"\n\"ReleaseId\"=str(1):\"2009\"\n\"SoftwareType\"=str(1):\"System\"\n\"SystemRoot\"=str(1):\"C:\\Windows\"\n\"UBR\"=dword:00000b4e\n"
  },
  {
    "path": "test-data/phony-guests/win7-32-software.reg",
    "content": "\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion]\n\"ProductName\"=str(1):\"Microsoft Windows 7 Phony Edition\"\n\"CurrentVersion\"=str(1):\"6.1\"\n\"InstallationType\"=str(1):\"Client\"\n"
  },
  {
    "path": "test-data/phony-guests/windows-bcd.reg",
    "content": "Windows Registry Editor Version 5.00\n\n[\\]\n\n[\\Description]\n\"GuidCache\"=hex(3):9e,aa,92,5f,f7,0a,d9,01,08,27,00,00,7c,8c,de,4e,19,0a,0e,e1,e0,00,00,00\n\"KeyName\"=hex(1):42,00,43,00,44,00,30,00,30,00,30,00,30,00,30,00,30,00,30,00,30,00,00,00\n\"System\"=dword:00000001\n\"TreatAsSystem\"=dword:00000001\n\n[\\Objects]\n\n[\\Objects\\{0ce4991b-e6b3-4b16-b23c-5e0d9250e5d9}]\n\n[\\Objects\\{0ce4991b-e6b3-4b16-b23c-5e0d9250e5d9}\\Description]\n\"Type\"=dword:20100000\n\n[\\Objects\\{0ce4991b-e6b3-4b16-b23c-5e0d9250e5d9}\\Elements]\n\n[\\Objects\\{0ce4991b-e6b3-4b16-b23c-5e0d9250e5d9}\\Elements\\16000020]\n\"Element\"=hex(3):00\n\n[\\Objects\\{1afa9c49-16ab-4a5c-901b-212802da9460}]\n\n[\\Objects\\{1afa9c49-16ab-4a5c-901b-212802da9460}\\Description]\n\"Type\"=dword:20200004\n\n[\\Objects\\{1afa9c49-16ab-4a5c-901b-212802da9460}\\Elements]\n\n[\\Objects\\{1afa9c49-16ab-4a5c-901b-212802da9460}\\Elements\\14000006]\n\"Element\"=hex(7):7b,00,37,00,65,00,61,00,32,00,65,00,31,00,61,00,63,00,2d,00,32,00,65,00,36,00,31,00,2d,00,34,00,37,00,32,00,38,00,2d,00,61,00,61,00,61,00,33,00,2d,00,38,00,39,00,36,00,64,00,39,00,64,00,30,00,61,00,39,00,66,00,30,00,65,00,7d,00,00,00,00,00\n\n[\\Objects\\{4636856e-540f-4170-a130-a84776f4c654}]\n\n[\\Objects\\{4636856e-540f-4170-a130-a84776f4c654}\\Description]\n\"Type\"=dword:20100000\n\n[\\Objects\\{4636856e-540f-4170-a130-a84776f4c654}\\Elements]\n\n[\\Objects\\{4636856e-540f-4170-a130-a84776f4c654}\\Elements\\15000011]\n\"Element\"=hex(3):04,00,00,00,00,00,00,00\n\n[\\Objects\\{5189b25c-5558-4bf2-bca4-289b11bd29e2}]\n\n[\\Objects\\{5189b25c-5558-4bf2-bca4-289b11bd29e2}\\Description]\n\"Type\"=dword:20100000\n\n[\\Objects\\{5189b25c-5558-4bf2-bca4-289b11bd29e2}\\Elements]\n\n[\\Objects\\{6efb52bf-1766-41db-a6b3-0ee5eff72bd7}]\n\n[\\Objects\\{6efb52bf-1766-41db-a6b3-0ee5eff72bd7}\\Description]\n\"Type\"=dword:20200003\n\n[\\Objects\\{6efb52bf-1766-41db-a6b3-0ee5eff72bd7}\\Elements]\n\n[\\Objects\\{6efb52bf-1766-41db-a6b3-0ee5eff72bd7}\\Elements\\14000006]\n\"Element\"=hex(7):7b,00,37,00,65,00,61,00,32,00,65,00,31,00,61,00,63,00,2d,00,32,00,65,00,36,00,31,00,2d,00,34,00,37,00,32,00,38,00,2d,00,61,00,61,00,61,00,33,00,2d,00,38,00,39,00,36,00,64,00,39,00,64,00,30,00,61,00,39,00,66,00,30,00,65,00,7d,00,00,00,7b,00,37,00,66,00,66,00,36,00,30,00,37,00,65,00,30,00,2d,00,34,00,33,00,39,00,35,00,2d,00,31,00,31,00,64,00,62,00,2d,00,62,00,30,00,64,00,65,00,2d,00,30,00,38,00,30,00,30,00,32,00,30,00,30,00,63,00,39,00,61,00,36,00,36,00,7d,00,00,00,00,00\n\n[\\Objects\\{7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}]\n\n[\\Objects\\{7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}\\Description]\n\"Type\"=dword:20100000\n\n[\\Objects\\{7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}\\Elements]\n\n[\\Objects\\{7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}\\Elements\\14000006]\n\"Element\"=hex(7):7b,00,34,00,36,00,33,00,36,00,38,00,35,00,36,00,65,00,2d,00,35,00,34,00,30,00,66,00,2d,00,34,00,31,00,37,00,30,00,2d,00,61,00,31,00,33,00,30,00,2d,00,61,00,38,00,34,00,37,00,37,00,36,00,66,00,34,00,63,00,36,00,35,00,34,00,7d,00,00,00,7b,00,30,00,63,00,65,00,34,00,39,00,39,00,31,00,62,00,2d,00,65,00,36,00,62,00,33,00,2d,00,34,00,62,00,31,00,36,00,2d,00,62,00,32,00,33,00,63,00,2d,00,35,00,65,00,30,00,64,00,39,00,32,00,35,00,30,00,65,00,35,00,64,00,39,00,7d,00,00,00,7b,00,35,00,31,00,38,00,39,00,62,00,32,00,35,00,63,00,2d,00,35,00,35,00,35,00,38,00,2d,00,34,00,62,00,66,00,32,00,2d,00,62,00,63,00,61,00,34,00,2d,00,32,00,38,00,39,00,62,00,31,00,31,00,62,00,64,00,32,00,39,00,65,00,32,00,7d,00,00,00,00,00\n\n[\\Objects\\{7ff607e0-4395-11db-b0de-0800200c9a66}]\n\n[\\Objects\\{7ff607e0-4395-11db-b0de-0800200c9a66}\\Description]\n\"Type\"=dword:20200003\n\n[\\Objects\\{7ff607e0-4395-11db-b0de-0800200c9a66}\\Elements]\n\n[\\Objects\\{7ff607e0-4395-11db-b0de-0800200c9a66}\\Elements\\250000f3]\n\"Element\"=hex(3):00,00,00,00,00,00,00,00\n\n[\\Objects\\{7ff607e0-4395-11db-b0de-0800200c9a66}\\Elements\\250000f4]\n\"Element\"=hex(3):01,00,00,00,00,00,00,00\n\n[\\Objects\\{7ff607e0-4395-11db-b0de-0800200c9a66}\\Elements\\250000f5]\n\"Element\"=hex(3):00,c2,01,00,00,00,00,00\n\n[\\Objects\\{9dd5438e-76ea-11ed-8c7c-de4e190a0ee1}]\n\n[\\Objects\\{9dd5438e-76ea-11ed-8c7c-de4e190a0ee1}\\Description]\n\"FirmwareVariable\"=hex(3):01,00,00,00,76,00,00,00,00,00,00,00,01,00,00,00,1c,00,00,00,4c,00,00,00,00,00,00,00,45,00,46,00,49,00,20,00,56,00,69,00,72,00,74,00,75,00,61,00,6c,00,20,00,64,00,69,00,73,00,6b,00,20,00,28,00,30,00,2e,00,30,00,29,00,00,00,00,00,01,00,00,00,2a,00,00,00,04,00,00,00,02,01,0c,00,d0,41,08,0a,08,00,00,00,01,01,06,00,00,00,03,02,08,00,00,00,00,00,7f,ff,04,00\n\"Type\"=dword:101fffff\n\n[\\Objects\\{9dd5438e-76ea-11ed-8c7c-de4e190a0ee1}\\Elements]\n\n[\\Objects\\{9dd5438e-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\12000004]\n\"Element\"=hex(1):45,00,46,00,49,00,20,00,56,00,69,00,72,00,74,00,75,00,61,00,6c,00,20,00,64,00,69,00,73,00,6b,00,20,00,28,00,30,00,2e,00,30,00,29,00,00,00\n\n[\\Objects\\{9dd5438f-76ea-11ed-8c7c-de4e190a0ee1}]\n\n[\\Objects\\{9dd5438f-76ea-11ed-8c7c-de4e190a0ee1}\\Description]\n\"FirmwareVariable\"=hex(3):01,00,00,00,9c,00,00,00,01,00,00,00,01,00,00,00,1c,00,00,00,70,00,00,00,00,00,00,00,45,00,46,00,49,00,20,00,56,00,4d,00,77,00,61,00,72,00,65,00,20,00,56,00,69,00,72,00,74,00,75,00,61,00,6c,00,20,00,53,00,41,00,54,00,41,00,20,00,43,00,44,00,52,00,4f,00,4d,00,20,00,44,00,72,00,69,00,76,00,65,00,20,00,28,00,30,00,2e,00,30,00,29,00,00,00,01,00,00,00,2c,00,00,00,04,00,00,00,02,01,0c,00,d0,41,08,0a,08,00,00,00,01,01,06,00,00,03,03,12,0a,00,00,00,00,00,00,00,7f,ff,04,00\n\"Type\"=dword:101fffff\n\n[\\Objects\\{9dd5438f-76ea-11ed-8c7c-de4e190a0ee1}\\Elements]\n\n[\\Objects\\{9dd5438f-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\12000004]\n\"Element\"=hex(1):45,00,46,00,49,00,20,00,56,00,4d,00,77,00,61,00,72,00,65,00,20,00,56,00,69,00,72,00,74,00,75,00,61,00,6c,00,20,00,53,00,41,00,54,00,41,00,20,00,43,00,44,00,52,00,4f,00,4d,00,20,00,44,00,72,00,69,00,76,00,65,00,20,00,28,00,30,00,2e,00,30,00,29,00,00,00\n\n[\\Objects\\{9dd54390-76ea-11ed-8c7c-de4e190a0ee1}]\n\n[\\Objects\\{9dd54390-76ea-11ed-8c7c-de4e190a0ee1}\\Description]\n\"FirmwareVariable\"=hex(3):01,00,00,00,7b,00,00,00,02,00,00,00,01,00,00,00,1c,00,00,00,34,00,00,00,00,00,00,00,45,00,46,00,49,00,20,00,4e,00,65,00,74,00,77,00,6f,00,72,00,6b,00,00,00,01,00,00,00,47,00,00,00,04,00,00,00,02,01,0c,00,d0,41,08,0a,08,00,00,00,01,01,06,00,00,01,03,0b,25,00,00,50,56,af,ca,05,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,7f,ff,04,00\n\"Type\"=dword:101fffff\n\n[\\Objects\\{9dd54390-76ea-11ed-8c7c-de4e190a0ee1}\\Elements]\n\n[\\Objects\\{9dd54390-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\12000004]\n\"Element\"=hex(1):45,00,46,00,49,00,20,00,4e,00,65,00,74,00,77,00,6f,00,72,00,6b,00,00,00\n\n[\\Objects\\{9dd54391-76ea-11ed-8c7c-de4e190a0ee1}]\n\n[\\Objects\\{9dd54391-76ea-11ed-8c7c-de4e190a0ee1}\\Description]\n\"FirmwareVariable\"=hex(3):01,00,00,00,a8,00,00,00,03,00,00,00,01,00,00,00,1c,00,00,00,6c,00,00,00,00,00,00,00,45,00,46,00,49,00,20,00,49,00,6e,00,74,00,65,00,72,00,6e,00,61,00,6c,00,20,00,53,00,68,00,65,00,6c,00,6c,00,20,00,28,00,55,00,6e,00,73,00,75,00,70,00,70,00,6f,00,72,00,74,00,65,00,64,00,20,00,6f,00,70,00,74,00,69,00,6f,00,6e,00,29,00,00,00,01,00,00,00,3c,00,00,00,04,00,00,00,01,03,18,00,0b,00,00,00,18,00,a7,0e,00,00,00,00,17,e0,07,0f,00,00,00,00,04,06,14,00,b7,d6,7a,c5,15,05,a8,40,9d,21,55,16,52,85,4e,37,7f,ff,04,00\n\"Type\"=dword:101fffff\n\n[\\Objects\\{9dd54391-76ea-11ed-8c7c-de4e190a0ee1}\\Elements]\n\n[\\Objects\\{9dd54391-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\12000004]\n\"Element\"=hex(1):45,00,46,00,49,00,20,00,49,00,6e,00,74,00,65,00,72,00,6e,00,61,00,6c,00,20,00,53,00,68,00,65,00,6c,00,6c,00,20,00,28,00,55,00,6e,00,73,00,75,00,70,00,70,00,6f,00,72,00,74,00,65,00,64,00,20,00,6f,00,70,00,74,00,69,00,6f,00,6e,00,29,00,00,00\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}]\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Description]\n\"Type\"=dword:10200004\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements]\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\11000001]\n\"Element\"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,a0,ce,81,15,ee,12,7d,4f,89,67,a2,b7,30,24,aa,e2,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\12000002]\n\"Element\"=hex(1):5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,77,00,69,00,6e,00,72,00,65,00,73,00,75,00,6d,00,65,00,2e,00,65,00,66,00,69,00,00,00\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\12000004]\n\"Element\"=hex(1):57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,52,00,65,00,73,00,75,00,6d,00,65,00,20,00,41,00,70,00,70,00,6c,00,69,00,63,00,61,00,74,00,69,00,6f,00,6e,00,00,00\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\12000005]\n\"Element\"=hex(1):65,00,6e,00,2d,00,55,00,53,00,00,00\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\14000006]\n\"Element\"=hex(7):7b,00,31,00,61,00,66,00,61,00,39,00,63,00,34,00,39,00,2d,00,31,00,36,00,61,00,62,00,2d,00,34,00,61,00,35,00,63,00,2d,00,39,00,30,00,31,00,62,00,2d,00,32,00,31,00,32,00,38,00,30,00,32,00,64,00,61,00,39,00,34,00,36,00,30,00,7d,00,00,00,00,00\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\14000008]\n\"Element\"=hex(7):7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,34,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00,00,00\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\16000009]\n\"Element\"=hex(3):01\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\16000060]\n\"Element\"=hex(3):01\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\17000077]\n\"Element\"=hex(3):75,00,00,15,00,00,00,00\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\21000001]\n\"Element\"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,a0,ce,81,15,ee,12,7d,4f,89,67,a2,b7,30,24,aa,e2,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\21000026]\n\"Element\"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,a0,ce,81,15,ee,12,7d,4f,89,67,a2,b7,30,24,aa,e2,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\22000002]\n\"Element\"=hex(1):5c,00,68,00,69,00,62,00,65,00,72,00,66,00,69,00,6c,00,2e,00,73,00,79,00,73,00,00,00\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\25000008]\n\"Element\"=hex(3):01,00,00,00,00,00,00,00\n\n[\\Objects\\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\26000006]\n\"Element\"=hex(3):00\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}]\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Description]\n\"Type\"=dword:10200003\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements]\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\11000001]\n\"Element\"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,a0,ce,81,15,ee,12,7d,4f,89,67,a2,b7,30,24,aa,e2,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\12000002]\n\"Element\"=hex(1):5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,77,00,69,00,6e,00,6c,00,6f,00,61,00,64,00,2e,00,65,00,66,00,69,00,00,00\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\12000004]\n\"Element\"=hex(1):57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,31,00,31,00,00,00\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\12000005]\n\"Element\"=hex(1):65,00,6e,00,2d,00,55,00,53,00,00,00\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\14000006]\n\"Element\"=hex(7):7b,00,36,00,65,00,66,00,62,00,35,00,32,00,62,00,66,00,2d,00,31,00,37,00,36,00,36,00,2d,00,34,00,31,00,64,00,62,00,2d,00,61,00,36,00,62,00,33,00,2d,00,30,00,65,00,65,00,35,00,65,00,66,00,66,00,37,00,32,00,62,00,64,00,37,00,7d,00,00,00,00,00\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\14000008]\n\"Element\"=hex(7):7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,34,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00,00,00\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\15000066]\n\"Element\"=hex(3):03,00,00,00,00,00,00,00\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\16000009]\n\"Element\"=hex(3):01\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\16000060]\n\"Element\"=hex(3):01\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\17000077]\n\"Element\"=hex(3):75,00,00,15,00,00,00,00\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\21000001]\n\"Element\"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,a0,ce,81,15,ee,12,7d,4f,89,67,a2,b7,30,24,aa,e2,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\22000002]\n\"Element\"=hex(1):5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,00,00\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\23000003]\n\"Element\"=hex(1):7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,32,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\25000020]\n\"Element\"=hex(3):00,00,00,00,00,00,00,00\n\n[\\Objects\\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\250000c2]\n\"Element\"=hex(3):01,00,00,00,00,00,00,00\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}]\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\\Description]\n\"Type\"=dword:10200003\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\\Elements]\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\11000001]\n\"Element\"=hex(3):95,43,d5,9d,ea,76,ed,11,8c,7c,de,4e,19,0a,0e,e1,00,00,00,00,01,00,00,00,b8,00,00,00,00,00,00,00,03,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,90,00,00,00,05,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,91,1d,b9,0e,98,0c,96,45,ac,34,97,75,03,5e,e4,a6,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,5c,00,52,00,65,00,63,00,6f,00,76,00,65,00,72,00,79,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,52,00,45,00,5c,00,57,00,69,00,6e,00,72,00,65,00,2e,00,77,00,69,00,6d,00,00,00\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\12000002]\n\"Element\"=hex(1):5c,00,77,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,77,00,69,00,6e,00,6c,00,6f,00,61,00,64,00,2e,00,65,00,66,00,69,00,00,00\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\12000004]\n\"Element\"=hex(1):57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,52,00,65,00,63,00,6f,00,76,00,65,00,72,00,79,00,20,00,45,00,6e,00,76,00,69,00,72,00,6f,00,6e,00,6d,00,65,00,6e,00,74,00,00,00,00,00\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\12000005]\n\"Element\"=hex(1):65,00,6e,00,2d,00,75,00,73,00,00,00\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\14000006]\n\"Element\"=hex(7):7b,00,36,00,65,00,66,00,62,00,35,00,32,00,62,00,66,00,2d,00,31,00,37,00,36,00,36,00,2d,00,34,00,31,00,64,00,62,00,2d,00,61,00,36,00,62,00,33,00,2d,00,30,00,65,00,65,00,35,00,65,00,66,00,66,00,37,00,32,00,62,00,64,00,37,00,7d,00,00,00,00,00\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\15000065]\n\"Element\"=hex(3):03,00,00,00,00,00,00,00\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\21000001]\n\"Element\"=hex(3):95,43,d5,9d,ea,76,ed,11,8c,7c,de,4e,19,0a,0e,e1,00,00,00,00,01,00,00,00,b8,00,00,00,00,00,00,00,03,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,90,00,00,00,05,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,91,1d,b9,0e,98,0c,96,45,ac,34,97,75,03,5e,e4,a6,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,5c,00,52,00,65,00,63,00,6f,00,76,00,65,00,72,00,79,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,52,00,45,00,5c,00,57,00,69,00,6e,00,72,00,65,00,2e,00,77,00,69,00,6d,00,00,00\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\22000002]\n\"Element\"=hex(1):5c,00,77,00,69,00,6e,00,64,00,6f,00,77,00,73,00,00,00,00,00\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\25000020]\n\"Element\"=hex(3):00,00,00,00,00,00,00,00\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\250000c2]\n\"Element\"=hex(3):01,00,00,00,00,00,00,00\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\26000022]\n\"Element\"=hex(3):01\n\n[\\Objects\\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\46000010]\n\"Element\"=hex(3):01\n\n[\\Objects\\{9dd54395-76ea-11ed-8c7c-de4e190a0ee1}]\n\n[\\Objects\\{9dd54395-76ea-11ed-8c7c-de4e190a0ee1}\\Description]\n\"Type\"=dword:30000000\n\n[\\Objects\\{9dd54395-76ea-11ed-8c7c-de4e190a0ee1}\\Elements]\n\n[\\Objects\\{9dd54395-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\12000004]\n\"Element\"=hex(1):57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,52,00,65,00,63,00,6f,00,76,00,65,00,72,00,79,00,00,00,00,00\n\n[\\Objects\\{9dd54395-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\31000003]\n\"Element\"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,91,1d,b9,0e,98,0c,96,45,ac,34,97,75,03,5e,e4,a6,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n\n[\\Objects\\{9dd54395-76ea-11ed-8c7c-de4e190a0ee1}\\Elements\\32000004]\n\"Element\"=hex(1):5c,00,52,00,65,00,63,00,6f,00,76,00,65,00,72,00,79,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,52,00,45,00,5c,00,62,00,6f,00,6f,00,74,00,2e,00,73,00,64,00,69,00,00,00\n\n[\\Objects\\{9dea862c-5cdd-4e70-acc1-f32b344d4795}]\n\n[\\Objects\\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\\Description]\n\"FirmwareVariable\"=hex(3):01,00,00,00,50,01,00,00,04,00,00,00,05,00,00,00,a4,00,00,00,d0,00,00,00,88,00,00,00,57,49,4e,44,4f,57,53,00,01,00,00,00,88,00,00,00,78,00,00,00,42,00,43,00,44,00,4f,00,42,00,4a,00,45,00,43,00,54,00,3d,00,7b,00,39,00,64,00,65,00,61,00,38,00,36,00,32,00,63,00,2d,00,35,00,63,00,64,00,64,00,2d,00,34,00,65,00,37,00,30,00,2d,00,61,00,63,00,63,00,31,00,2d,00,66,00,33,00,32,00,62,00,33,00,34,00,34,00,64,00,34,00,37,00,39,00,35,00,7d,00,00,00,33,00,01,00,00,00,10,00,00,00,04,00,00,00,7f,ff,04,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,42,00,6f,00,6f,00,74,00,20,00,4d,00,61,00,6e,00,61,00,67,00,65,00,72,00,00,00,00,00,01,00,00,00,80,00,00,00,04,00,00,00,04,01,2a,00,01,00,00,00,00,08,00,00,00,00,00,00,00,20,03,00,00,00,00,00,33,9a,cc,a9,16,a5,21,4c,88,eb,ee,d5,d2,b6,58,a3,02,02,04,04,46,00,5c,00,45,00,46,00,49,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,42,00,6f,00,6f,00,74,00,5c,00,62,00,6f,00,6f,00,74,00,6d,00,67,00,66,00,77,00,2e,00,65,00,66,00,69,00,00,00,7f,ff,04,00\n\"Type\"=dword:10100002\n\n[\\Objects\\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\\Elements]\n\n[\\Objects\\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\\Elements\\11000001]\n\"Element\"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,33,9a,cc,a9,16,a5,21,4c,88,eb,ee,d5,d2,b6,58,a3,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n\n[\\Objects\\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\\Elements\\12000002]\n\"Element\"=hex(1):5c,00,45,00,46,00,49,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,42,00,6f,00,6f,00,74,00,5c,00,62,00,6f,00,6f,00,74,00,6d,00,67,00,66,00,77,00,2e,00,65,00,66,00,69,00,00,00,00,00\n\n[\\Objects\\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\\Elements\\12000004]\n\"Element\"=hex(1):57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,42,00,6f,00,6f,00,74,00,20,00,4d,00,61,00,6e,00,61,00,67,00,65,00,72,00,00,00\n\n[\\Objects\\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\\Elements\\12000005]\n\"Element\"=hex(1):65,00,6e,00,2d,00,55,00,53,00,00,00\n\n[\\Objects\\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\\Elements\\14000006]\n\"Element\"=hex(7):7b,00,37,00,65,00,61,00,32,00,65,00,31,00,61,00,63,00,2d,00,32,00,65,00,36,00,31,00,2d,00,34,00,37,00,32,00,38,00,2d,00,61,00,61,00,61,00,33,00,2d,00,38,00,39,00,36,00,64,00,39,00,64,00,30,00,61,00,39,00,66,00,30,00,65,00,7d,00,00,00,00,00\n\n[\\Objects\\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\\Elements\\23000003]\n\"Element\"=hex(1):7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,33,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00\n\n[\\Objects\\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\\Elements\\23000006]\n\"Element\"=hex(1):7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,32,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00\n\n[\\Objects\\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\\Elements\\24000001]\n\"Element\"=hex(7):7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,33,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00,00,00\n\n[\\Objects\\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\\Elements\\24000010]\n\"Element\"=hex(7):7b,00,62,00,32,00,37,00,32,00,31,00,64,00,37,00,33,00,2d,00,31,00,64,00,62,00,34,00,2d,00,34,00,63,00,36,00,32,00,2d,00,62,00,66,00,37,00,38,00,2d,00,63,00,35,00,34,00,38,00,61,00,38,00,38,00,30,00,31,00,34,00,32,00,64,00,7d,00,00,00,00,00\n\n[\\Objects\\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\\Elements\\25000004]\n\"Element\"=hex(3):1e,00,00,00,00,00,00,00\n\n[\\Objects\\{a5a30fa2-3d06-4e9f-b5f4-a01df9d1fcba}]\n\n[\\Objects\\{a5a30fa2-3d06-4e9f-b5f4-a01df9d1fcba}\\Description]\n\"Type\"=dword:10100001\n\n[\\Objects\\{a5a30fa2-3d06-4e9f-b5f4-a01df9d1fcba}\\Elements]\n\n[\\Objects\\{a5a30fa2-3d06-4e9f-b5f4-a01df9d1fcba}\\Elements\\24000001]\n\"Element\"=hex(7):7b,00,39,00,64,00,65,00,61,00,38,00,36,00,32,00,63,00,2d,00,35,00,63,00,64,00,64,00,2d,00,34,00,65,00,37,00,30,00,2d,00,61,00,63,00,63,00,31,00,2d,00,66,00,33,00,32,00,62,00,33,00,34,00,34,00,64,00,34,00,37,00,39,00,35,00,7d,00,00,00,7b,00,39,00,64,00,64,00,35,00,34,00,33,00,38,00,65,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00,7b,00,39,00,64,00,64,00,35,00,34,00,33,00,38,00,66,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00,7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,30,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00,7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,31,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00,00,00\n\n[\\Objects\\{a5a30fa2-3d06-4e9f-b5f4-a01df9d1fcba}\\Elements\\25000004]\n\"Element\"=hex(3):02,00,00,00,00,00,00,00\n\n[\\Objects\\{b2721d73-1db4-4c62-bf78-c548a880142d}]\n\n[\\Objects\\{b2721d73-1db4-4c62-bf78-c548a880142d}\\Description]\n\"Type\"=dword:10200005\n\n[\\Objects\\{b2721d73-1db4-4c62-bf78-c548a880142d}\\Elements]\n\n[\\Objects\\{b2721d73-1db4-4c62-bf78-c548a880142d}\\Elements\\11000001]\n\"Element\"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,33,9a,cc,a9,16,a5,21,4c,88,eb,ee,d5,d2,b6,58,a3,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n\n[\\Objects\\{b2721d73-1db4-4c62-bf78-c548a880142d}\\Elements\\12000002]\n\"Element\"=hex(1):5c,00,45,00,46,00,49,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,42,00,6f,00,6f,00,74,00,5c,00,6d,00,65,00,6d,00,74,00,65,00,73,00,74,00,2e,00,65,00,66,00,69,00,00,00\n\n[\\Objects\\{b2721d73-1db4-4c62-bf78-c548a880142d}\\Elements\\12000004]\n\"Element\"=hex(1):57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,4d,00,65,00,6d,00,6f,00,72,00,79,00,20,00,44,00,69,00,61,00,67,00,6e,00,6f,00,73,00,74,00,69,00,63,00,00,00\n\n[\\Objects\\{b2721d73-1db4-4c62-bf78-c548a880142d}\\Elements\\12000005]\n\"Element\"=hex(1):65,00,6e,00,2d,00,55,00,53,00,00,00\n\n[\\Objects\\{b2721d73-1db4-4c62-bf78-c548a880142d}\\Elements\\14000006]\n\"Element\"=hex(7):7b,00,37,00,65,00,61,00,32,00,65,00,31,00,61,00,63,00,2d,00,32,00,65,00,36,00,31,00,2d,00,34,00,37,00,32,00,38,00,2d,00,61,00,61,00,61,00,33,00,2d,00,38,00,39,00,36,00,64,00,39,00,64,00,30,00,61,00,39,00,66,00,30,00,65,00,7d,00,00,00,00,00\n\n[\\Objects\\{b2721d73-1db4-4c62-bf78-c548a880142d}\\Elements\\1600000b]\n\"Element\"=hex(3):01\n\n"
  },
  {
    "path": "test-data/phony-guests/windows-software-all.reg",
    "content": "\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\test1]\n\"DisplayName\"=str(1):\"Test1 is not real software\"\n\"URLInfoAbout\"=str(1):\"http://libguestfs.org/\"\n\"DisplayVersion\"=str(1):\"1.2.3\"\n\"VersionMajor\"=dword:00000001\n\"VersionMinor\"=dword:00000002\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\test2]\n\"DisplayName\"=str(1):\"Test2 is not real software\"\n\"URLInfoAbout\"=str(1):\"http://libguestfs.org/\"\n\"DisplayVersion\"=str(1):\"1.2.4\"\n\"Comments\"=str(1):\"Longer description about phony test2 software\"\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\test3]\n\"DisplayName\"=str(1):\"Test3 is not real software\"\n\"DisplayVersion\"=str(1):\"1.2.5\"\n\"Publisher\"=str(1):\"Red Hat Inc.\"\n\"InstallLocation\"=str(1):\"C:\\\\Program Files\\\\Red Hat\\\\test3\"\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432node]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432node\\Microsoft]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432node\\Microsoft\\Windows]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432node\\Microsoft\\Windows\\CurrentVersion]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432node\\Microsoft\\Windows\\CurrentVersion\\Uninstall]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\test4]\n\"DisplayName\"=str(1):\"Test4 is not real software\"\n\"DisplayVersion\"=str(1):\"1.2.6\"\n\"Publisher\"=str(1):\"Red Hat Inc.\"\n\"Comments\"=str(1):\"WOW6432node is where 32 bit emulated apps are installed on 64 bit Windows\"\n"
  },
  {
    "path": "test-data/phony-guests/windows-system.reg",
    "content": "[HKEY_LOCAL_MACHINE\\SYSTEM\\Select]\n\"Current\"=dword:00000001\n\"Default\"=dword:00000001\n\"Failed\"=dword:00000000\n\"LastKnownGood\"=dword:00000002\n\n[HKEY_LOCAL_MACHINE\\SYSTEM\\MountedDevices]\n\"\\\\DosDevices\\\\C:\"=hex(3):31,32,33,34,00,00,00,10,00,00,00,00\n\n[HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001]\n\n[HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Services]\n\n[HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Services\\Tcpip]\n\n[HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Services\\Tcpip\\Parameters]\n\"Hostname\"=str(1):\"windows.invalid\"\n"
  },
  {
    "path": "test-data/phony-guests/winxp-32-software.reg",
    "content": "\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT]\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion]\n\"ProductName\"=str(1):\"Microsoft Windows XP Phony Edition\"\n\"CurrentVersion\"=str(1):\"5.2\"\n\"InstallationType\"=str(1):\"Client\"\n"
  },
  {
    "path": "tests/Makefile.am",
    "content": "# libguestfs tests\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nEXTRA_DIST = functions.sh.in\ncheck_DATA = functions.sh\n\n# Small utility to check for a needed libvirt version;\n# to be used in shell/script-based tests.\nnoinst_PROGRAMS = libvirt-is-version\n\nlibvirt_is_version_SOURCES = libvirt-is-version.c\n\nlibvirt_is_version_LDADD = \\\n\t$(LIBVIRT_LIBS) \\\n\t$(LTLIBINTL)\n\nlibvirt_is_version_CPPFLAGS = \\\n\t-DLOCALEBASEDIR=\\\"\"$(datadir)/locale\"\\\"\n\nlibvirt_is_version_CFLAGS = \\\n\t$(WARN_CFLAGS) $(WERROR_CFLAGS) \\\n\t$(LIBVIRT_CFLAGS)\n\n# Tests.\n\n# The virt-v2v tests here are not meant to be thorough tests of guest\n# conversion.  There is a test suite used to test conversion which is\n# kept outside libguestfs because it contains lots of proprietary\n# unredistributable guests like Windows.\n#\n# The tests here instead are testing:\n#\n# - virt-v2v command line arguments\n# - virt-v2v reads and writes files to the correct places\n# - valgrind & memory leaks\n# - any conversion properties that can be tested using just the\n#   phony guests (but we don't go out of our way here)\n# - that up to date guests don't crash virt-v2v\n\nTESTS_ENVIRONMENT = $(top_builddir)/run --test\n\nTESTS = \\\n\ttest-bad-networks-and-bridges.sh \\\n\ttest-block-driver.sh \\\n\ttest-cdrom.sh \\\n\ttest-checksum-bad.sh \\\n\ttest-checksum-good-qcow2.sh \\\n\ttest-checksum-good.sh \\\n\ttest-checksum-print.sh \\\n\ttest-customize.sh \\\n\ttest-fedora-btrfs-conversion.sh \\\n\ttest-fedora-conversion.sh \\\n\ttest-fedora-luks-on-lvm-conversion.sh \\\n\ttest-fedora-lvm-on-luks-conversion.sh \\\n\ttest-fedora-md-conversion.sh \\\n\ttest-floppy.sh \\\n\ttest-i-disk.sh \\\n\ttest-i-disk-nbd.sh \\\n\ttest-i-disk-parallel.sh \\\n\ttest-i-ova-bad-sha1.sh \\\n\ttest-i-ova-bad-sha256.sh \\\n\ttest-i-ova-directory.sh \\\n\ttest-i-ova-formats.sh \\\n\ttest-i-ova-good-checksums.sh \\\n\ttest-i-ova-gz.sh \\\n\ttest-i-ova-invalid-manifest1.sh \\\n\ttest-i-ova-invalid-manifest2.sh \\\n\ttest-i-ova-snapshots.sh \\\n\ttest-i-ova-subfolders.sh \\\n\ttest-i-ova-tar.sh \\\n\ttest-i-ova-two-disks.sh \\\n\ttest-i-ova.sh \\\n\ttest-i-vmx.sh \\\n\ttest-in-place.sh \\\n\ttest-in-place-xml.sh \\\n\ttest-inspector.sh \\\n\ttest-it-vddk-io-query.sh \\\n\ttest-mac.sh \\\n\ttest-machine-readable.sh \\\n\ttest-networks-and-bridges.sh \\\n\ttest-no-fstrim.sh \\\n\ttest-o-glance.sh \\\n\ttest-o-kubevirt-fedora.sh \\\n\ttest-o-kubevirt-oo-disk.sh \\\n\ttest-o-kubevirt-windows.sh \\\n\ttest-o-libvirt.sh \\\n\ttest-o-local-qcow2-compressed.sh \\\n\ttest-o-null.sh \\\n\ttest-o-openstack.sh \\\n\ttest-o-ovirt-upload-oo-query.sh \\\n\ttest-o-ovirt-upload.sh \\\n\ttest-o-ovirt.sh \\\n\ttest-o-qemu.sh \\\n\ttest-o-vdsm-oo-query.sh \\\n\ttest-o-vdsm-options.sh \\\n\ttest-oa-option-qcow2.sh \\\n\ttest-oa-option-raw.sh \\\n\ttest-of-option.sh \\\n\ttest-on-option.sh \\\n\ttest-open.sh \\\n\ttest-open-encrypted.sh \\\n\ttest-print-source.sh \\\n\ttest-reject-blank-disk.sh \\\n\ttest-rhbz1232192.sh \\\n\ttest-sound.sh \\\n\ttest-virtio-win-iso.sh \\\n\ttest-windows-conversion.sh \\\n\ttest-windows-uefi-conversion.sh \\\n\t$(phony_windows_scripts) \\\n\t$(SLOW_TESTS) \\\n\t$(ROOT_TESTS)\n\n# The VMDK file is used for some -i ova tests.\ncheck_DATA += windows.vmdk\nwindows.vmdk: ../test-data/phony-guests/windows.img\n\trm -f $@ $@-t\n\tif [ -s $< ]; then \\\n\t    qemu-img convert -f raw $< -O vmdk $@-t; \\\n\t    mv $@-t $@; \\\n\telse \\\n\t    $(AM_V_at)touch $@; \\\n\tfi\n\nDISTCLEANFILES += \\\n\twindows.vmdk\n\ncheck-valgrind:\n\t$(MAKE) VG=\"@VG@\" check\n\nSLOW_TESTS = \\\n\t$(real_guests_scripts) \\\n\ttest-trim.sh\n\ncheck-slow:\n\t$(MAKE) check TESTS=\"$(SLOW_TESTS)\" SLOW=1\n\nROOT_TESTS = \\\n\ttest-i-ova-as-root.sh\n\ncheck-root:\n\t$(MAKE) check TESTS=\"$(ROOT_TESTS)\"\n\n# A selection of real guests that test-conversion-of.sh will\n# try to convert.  This is only used by 'make check-slow'.\n\nreal_guests_scripts = \\\n\ttest-conversion-of-debian-6.sh \\\n\ttest-conversion-of-debian-7.sh \\\n\ttest-conversion-of-debian-8.sh \\\n\ttest-conversion-of-debian-9.sh \\\n\ttest-conversion-of-debian-10.sh \\\n\ttest-conversion-of-debian-11.sh \\\n\ttest-conversion-of-debian-12.sh \\\n\ttest-conversion-of-fedora-42.sh \\\n\ttest-conversion-of-opensuse-13.1.sh \\\n\ttest-conversion-of-opensuse-13.2.sh \\\n\ttest-conversion-of-opensuse-42.1.sh \\\n\ttest-conversion-of-rhel-5.11.sh \\\n\ttest-conversion-of-rhel-6.10.sh \\\n\ttest-conversion-of-rhel-7.9.sh \\\n\ttest-conversion-of-rhel-8.7.sh \\\n\ttest-conversion-of-rhel-9.4.sh \\\n\ttest-conversion-of-rhel-10.0.sh \\\n\ttest-conversion-of-ubuntu-16.04.sh \\\n\ttest-conversion-of-ubuntu-18.04.sh \\\n\ttest-conversion-of-ubuntu-20.04.sh \\\n\ttest-conversion-of-windows-6.2-server.sh \\\n\ttest-conversion-of-windows-6.3-server.sh \\\n\ttest-conversion-of-windows-10.0-server.sh\n\ntest-conversion-of-%.sh:\n\trm -f $@ $@-t\n\tf=`echo \"$@\" | $(SED) 's/test-conversion-of-\\(.*\\).sh/\\1/'`; \\\n\techo 'script=$@ exec $$srcdir/test-conversion-of.sh' \"$$f\" > $@-t\n\tchmod 0755 $@-t\n\tmv $@-t $@\n\nDISTCLEANFILES += \\\n\t$(real_guests_scripts)\n\nCLEANFILES += \\\n\treal-*.img \\\n\treal-*.xml\n\nphony_windows_scripts = \\\n\ttest-phony-win10.sh \\\n\ttest-phony-win11.sh \\\n\ttest-phony-win2k22.sh \\\n\ttest-phony-win2k25.sh \\\n\ttest-phony-win7-32.sh \\\n\ttest-phony-winxp-32.sh\n\ntest-phony-win%.sh: test-windows-phony.sh\n\trm -f $@ $@-t\n\tf=`echo \"$@\" | $(SED) 's/test-phony-\\(.*\\).sh/\\1/'`; \\\n\techo 'script=$@ exec $$srcdir/test-windows-phony.sh' \"$$f\" > $@-t\n\tchmod 0755 $@-t\n\tmv $@-t $@\n\nDISTCLEANFILES += \\\n\t$(phony_windows_scripts)\n\nEXTRA_DIST += \\\n\ttest-bad-networks-and-bridges.sh \\\n\ttest-block-driver.sh \\\n\ttest-cdrom.expected \\\n\ttest-cdrom.sh \\\n\ttest-checksum-bad.sh \\\n\ttest-checksum-good-qcow2.sh \\\n\ttest-checksum-good.sh \\\n\ttest-checksum-print.sh \\\n\ttest-conversion-of.sh \\\n\ttest-customize.sh \\\n\ttest-fedora-btrfs-conversion.sh \\\n\ttest-fedora-conversion.sh \\\n\ttest-fedora-luks-on-lvm-conversion.sh \\\n\ttest-fedora-lvm-on-luks-conversion.sh \\\n\ttest-fedora-md-conversion.sh \\\n\ttest-floppy.expected \\\n\ttest-floppy.sh \\\n\ttest-i-disk.sh \\\n\ttest-i-disk-nbd.sh \\\n\ttest-i-disk-parallel.sh \\\n\ttest-i-ova-as-root.ovf \\\n\ttest-i-ova-as-root.sh \\\n\ttest-i-ova-bad-sha1.sh \\\n\ttest-i-ova-bad-sha256.sh \\\n\ttest-i-ova-checksums.ovf \\\n\ttest-i-ova-directory.sh \\\n\ttest-i-ova-formats.expected \\\n\ttest-i-ova-formats.ovf \\\n\ttest-i-ova-formats.sh \\\n\ttest-i-ova-good-checksums.sh \\\n\ttest-i-ova-gz.expected \\\n\ttest-i-ova-gz.ovf \\\n\ttest-i-ova-gz.sh \\\n\ttest-i-ova-invalid-manifest1.sh \\\n\ttest-i-ova-invalid-manifest2.sh \\\n\ttest-i-ova-snapshots.expected \\\n\ttest-i-ova-snapshots.expected2 \\\n\ttest-i-ova-snapshots.ovf \\\n\ttest-i-ova-snapshots.sh \\\n\ttest-i-ova-subfolders.expected \\\n\ttest-i-ova-subfolders.expected2 \\\n\ttest-i-ova-subfolders.ovf \\\n\ttest-i-ova-subfolders.sh \\\n\ttest-i-ova-tar.expected \\\n\ttest-i-ova-tar.expected2 \\\n\ttest-i-ova-tar.ovf \\\n\ttest-i-ova-tar.sh \\\n\ttest-i-ova-two-disks.expected \\\n\ttest-i-ova-two-disks.expected2 \\\n\ttest-i-ova-two-disks.ovf \\\n\ttest-i-ova-two-disks.sh \\\n\ttest-i-ova.ovf \\\n\ttest-i-ova.sh \\\n\ttest-i-ova.xml \\\n\ttest-i-vmx-1.expected \\\n\ttest-i-vmx-1.vmx \\\n\ttest-i-vmx-2.expected \\\n\ttest-i-vmx-2.vmx \\\n\ttest-i-vmx-3.expected \\\n\ttest-i-vmx-3.vmx \\\n\ttest-i-vmx-4.expected \\\n\ttest-i-vmx-4.vmx \\\n\ttest-i-vmx-5.expected \\\n\ttest-i-vmx-5.vmx \\\n\ttest-i-vmx-6.expected \\\n\ttest-i-vmx-6.vmx \\\n\ttest-i-vmx-7.expected \\\n\ttest-i-vmx-7.vmx \\\n\ttest-i-vmx.sh \\\n\ttest-in-place.sh \\\n\ttest-in-place-xml.sh \\\n\ttest-inspector.sh \\\n\ttest-it-vddk-io-query.sh \\\n\ttest-mac-expected.xml \\\n\ttest-mac.sh \\\n\ttest-machine-readable.sh \\\n\ttest-networks-and-bridges-expected.xml \\\n\ttest-networks-and-bridges.sh \\\n\ttest-no-fstrim.sh \\\n\ttest-o-glance.sh \\\n\ttest-o-kubevirt-fedora.sh \\\n\ttest-o-kubevirt-fedora.yaml.expected \\\n\ttest-o-kubevirt-oo-disk.sh \\\n\ttest-o-kubevirt-windows.sh \\\n\ttest-o-kubevirt-windows.yaml.expected \\\n\ttest-o-libvirt.sh \\\n\ttest-o-local-qcow2-compressed.sh \\\n\ttest-o-null.sh \\\n\ttest-o-openstack.sh \\\n\ttest-o-ovirt-upload-module/imageio.py \\\n\ttest-o-ovirt-upload-module/ovirtsdk4/__init__.py \\\n\ttest-o-ovirt-upload-module/ovirtsdk4/types.py \\\n\ttest-o-ovirt-upload-oo-query.sh \\\n\ttest-o-ovirt-upload.sh \\\n\ttest-o-ovirt.ovf.expected \\\n\ttest-o-ovirt.sh \\\n\ttest-o-qemu.sh \\\n\ttest-o-vdsm-oo-query.sh \\\n\ttest-o-vdsm-options.ovf.expected \\\n\ttest-o-vdsm-options.sh \\\n\ttest-oa-option-qcow2.sh \\\n\ttest-oa-option-raw.sh \\\n\ttest-of-option.sh \\\n\ttest-on-option.sh \\\n\ttest-open.sh \\\n\ttest-open-encrypted.sh \\\n\ttest-print-source.expected \\\n\ttest-print-source.sh \\\n\ttest-phony-win10-ls.txt \\\n\ttest-phony-win11-ls.txt \\\n\ttest-phony-win2k22-ls.txt \\\n\ttest-phony-win2k25-ls.txt \\\n\ttest-phony-win7-32-ls.txt \\\n\ttest-phony-winxp-32-ls.txt \\\n\ttest-reject-blank-disk.sh \\\n\ttest-rhbz1232192.sh \\\n\ttest-sound.sh \\\n\ttest-trim.sh \\\n\ttest-virtio-win-iso.sh \\\n\ttest-windows-conversion.sh \\\n\ttest-windows-conversion-ls.txt \\\n\ttest-windows-uefi-conversion.sh \\\n\ttest-windows-phony.sh\n"
  },
  {
    "path": "tests/functions.sh.in",
    "content": "# nbdkit\n# @configure_input@\n# Copyright (C) 2017-2025 Red Hat Inc.\n#\n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions are\n# met:\n#\n# * Redistributions of source code must retain the above copyright\n# notice, this list of conditions and the following disclaimer.\n#\n# * Redistributions in binary form must reproduce the above copyright\n# notice, this list of conditions and the following disclaimer in the\n# documentation and/or other materials provided with the distribution.\n#\n# * Neither the name of Red Hat nor the names of its contributors may be\n# used to endorse or promote products derived from this software without\n# specific prior written permission.\n#\n# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND\n# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\n# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR\n# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF\n# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\n# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n# SUCH DAMAGE.\n\n# Common functions and variables used by tests.\n#\n# Most test scripts (tests/*.sh files) start with:\n#\n#   source ./functions.sh\n#   set -e\n#   set -x\n#\n#   skip_if_skipped\n\n# Various variables defined by autoconf that test scripts might want\n# to use.\nOCAMLOPT=\"@OCAMLOPT@\"\nPYCODESTYLE=\"@PYCODESTYLE@\"\nabs_srcdir=\"@abs_srcdir@\"\nabs_top_srcdir=\"@abs_top_srcdir@\"\nabs_builddir=\"@abs_builddir@\"\nabs_top_builddir=\"@abs_top_builddir@\"\n\n# List of virt-customize options, so we can skip testing these\n# options in */test-docs.sh.\nvirt_customize_options=\\\n--append-line,\\\n--chmod,\\\n--chown,\\\n--commands-from-file,\\\n--copy,\\\n--copy-in,\\\n--delete,\\\n--edit,\\\n--firstboot,\\\n--firstboot-command,\\\n--firstboot-install,\\\n--hostname,\\\n--install,\\\n--link,\\\n--mkdir,\\\n--move,\\\n--no-logfile,\\\n--no-selinux-relabel,\\\n--password,\\\n--password-crypto,\\\n--root-password,\\\n--run,\\\n--run-command,\\\n--scrub,\\\n--selinux-relabel,\\\n--ssh-inject,\\\n--tar-in,\\\n--timezone,\\\n--touch,\\\n--truncate,\\\n--truncate-recursive,\\\n--uninstall,\\\n--update,\\\n--upload,\\\n--write\n\n# cleanup_fn cmd [args]\n#\n# Run the command ‘cmd [args]’ when the test script exits.  This is\n# run in all cases when the script exits, so is a reliable way to\n# clean up test files, external processes etc.\n#\n# Examples:\n#   cleanup_fn rm -f test.out\n#   cleanup_fn kill $pid\ndeclare -a _cleanup_hook\ncleanup_fn ()\n{\n    _cleanup_hook[${#_cleanup_hook[@]}]=\"$@\"\n}\n\n_run_cleanup_hooks ()\n{\n    local _status=$? _i\n\n    set +e\n    trap '' INT QUIT TERM EXIT ERR\n    echo $0: run cleanup hooks: exit code $_status\n\n    for (( _i = 0; _i < ${#_cleanup_hook[@]}; ++_i )); do\n        ${_cleanup_hook[_i]}\n    done\n\n    exit $_status\n}\ntrap _run_cleanup_hooks INT QUIT TERM EXIT ERR\n\n# requires program [args]\n#\n# Check that ‘program [args]’ works.  If not, skip the test.\n# For example to check that qemu-img is available, do:\n#\n# requires qemu-img --version\nrequires ()\n{\n    ( \"$@\" ) </dev/null >/dev/null 2>&1 || {\n        echo \"$0: ‘$*’ failed with error code $?\"\n        echo \"$0: test prerequisite is missing or not working\"\n        exit 77\n    }\n}\n\n# Requires the current arch == $1.\nrequires_arch ()\n{\n    local m=\"$(uname -m)\"\n    case \"$1\" in\n        # Some magic happens for some architectures.\n        arm)\n            if [[ ! \"$m\" =~ ^arm ]]; then\n                echo \"$0: test skipped because the current architecture ($m) is not arm (32 bit)\"\n                exit 77\n            fi\n            ;;\n        i?86)\n            if [[ ! \"$m\" =~ ^i?86 ]]; then\n                echo \"$0: test skipped because the current architecture ($m) is not $1\"\n                exit 77\n            fi\n            ;;\n        *)\n            if [ \"$m\" != \"$1\" ]; then\n                echo \"$0: test skipped because the current architecture ($m) is not $1\"\n                exit 77\n            fi\n            ;;\n    esac\n}\n\n# Skip if $SKIP_<script_name> environment variable is set.\n# Every test should call this function first.\nskip_if_skipped ()\n{\n    local v\n    if [ -n \"$1\" ]; then\n        v=\"SKIP_$(basename $1 | tr a-z.- A-Z__)\"\n    else\n        v=\"SKIP_$(basename $0 | tr a-z.- A-Z__)\"\n    fi\n    if [ -n \"${!v}\" ]; then\n        echo \"$0: test skipped because \\$$v is set\"\n        exit 77\n    fi\n    echo \"$0: info: you can skip this test by setting $v=1\"\n}\n\n# Skip if the user is trying to run a test as root.\n# Tests shouldn't be run as root, but a few are especially dangerous.\nskip_if_root ()\n{\n    if [ \"$(id -u)\" -eq 0 ]; then\n        echo \"$0: test skipped because you're running tests as root.\"\n        echo \"$0: it is NEVER a good idea to run libguestfs tests as root.\"\n    exit 77\nfi\n}\n\n# Skip if the current arch != $1.\nskip_unless_arch ()\n{\n    local m=\"$(uname -m)\"\n    case \"$1\" in\n        # Some magic happens for some architectures.\n        arm)\n            if [[ ! \"$m\" =~ ^arm ]]; then\n                echo \"$(basename $0): test skipped because the current architecture ($m) is not arm (32 bit)\"\n                exit 77\n            fi\n            ;;\n        i?86)\n            if [[ ! \"$m\" =~ ^i?86 ]]; then\n                echo \"$(basename $0): test skipped because the current architecture ($m) is not $1\"\n                exit 77\n            fi\n            ;;\n        *)\n            if [ \"$m\" != \"$1\" ]; then\n                echo \"$(basename $0): test skipped because the current architecture ($m) is not $1\"\n                exit 77\n            fi\n            ;;\n    esac\n}\n\n# Skip if $1 is not known to virt-builder.\nskip_unless_virt_builder_guest ()\n{\n    if ! virt-builder -l \"$1\" >/dev/null 2>&1; then\n        echo \"$(basename $0): test skipped because $1 is not known to virt-builder\"\n        exit 77\n    fi\n}\n\n# Run an external command and skip if the command fails.  This can be\n# used to test if a command exists.  Normally you should use\n# `cmd --help' or `cmd --version' or similar.\nskip_unless ()\n{\n    if ! \"$@\"; then\n        echo \"$(basename $0): test skipped because $1 is not available\"\n        exit 77\n    fi\n}\n\n# Slow tests should always call this function.  (See guestfs-hacking(1)).\nslow_test ()\n{\n    if [ -z \"$SLOW\" ]; then\n        echo \"$(basename $0): use 'make check-slow' to run this test\"\n        exit 77\n    fi\n}\n\n# Root tests should always call this function.  (See guestfs-hacking(1)).\nroot_test ()\n{\n    if test \"$(id -u)\" -ne 0; then\n        echo \"$(basename $0): use 'sudo make check-root' to run this test\"\n        exit 77\n    fi\n}\n\n# These miscellaneous functions are used for testing OVAs.\ndo_md5 ()\n{\n  case \"$(uname)\" in\n    Linux)\n      md5sum \"$1\" | awk '{print $1}'\n      ;;\n    *)\n      echo \"$(basename $0): unknown method to calculate MD5 of file on $(uname)\"\n      exit 1\n      ;;\n  esac\n}\n\ndo_sha1 ()\n{\n  case \"$(uname)\" in\n    Linux)\n      sha1sum \"$1\" | awk '{print $1}'\n      ;;\n    *)\n      echo \"$(basename $0): unknown method to calculate SHA1 of file on $(uname)\"\n      exit 1\n      ;;\n  esac\n}\n\ndo_sha256 ()\n{\n  case \"$(uname)\" in\n    Linux)\n      sha256sum \"$1\" | awk '{print $1}'\n      ;;\n    *)\n      echo \"$(basename $0): unknown method to calculate SHA256 of file on $(uname)\"\n      exit 1\n      ;;\n  esac\n}\n"
  },
  {
    "path": "tests/libvirt-is-version.c",
    "content": "/* libguestfs\n * Copyright (C) 2014 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n */\n\n#include <config.h>\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <unistd.h>\n#include <errno.h>\n#include <error.h>\n#include <locale.h>\n#include <libintl.h>\n\n#include <libvirt/libvirt.h>\n\nstatic unsigned int argtoint (const char *prog, const char *arg);\n\nint\nmain (int argc, char *argv[])\n{\n  unsigned long ver;\n  unsigned int major = 0, minor = 0, release = 0;\n\n  setlocale (LC_ALL, \"\");\n  bindtextdomain (PACKAGE, LOCALEBASEDIR);\n  textdomain (PACKAGE);\n\n  switch (argc) {\n  case 4:\n    release = argtoint (argv[0], argv[3]);\n    /*FALLTHROUGH*/\n  case 3:\n    minor = argtoint (argv[0], argv[2]);\n    /*FALLTHROUGH*/\n  case 2:\n    major = argtoint (argv[0], argv[1]);\n    break;\n  case 1:\n    error (EXIT_FAILURE, 0, \"not enough arguments: MAJOR [MINOR [PATCH]]\");\n  }\n\n  virInitialize ();\n\n  if (virGetVersion (&ver, NULL, NULL) == -1)\n    exit (EXIT_FAILURE);\n\n  return ver >= (major * 1000000 + minor * 1000 + release)\n    ? EXIT_SUCCESS : EXIT_FAILURE;\n}\n\nstatic unsigned int\nargtoint (const char *prog, const char *arg)\n{\n  long int res;\n  char *endptr;\n\n  errno = 0;\n  res = strtol (arg, &endptr, 10);\n  if (errno || *endptr)\n    error (EXIT_FAILURE, 0, \"cannot parse integer argument '%s'\", arg);\n\n  return (unsigned int) res;\n}\n"
  },
  {
    "path": "tests/test-bad-networks-and-bridges.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2016 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test detection of duplicate --network and --bridge parameters.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\n# We expect all of these to print an error.  NB: LANG=C is set.\n\nfile=test-bad-networks-and-bridges.img\ntouch $file\n\ncmd=\"virt-v2v -i disk -o null $file\"\n\n$cmd -b b1 -b b1 |& grep \"duplicate -b\"\n$cmd -n n1 -n n1 |& grep \"duplicate -n\"\n$cmd -b b1 -n b1 -b b1 |& grep \"duplicate -b\"\n$cmd -b b1 -n b1 -n b2 |& grep \"duplicate -n\"\n\n$cmd -b b1:r1 -b b1:r2 |& grep \"duplicate -b\"\n$cmd -n n1:r1 -n n1:r2 |& grep \"duplicate -n\"\n\nrm $file\n\n# The -b and -n parameters are OK in these tests, but because we\n# didn't specify a disk image name on the command line it will give\n# a different error.\n\nvirt-v2v -i disk -o null |& grep \"expecting a disk image\"\nvirt-v2v -i disk -o null -b b1 |& grep \"expecting a disk image\"\nvirt-v2v -i disk -o null -n n1 |& grep \"expecting a disk image\"\nvirt-v2v -i disk -o null -b b1 -n n1 |& grep \"expecting a disk image\"\nvirt-v2v -i disk -o null -b b1:r1 -b b2 -n n1:r1 -n n2 |& grep \"expecting a disk image\"\n"
  },
  {
    "path": "tests/test-block-driver.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2023 Virtuozzo International GmbH\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test --block-driver option.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nimg_base=\"$abs_top_builddir/test-data/phony-guests/windows.img\"\nrequires test -s $img_base\nrequires bash -c 'virt-v2v --machine-readable | grep -sq block-driver-option'\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=$PWD/test-block-driver.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\nviostor_img=\"$d/viostor.qcow2\"\nvioscsi_img=\"$d/vioscsi.qcow2\"\nqemu-img create -f qcow2 -b $img_base -o compat=1.1,backing_fmt=raw $viostor_img\nqemu-img create -f qcow2 -b $img_base -o compat=1.1,backing_fmt=raw $vioscsi_img\nbase_md5=\"$(do_md5 $img_base)\"\n\nviostor_xml=\"$d/windows-viostor.xml\"\nviostor_name=windows-viostor\ncat > $viostor_xml <<EOF\n<node>\n  <domain type='test'>\n    <name>$viostor_name</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='qcow2'/>\n        <source file='$viostor_img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n</node>\nEOF\n\nvioscsi_xml=\"$d/windows-vioscsi.xml\"\nvioscsi_name=windows-vioscsi\ncat > $vioscsi_xml <<EOF\n<node>\n  <domain type='test'>\n    <name>$vioscsi_name</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='qcow2'/>\n        <source file='$vioscsi_img'/>\n        <target dev='sda' bus='scsi'/>\n      </disk>\n      <controller type='scsi' index='0' model='virtio-scsi'>\n        <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>\n      </controller>\n    </devices>\n  </domain>\n</node>\nEOF\n\nresponse=\"$d/response\"\nexpected=\"$d/expected\"\n\necho -e \"true\\ntrue\\ntrue\\ntrue\" >$expected\n\ncheck_driver_presence ()\n{\n    local img=\"$1\" drv=\"$2\"\n\n    local virtio_dir=\"/Windows/Drivers/VirtIO\"\n\n    guestfish --ro -a \"$img\" -i >$response <<-EOM\n        is-dir $virtio_dir\n        is-file $virtio_dir/$drv.cat\n        is-file $virtio_dir/$drv.inf\n        is-file $virtio_dir/$drv.sys\nEOM\n\n    diff -u $expected $response\n}\n\n# Test that --block-driver option doesn't break basic \"-i disk\" conversion\n$VG virt-v2v --debug-gc --block-driver virtio-scsi \\\n    -i disk $img_base -o local -os $d\n\n# Check that libvirt XML metadata and a disk was created.\ntest -f $d/windows.xml\ntest -f $d/windows-sda\n\n# Test in-place conversion with --block-driver specified\n#\n# Note that v2v actually copies all the drivers present in $VIRTIO_WIN, no\n# matter which block driver we specify.  The real difference comes from the\n# PCI ID values written into the registry.  Since we can't really test those\n# values, we're doing the best we can here, i.e. testing that conversion\n# doesn't break and drivers are still present with --block-driver option\n# being set explicitly.\n\n# Check that in-place conversion works with --block-driver virtio-blk\n$VG virt-v2v-in-place --debug-gc --block-driver virtio-blk \\\n    -i libvirt -ic \"test://$viostor_xml\" $viostor_name\n\ncheck_driver_presence $viostor_img \"viostor\"\n\n# Check that in-place conversion works with --block-driver virtio-scsi\n$VG virt-v2v-in-place --debug-gc --block-driver virtio-scsi \\\n    -i libvirt -ic \"test://$vioscsi_xml\" $vioscsi_name\n\ncheck_driver_presence $vioscsi_img \"vioscsi\"\n\n# Finally check that the base image remained untouched\ntest \"$base_md5\" = \"$(do_md5 $img_base)\"\n"
  },
  {
    "path": "tests/test-cdrom.expected",
    "content": "    <disk type='file' device='disk'>\n      <driver name='qemu' type='raw'/>\n      <target dev='vda' bus='virtio'/>\n      <boot order='1'/>\n    </disk>\n    <disk device='cdrom' type='file'>\n      <driver name='qemu' type='raw'/>\n      <target dev='sdc' bus='sata'/>\n    </disk>\n"
  },
  {
    "path": "tests/test-cdrom.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2015 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test cdrom dev assignment.\n# https://bugzilla.redhat.com/show_bug.cgi?id=1238053\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\nrequires test -f ../test-data/phony-guests/blank-disk.img\n\nlibvirt_uri=\"test://$abs_builddir/test-cdrom.xml\"\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=test-cdrom.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o local -os $d\n\n# Test the libvirt XML metadata was created.\ntest -f $d/windows.xml\ncat $d/windows.xml\n\n# Grab just the <disk>..</disk> output and compare it to what we\n# expect.  https://stackoverflow.com/questions/16587218\nawk '/<disk /{p=1;print;next} p&&/<\\/disk>/{p=0;print;next} ;p' \\\n    $d/windows.xml |\n    grep -v '<source file' > $d/disks\n\nif ! diff -u \"$srcdir/test-cdrom.expected\" $d/disks; then\n    echo \"$0: unexpected disk assignments\"\n    cat $d/disks\n    exit 1\nfi\n"
  },
  {
    "path": "tests/test-cdrom.xml.in",
    "content": "<!--\nlibguestfs virt-v2v tool\nCopyright (C) 2009-2025 Red Hat Inc.\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n-->\n<node>\n  <domain type='test'>\n    <name>windows</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_top_builddir@/test-data/phony-guests/windows.img'/>\n        <!-- virt-v2v should install virtio drivers and turn this\n             into dev='vda' bus='virtio' -->\n        <target dev='hda' bus='ide'/>\n      </disk>\n      <disk type='file' device='cdrom'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_top_builddir@/test-data/phony-guests/blank-disk.img'/>\n        <!-- virt-v2v should change the bus to sata, due to Windows 7\n             triggering a machine type change from i440fx to q35. Beyond that,\n             virt-v2v should preserve the on-bus index. -->\n        <target dev='hdc' bus='ide'/>\n      </disk>\n    </devices>\n  </domain>\n</node>\n"
  },
  {
    "path": "tests/test-checksum-bad.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n# Copyright (C) 2015 Parallels IP Holdings GmbH.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v-in-place with the <checksum> section.\n\nunset CDPATH\nexport LANG=C\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -f ../test-data/phony-guests/windows.img\n\nimg_base=\"$abs_top_builddir/test-data/phony-guests/windows.img\"\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=$PWD/test-checksum-bad.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\nimg=\"$d/test.img\"\nrm -f $img\ncp $img_base $img\nmd5=\"$(do_md5 $img)\"\n\nlibvirt_xml=\"$d/test.xml\"\nrm -f $libvirt_xml\ncat > $libvirt_xml <<EOF\n<domain type='kvm'>\n  <name>windows</name>\n  <memory>1048576</memory>\n  <os>\n    <type>hvm</type>\n    <boot dev='hd'/>\n  </os>\n  <devices>\n    <disk type='file' device='disk'>\n      <driver name='qemu' type='raw'/>\n      <source file='$img'/>\n      <target dev='vda' bus='virtio'/>\n      <checksum method='md5' fail='error'> 123123 </checksum>\n    </disk>\n  </devices>\n</domain>\nEOF\n\n# Expect this command to fail.\nif $VG virt-v2v-in-place --debug-gc -i libvirtxml $libvirt_xml ; then\n    echo \"ERROR: expected virt-v2v-in-place to fail with a checksum error\"\n    exit 1\nfi\n"
  },
  {
    "path": "tests/test-checksum-good-qcow2.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n# Copyright (C) 2015 Parallels IP Holdings GmbH.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v-in-place with the <checksum> section.\n#\n# This tests a qcow2 format disk to ensure that (a) we are checking\n# the content and (b) that the different (NBD-based) code path used\n# for this works.\n\nunset CDPATH\nexport LANG=C\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nimg_base=\"$abs_top_builddir/test-data/phony-guests/windows.img\"\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=$PWD/test-checksum-good-qcow2.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\nimg=\"$d/test.qcow2\"\nrm -f $img\nqemu-img create -f qcow2 -b $img_base -o compat=1.1,backing_fmt=raw  $img\nmd5=\"$(do_md5 $img_base)\"\n\nlibvirt_xml=\"$d/test.xml\"\nrm -f $libvirt_xml\ncat > $libvirt_xml <<EOF\n<domain type='kvm'>\n  <name>windows</name>\n  <memory>1048576</memory>\n  <os>\n    <type>hvm</type>\n    <boot dev='hd'/>\n  </os>\n  <devices>\n    <disk type='file' device='disk'>\n      <driver name='qemu' type='qcow2'/>\n      <source file='$img'/>\n      <target dev='vda' bus='virtio'/>\n      <checksum method='md5' fail='error'> $md5 </checksum>\n    </disk>\n  </devices>\n</domain>\nEOF\n\n$VG virt-v2v-in-place --debug-gc -i libvirtxml $libvirt_xml\n"
  },
  {
    "path": "tests/test-checksum-good.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n# Copyright (C) 2015 Parallels IP Holdings GmbH.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v-in-place with the <checksum> section.\n\nunset CDPATH\nexport LANG=C\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nimg_base=\"$abs_top_builddir/test-data/phony-guests/windows.img\"\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=$PWD/test-checksum-good.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\nimg=\"$d/test.img\"\nrm -f $img\ncp $img_base $img\nmd5=\"$(do_md5 $img)\"\n\nlibvirt_xml=\"$d/test.xml\"\nrm -f $libvirt_xml\ncat > $libvirt_xml <<EOF\n<domain type='kvm'>\n  <name>windows</name>\n  <memory>1048576</memory>\n  <os>\n    <type>hvm</type>\n    <boot dev='hd'/>\n  </os>\n  <devices>\n    <disk type='file' device='disk'>\n      <driver name='qemu' type='raw'/>\n      <source file='$img'/>\n      <target dev='vda' bus='virtio'/>\n      <checksum method='md5' fail='error'> $md5 </checksum>\n    </disk>\n  </devices>\n</domain>\nEOF\n\n$VG virt-v2v-in-place --debug-gc -i libvirtxml $libvirt_xml\n"
  },
  {
    "path": "tests/test-checksum-print.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n# Copyright (C) 2015 Parallels IP Holdings GmbH.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v-in-place with the <checksum> section.\n\nunset CDPATH\nexport LANG=C\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nimg_base=\"$abs_top_builddir/test-data/phony-guests/windows.img\"\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=$PWD/test-checksum-print.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\nimg=\"$d/test.img\"\nrm -f $img\ncp $img_base $img\nmd5=\"$(do_md5 $img)\"\n\nout=\"$d/out\"\n\nlibvirt_xml=\"$d/test.xml\"\nrm -f $libvirt_xml\ncat > $libvirt_xml <<EOF\n<domain type='kvm'>\n  <name>windows</name>\n  <memory>1048576</memory>\n  <os>\n    <type>hvm</type>\n    <boot dev='hd'/>\n  </os>\n  <devices>\n    <disk type='file' device='disk'>\n      <driver name='qemu' type='raw'/>\n      <source file='$img'/>\n      <target dev='vda' bus='virtio'/>\n      <checksum method='md5' fail='print'/>\n    </disk>\n  </devices>\n</domain>\nEOF\n\n$VG virt-v2v-in-place --debug-gc -i libvirtxml $libvirt_xml > $out\ncat $out\n\n# The checksum must appear in the output.\ngrep $md5 $out\n"
  },
  {
    "path": "tests/test-conversion-of.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v on real guests.\n\nsource ./functions.sh\nset -e\nset -x\n\nslow_test\nskip_if_skipped \"$script\"\nrequires_arch x86_64\n\nguestname=\"$1\"\nif [ -z \"$guestname\" ]; then\n    echo \"$script: guestname parameter not set, don't run this test directly.\"\n    exit 1\nfi\n\ndisk=\"real-$guestname.img\"\nxml=\"real-$guestname.xml\"\nos=\"real-$guestname.d\"\nrm -f \"$disk\" \"$xml\"\nrm -rf \"$os\"\ncleanup_fn rm -f \"$disk\" \"$xml\"\ncleanup_fn rm -rf \"$os\"\nmkdir \"$os\"\n\n# If the guest doesn't exist in virt-builder, skip.  This is because\n# we test some RHEL guests which most users won't have access to.\nskip_unless_virt_builder_guest \"$guestname\"\n\n# Some guests need special virt-builder parameters.\n# See virt-builder --notes \"$guestname\"\ndeclare -a extra\n\ncase \"$guestname\" in\n    # Don't try to update Windows versions.\n    windows*)\n        ;;\n    # Or RHEL versions as they require access to private repos.\n    rhel*)\n        ;;\n    # Debian 9+ conversions fail because grub-pc cannot be updated.\n    # Uninstall it before updating.\n    debian*)\n        extra[${#extra[*]}]='--uninstall=grub-pc'\n        extra[${#extra[*]}]='--update'\n        ;;\n    *)\n        extra[${#extra[*]}]='--update'\n        ;;\nesac\n\n# Increase the amount of memory in the virt-builder appliance.\nextra[${#extra[*]}]='--memsize=8192'\n\n# Build a guest (using virt-builder).\nvirt-builder \"$guestname\" --quiet -o \"$disk\" \"${extra[@]}\"\n\n# Create some minimal test metadata.\ncat > \"$xml\" <<EOF\n<domain type='test'>\n  <name>$guestname</name>\n  <memory>1048576</memory>\n  <os>\n    <type>hvm</type>\n    <boot dev='hd'/>\n  </os>\n  <devices>\n    <disk type='file' device='disk'>\n      <driver name='qemu' type='raw'/>\n      <source file='$(pwd)/$disk'/>\n      <target dev='vda' bus='virtio'/>\n    </disk>\n  </devices>\n</domain>\nEOF\n\nvirt-v2v --debug-gc -i libvirtxml \"$xml\" -o local -os \"$os\"\n\n# Test the libvirt XML metadata and a disk was created.\ntest -f \"$os/$guestname.xml\"\ntest -f \"$os/$guestname-sda\"\n\n# Test the libvirt XML is valid.\n# XXX This does not check bits depending on the QEMU version.\nvirt-xml-validate \"$os/$guestname.xml\"\n\n# Test the disk has a similar size to the original.\nsize_before=\"$(du $disk | awk '{print $1}')\"\nsize_after=\"$(du $os/$guestname-sda | awk '{print $1}')\"\ndiff=\"$(( 100 * size_after / size_before ))\"\nif test $diff -lt 50; then\n    echo \"$script: disk image may have been corrupted or truncated\"\n    echo \"size_before=$size_before size_after=$size_after diff=$diff\"\n    ls -l \"$disk\" \"$os/$guestname-sda\"\n    exit 1\nfi\n"
  },
  {
    "path": "tests/test-customize.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2024 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-customize options of virt-v2v.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nfedora=../test-data/phony-guests/fedora.img\nrequires test -f $fedora\n\nd=test-customize.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i disk $fedora \\\n    --upload Makefile.am:/file1 \\\n    --append-line '/etc/fstab:# this is a new comment' \\\n    -o local -os $d\n\n# Test the file was uploaded into the image.\nguestfish --ro -a $d/fedora-sda -i cat /file1\n"
  },
  {
    "path": "tests/test-fedora-btrfs-conversion.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v (Phony) Fedora conversion.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nf=../test-data/phony-guests/fedora-btrfs.img\nrequires test -f $f\nrequires test -s $f\n\n$VG virt-v2v --debug-gc -i disk $f -o null\n"
  },
  {
    "path": "tests/test-fedora-conversion.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v (Phony) Fedora conversion.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nf=../test-data/phony-guests/fedora.img\nrequires test -f $f\n\n$VG virt-v2v --debug-gc -i disk $f -o null\n"
  },
  {
    "path": "tests/test-fedora-luks-on-lvm-conversion.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v (Phony) Fedora conversion.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nf=../test-data/phony-guests/fedora-luks-on-lvm.img\nrequires test -f $f\n\nkeys=(--key /dev/Volume-Group/Root:key:FEDORA-Root\n      --key /dev/Volume-Group/Logical-Volume-1:key:FEDORA-LV1\n      --key /dev/Volume-Group/Logical-Volume-2:key:FEDORA-LV2\n      --key /dev/Volume-Group/Logical-Volume-3:key:FEDORA-LV3)\n\n$VG virt-v2v --debug-gc -i disk $f -o null \"${keys[@]}\"\n\nkeys=(--key all:key:FEDORA-Root\n      --key all:key:FEDORA-LV1\n      --key all:key:FEDORA-LV2\n      --key all:key:FEDORA-LV3)\n\n$VG virt-v2v --debug-gc -i disk $f -o null \"${keys[@]}\"\n\nkeys=(--key /dev/mapper/Volume--Group-Root:key:FEDORA-Root\n      --key /dev/mapper/Volume--Group-Logical--Volume--1:key:FEDORA-LV1\n      --key /dev/mapper/Volume--Group-Logical--Volume--2:key:FEDORA-LV2\n      --key /dev/mapper/Volume--Group-Logical--Volume--3:key:FEDORA-LV3)\n\n$VG virt-v2v --debug-gc -i disk $f -o null \"${keys[@]}\"\n"
  },
  {
    "path": "tests/test-fedora-lvm-on-luks-conversion.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v (Phony) Fedora conversion.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nf=../test-data/phony-guests/fedora-lvm-on-luks.img\nrequires test -f $f\n\n# The disk is encrypted with password \"FEDORA\".\n$VG virt-v2v --debug-gc -i disk $f -o null --key /dev/sda2:key:FEDORA\n"
  },
  {
    "path": "tests/test-fedora-md-conversion.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v (Phony) Fedora conversion.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nf1=../test-data/phony-guests/fedora-md1.img\nrequires test -f $f1\nf2=../test-data/phony-guests/fedora-md2.img\nrequires test -f $f2\n\n$VG virt-v2v --debug-gc -i disk $f1 $f2 -o null\n"
  },
  {
    "path": "tests/test-floppy.expected",
    "content": "    <disk type='file' device='disk'>\n      <driver name='qemu' type='raw'/>\n      <target dev='vda' bus='virtio'/>\n      <boot order='1'/>\n    </disk>\n    <disk device='floppy' type='file'>\n      <driver name='qemu' type='raw'/>\n      <target dev='fda'/>\n    </disk>\n"
  },
  {
    "path": "tests/test-floppy.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2015-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test converting a guest with a floppy disk.\n# https://bugzilla.redhat.com/show_bug.cgi?id=1309706\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\nrequires test -f ../test-data/phony-guests/blank-disk.img\n\nlibvirt_uri=\"test://$abs_builddir/test-floppy.xml\"\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=test-floppy.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o local -os $d\n\n# Test the libvirt XML metadata was created.\ntest -f $d/windows.xml\ncat $d/windows.xml\n\n# Grab just the <disk>..</disk> output and compare it to what we\n# expect.  https://stackoverflow.com/questions/16587218\nawk '/<disk /{p=1;print;next} p&&/<\\/disk>/{p=0;print;next} ;p' \\\n    $d/windows.xml |\n    grep -v '<source file' > $d/disks\n\nif ! diff -u \"$srcdir/test-floppy.expected\" $d/disks; then\n    echo \"$0: unexpected disk assignments\"\n    cat $d/disks\n    exit 1\nfi\n"
  },
  {
    "path": "tests/test-floppy.xml.in",
    "content": "<!--\nlibguestfs virt-v2v tool\nCopyright (C) 2009-2025 Red Hat Inc.\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n-->\n<node>\n  <domain type='test'>\n    <name>windows</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_top_builddir@/test-data/phony-guests/windows.img'/>\n        <!-- virt-v2v should install virtio drivers and turn this\n             into dev='vda' bus='virtio' -->\n        <target dev='hda' bus='ide'/>\n      </disk>\n      <disk type='file' device='floppy'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_top_builddir@/test-data/phony-guests/blank-disk.img'/>\n        <target dev='fda' />\n      </disk>\n    </devices>\n  </domain>\n</node>\n"
  },
  {
    "path": "tests/test-i-disk-nbd.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i disk with nbd URIs.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\nb=fedora.img\nf=../test-data/phony-guests/$b\nrequires test -f $f\n\nrequires xz --version\n\n# Check we have nbdkit and the plugins and filters required.\nrequires nbdkit --version\nrequires nbdkit file --version\nrequires nbdkit nbd --version\nrequires nbdkit null --version\nrequires nbdkit null --filter=cow --version\nrequires nbdkit null --filter=xz --version\n\n# Check --exit-with-parent option will work.\nrequires nbdkit --exit-with-parent --version\n\nd=test-i-disk-nbd.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\ncp $f $d/$b\nxz $d/$b\n\n# Start nbdkit connected to the compressed file.\nnbdkit -r -f --exit-with-parent \\\n       -U $d/sock -P $d/pid \\\n       --filter=xz file $d/$b.xz &\n\n# Wait for the pidfile to appear.\nfor i in {1..60}; do\n    if test -s \"$d/pid\"; then\n        break\n    fi\n    sleep 1\ndone\nif ! test -s \"$d/pid\"; then\n    echo \"$0: nbdkit: PID file $d/pid was not created\"\n    exit 1\nfi\ncleanup_fn kill \"$(cat $d/pid)\"\n\n$VG virt-v2v --debug-gc \\\n    -i disk nbd+unix:///?socket=$d/sock \\\n    -o local -os $d\n\n# Test the libvirt XML metadata and a disk was created.\ntest -f $d/unknown.xml\ntest -f $d/unknown-sda\n\ncat $d/unknown.xml\n"
  },
  {
    "path": "tests/test-i-disk-parallel.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test --parallel option.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nwindows=../test-data/phony-guests/windows.img\nrequires test -s $windows\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-i-disk-parallel.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\ntruncate -s $((100*1024*1024)) $d/disk-2.img $d/disk-3.img $d/disk-4.img\n\n$VG virt-v2v --debug-gc \\\n    --parallel=2 \\\n    -i disk \\\n    $windows \\\n    $d/disk-2.img \\\n    $d/disk-3.img \\\n    $d/disk-4.img \\\n    -o local -os $d\n\n# Test the libvirt XML metadata and output disks were created.\ntest -f $d/windows.xml\ntest -f $d/windows-sda\ntest -f $d/windows-sdb\ntest -f $d/windows-sdc\ntest -f $d/windows-sdd\n\ncat $d/windows.xml\n"
  },
  {
    "path": "tests/test-i-disk.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i disk option.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-i-disk.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i disk ../test-data/phony-guests/windows.img \\\n    -o local -os $d\n\n# Test the libvirt XML metadata and a disk was created.\ntest -f $d/windows.xml\ntest -f $d/windows-sda\n\ncat $d/windows.xml\n"
  },
  {
    "path": "tests/test-i-ova-as-root.ovf",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<Envelope xmlns=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:cim=\"http://schemas.dmtf.org/wbem/wscim/1/common\" xmlns:ovf=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:rasd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData\" xmlns:vssd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n  <References>\r\n    <File ovf:href=\"disk.vmdk\" ovf:id=\"file1\" ovf:size=\"4063232\" />\r\n  </References>\r\n  <DiskSection>\r\n    <Info>Virtual disk information</Info>\r\n    <Disk ovf:capacity=\"512\" ovf:capacityAllocationUnits=\"byte * 2^20\" ovf:diskId=\"vmdisk1\" ovf:fileRef=\"file1\" />\r\n  </DiskSection>\r\n  <VirtualSystem ovf:id=\"ova-test\">\r\n    <Info>A virtual machine</Info>\r\n    <Name>ova-test</Name>\r\n    <OperatingSystemSection ovf:id=\"69\">\r\n      <Info>The kind of installed guest operating system</Info>\r\n      <Description>Microsoft Windows Server 2003 (32-bit)</Description>\r\n    </OperatingSystemSection>\r\n    <VirtualHardwareSection>\r\n      <Info>Virtual hardware requirements</Info>\r\n      <System>\r\n        <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>\r\n        <vssd:InstanceID>0</vssd:InstanceID>\r\n        <vssd:VirtualSystemIdentifier>ova-test</vssd:VirtualSystemIdentifier>\r\n        <vssd:VirtualSystemType>vmx-08</vssd:VirtualSystemType>\r\n      </System>\r\n      <Item>\r\n        <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>\r\n        <rasd:Description>Number of Virtual CPUs</rasd:Description>\r\n        <rasd:ElementName>2 virtual CPU(s)</rasd:ElementName>\r\n        <rasd:InstanceID>1</rasd:InstanceID>\r\n        <rasd:ResourceType>3</rasd:ResourceType>\r\n        <rasd:VirtualQuantity>2</rasd:VirtualQuantity>\r\n      </Item>\r\n      <Item>\r\n        <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>\r\n        <rasd:Description>Memory Size</rasd:Description>\r\n        <rasd:ElementName>4096MB of memory</rasd:ElementName>\r\n        <rasd:InstanceID>2</rasd:InstanceID>\r\n        <rasd:ResourceType>4</rasd:ResourceType>\r\n        <rasd:VirtualQuantity>4096</rasd:VirtualQuantity>\r\n      </Item>\r\n      <Item>\r\n        <rasd:Address>0</rasd:Address>\r\n        <rasd:Description>SCSI Controller</rasd:Description>\r\n        <rasd:ElementName>SCSI controller 0</rasd:ElementName>\r\n        <rasd:InstanceID>3</rasd:InstanceID>\r\n        <rasd:ResourceSubType>lsilogic</rasd:ResourceSubType>\r\n        <rasd:ResourceType>6</rasd:ResourceType>\r\n      </Item>\r\n      <Item>\r\n        <rasd:Address>1</rasd:Address>\r\n        <rasd:Description>IDE Controller</rasd:Description>\r\n        <rasd:ElementName>IDE 1</rasd:ElementName>\r\n        <rasd:InstanceID>4</rasd:InstanceID>\r\n        <rasd:ResourceType>5</rasd:ResourceType>\r\n      </Item>\r\n      <Item>\r\n        <rasd:Address>0</rasd:Address>\r\n        <rasd:Description>IDE Controller</rasd:Description>\r\n        <rasd:ElementName>IDE 0</rasd:ElementName>\r\n        <rasd:InstanceID>5</rasd:InstanceID>\r\n        <rasd:ResourceType>5</rasd:ResourceType>\r\n      </Item>\r\n      <Item ovf:required=\"false\">\r\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\r\n        <rasd:ElementName>Video card</rasd:ElementName>\r\n        <rasd:InstanceID>6</rasd:InstanceID>\r\n        <rasd:ResourceType>24</rasd:ResourceType>\r\n      </Item>\r\n      <Item ovf:required=\"false\">\r\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\r\n        <rasd:ElementName>VMCI device</rasd:ElementName>\r\n        <rasd:InstanceID>7</rasd:InstanceID>\r\n        <rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>\r\n        <rasd:ResourceType>1</rasd:ResourceType>\r\n      </Item>\r\n      <Item ovf:required=\"false\">\r\n        <rasd:AddressOnParent>1</rasd:AddressOnParent>\r\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\r\n        <rasd:ElementName>CD/DVD drive 1</rasd:ElementName>\r\n        <rasd:InstanceID>8</rasd:InstanceID>\r\n        <rasd:Parent>4</rasd:Parent>\r\n        <rasd:ResourceSubType>vmware.cdrom.remotepassthrough</rasd:ResourceSubType>\r\n        <rasd:ResourceType>15</rasd:ResourceType>\r\n      </Item>\r\n      <Item>\r\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\r\n        <rasd:ElementName>Hard disk 1</rasd:ElementName>\r\n        <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>\r\n        <rasd:InstanceID>9</rasd:InstanceID>\r\n        <rasd:Parent>3</rasd:Parent>\r\n        <rasd:ResourceType>17</rasd:ResourceType>\r\n      </Item>\r\n    </VirtualHardwareSection>\r\n  </VirtualSystem>\r\n</Envelope>\r\n"
  },
  {
    "path": "tests/test-i-ova-as-root.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2017 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Regression test for the case where a OVA file is only readable as\n# root.  Because libvirt runs qemu as qemu.qemu in this case, qemu\n# cannot open the OVA file.  See:\n# https://bugzilla.redhat.com/show_bug.cgi?id=1375157#c6\n# https://bugzilla.redhat.com/show_bug.cgi?id=1430680\n\nsource ./functions.sh\nset -e\nset -x\n\nroot_test\nskip_if_skipped\nrequires test -f ../test-data/phony-guests/windows.img\n\n# Originally this test was only run on libvirt, but we may as\n# well run it with all backends.\n#skip_unless_backend libvirt\n\nif [ ! -f windows.vmdk -o ! -s windows.vmdk ]; then\n    echo \"$0: test skipped because windows.vmdk was not created\"\n    exit 77\nfi\n\nexport VIRT_TOOLS_DATA_DIR=\"$abs_srcdir/../test-data/fake-virt-tools\"\n\nd=test-i-ova-as-root.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\npushd $d\n\n# Create the test OVA.\ncp \"$abs_srcdir/test-i-ova-as-root.ovf\" test.ovf\ncp ../windows.vmdk disk.vmdk\n\necho \"SHA1(test.ovf)=\" `do_sha1 test.ovf` > test.mf\necho \"SHA1(disk.vmdk)=\" `do_sha1 disk.vmdk` >> test.mf\n\ntar cf test.ova test.ovf disk.vmdk test.mf\n\n# So it's unreadable by non-root.\nchown root.root test.ova\nchmod 0600 test.ova\n\n# Run virt-v2v.\n$VG virt-v2v --debug-gc --quiet \\\n    -i ova test.ova \\\n    -o null\n\npopd\n"
  },
  {
    "path": "tests/test-i-ova-bad-sha1.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i ova option with a good manifest containing a bad SHA1 checksum.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -f ../test-data/phony-guests/windows.img\n\nif [ ! -f windows.vmdk -o ! -s windows.vmdk ]; then\n    echo \"$0: test skipped because windows.vmdk was not created\"\n    exit 77\nfi\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-i-ova-bad-sha1.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\npushd $d\n\n# Create the test OVA.\ncp \"$abs_srcdir/test-i-ova-checksums.ovf\" test.ovf\ncp ../windows.vmdk disk.vmdk\necho \"SHA1(test.ovf)=\" `do_sha1 test.ovf` > test.mf\nsha1=`do_sha1 disk.vmdk | tr '0-5a-f6789' 'a-f0-58967'`\necho \"SHA1(disk.vmdk)=\" $sha1 >> test.mf\ntar cf test.ova test.ovf disk.vmdk test.mf\n\n# Run virt-v2v but only as far as the --print-source stage.\n# It is expected to fail with an error.\nif $VG virt-v2v --debug-gc --quiet \\\n       -i ova test.ova \\\n       --print-source >test.out 2>&1; then\n    cat test.out\n    echo \"$0: expected virt-v2v to fail, but it succeeded\"\n    exit 1\nfi\ncat test.out\nif ! grep \"error: -i ova: corrupt OVA\" test.out\nthen\n    echo \"$0: did not see the expected error in the output of virt-v2v\"\n    exit 1\nfi\n\npopd\n"
  },
  {
    "path": "tests/test-i-ova-bad-sha256.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i ova option with a good manifest containing a bad SHA256 checksum.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -f ../test-data/phony-guests/windows.img\n\nif [ ! -f windows.vmdk -o ! -s windows.vmdk ]; then\n    echo \"$0: test skipped because windows.vmdk was not created\"\n    exit 77\nfi\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-i-ova-bad-sha256.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\npushd $d\n\n# Create the test OVA.\ncp \"$abs_srcdir/test-i-ova-checksums.ovf\" test.ovf\ncp ../windows.vmdk disk.vmdk\necho \"SHA256(test.ovf)=\" `do_sha256 test.ovf` > test.mf\nsha256=`do_sha256 disk.vmdk | tr '0-5a-f6789' 'a-f0-58967'`\necho \"SHA256(disk.vmdk)=\" $sha256 >> test.mf\ntar cf test.ova test.ovf disk.vmdk test.mf\n\n# Run virt-v2v but only as far as the --print-source stage.\n# It is expected to fail with an error.\nif $VG virt-v2v --debug-gc --quiet \\\n       -i ova test.ova \\\n       --print-source >test.out 2>&1; then\n    cat test.out\n    echo \"$0: expected virt-v2v to fail, but it succeeded\"\n    exit 1\nfi\ncat test.out\nif ! grep \"error: -i ova: corrupt OVA\" test.out\nthen\n    echo \"$0: did not see the expected error in the output of virt-v2v\"\n    exit 1\nfi\n\npopd\n"
  },
  {
    "path": "tests/test-i-ova-checksums.ovf",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<Envelope xmlns=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:cim=\"http://schemas.dmtf.org/wbem/wscim/1/common\" xmlns:ovf=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:rasd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData\" xmlns:vssd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n  <References>\r\n    <File ovf:href=\"disk.vmdk\" ovf:id=\"file1\" ovf:size=\"4063232\" />\r\n  </References>\r\n  <DiskSection>\r\n    <Info>Virtual disk information</Info>\r\n    <Disk ovf:capacity=\"512\" ovf:capacityAllocationUnits=\"byte * 2^20\" ovf:diskId=\"vmdisk1\" ovf:fileRef=\"file1\" />\r\n  </DiskSection>\r\n  <VirtualSystem ovf:id=\"ova-test\">\r\n    <Info>A virtual machine</Info>\r\n    <Name>ova-test</Name>\r\n    <OperatingSystemSection ovf:id=\"69\">\r\n      <Info>The kind of installed guest operating system</Info>\r\n      <Description>Microsoft Windows Server 2003 (32-bit)</Description>\r\n    </OperatingSystemSection>\r\n    <VirtualHardwareSection>\r\n      <Info>Virtual hardware requirements</Info>\r\n      <System>\r\n        <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>\r\n        <vssd:InstanceID>0</vssd:InstanceID>\r\n        <vssd:VirtualSystemIdentifier>ova-test</vssd:VirtualSystemIdentifier>\r\n        <vssd:VirtualSystemType>vmx-08</vssd:VirtualSystemType>\r\n      </System>\r\n      <Item>\r\n        <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>\r\n        <rasd:Description>Number of Virtual CPUs</rasd:Description>\r\n        <rasd:ElementName>2 virtual CPU(s)</rasd:ElementName>\r\n        <rasd:InstanceID>1</rasd:InstanceID>\r\n        <rasd:ResourceType>3</rasd:ResourceType>\r\n        <rasd:VirtualQuantity>2</rasd:VirtualQuantity>\r\n      </Item>\r\n      <Item>\r\n        <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>\r\n        <rasd:Description>Memory Size</rasd:Description>\r\n        <rasd:ElementName>4096MB of memory</rasd:ElementName>\r\n        <rasd:InstanceID>2</rasd:InstanceID>\r\n        <rasd:ResourceType>4</rasd:ResourceType>\r\n        <rasd:VirtualQuantity>4096</rasd:VirtualQuantity>\r\n      </Item>\r\n      <Item>\r\n        <rasd:Address>0</rasd:Address>\r\n        <rasd:Description>SCSI Controller</rasd:Description>\r\n        <rasd:ElementName>SCSI controller 0</rasd:ElementName>\r\n        <rasd:InstanceID>3</rasd:InstanceID>\r\n        <rasd:ResourceSubType>lsilogic</rasd:ResourceSubType>\r\n        <rasd:ResourceType>6</rasd:ResourceType>\r\n      </Item>\r\n      <Item>\r\n        <rasd:Address>1</rasd:Address>\r\n        <rasd:Description>IDE Controller</rasd:Description>\r\n        <rasd:ElementName>IDE 1</rasd:ElementName>\r\n        <rasd:InstanceID>4</rasd:InstanceID>\r\n        <rasd:ResourceType>5</rasd:ResourceType>\r\n      </Item>\r\n      <Item>\r\n        <rasd:Address>0</rasd:Address>\r\n        <rasd:Description>IDE Controller</rasd:Description>\r\n        <rasd:ElementName>IDE 0</rasd:ElementName>\r\n        <rasd:InstanceID>5</rasd:InstanceID>\r\n        <rasd:ResourceType>5</rasd:ResourceType>\r\n      </Item>\r\n      <Item ovf:required=\"false\">\r\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\r\n        <rasd:ElementName>Video card</rasd:ElementName>\r\n        <rasd:InstanceID>6</rasd:InstanceID>\r\n        <rasd:ResourceType>24</rasd:ResourceType>\r\n      </Item>\r\n      <Item ovf:required=\"false\">\r\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\r\n        <rasd:ElementName>VMCI device</rasd:ElementName>\r\n        <rasd:InstanceID>7</rasd:InstanceID>\r\n        <rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>\r\n        <rasd:ResourceType>1</rasd:ResourceType>\r\n      </Item>\r\n      <Item ovf:required=\"false\">\r\n        <rasd:AddressOnParent>1</rasd:AddressOnParent>\r\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\r\n        <rasd:ElementName>CD/DVD drive 1</rasd:ElementName>\r\n        <rasd:InstanceID>8</rasd:InstanceID>\r\n        <rasd:Parent>4</rasd:Parent>\r\n        <rasd:ResourceSubType>vmware.cdrom.remotepassthrough</rasd:ResourceSubType>\r\n        <rasd:ResourceType>15</rasd:ResourceType>\r\n      </Item>\r\n      <Item>\r\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\r\n        <rasd:ElementName>Hard disk 1</rasd:ElementName>\r\n        <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>\r\n        <rasd:InstanceID>9</rasd:InstanceID>\r\n        <rasd:Parent>3</rasd:Parent>\r\n        <rasd:ResourceType>17</rasd:ResourceType>\r\n      </Item>\r\n    </VirtualHardwareSection>\r\n  </VirtualSystem>\r\n</Envelope>\r\n"
  },
  {
    "path": "tests/test-i-ova-directory.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i ova option with a directory.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nf=../test-data/phony-guests/windows.img\nrequires test -f $f\nrequires test -s $f\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=test-i-ova-directory.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\nvmdk=test-ova.vmdk\novf=test-i-ova.ovf\nmf=test-ova.mf\n\nqemu-img convert $f -O vmdk $d/$vmdk\ncp \"$srcdir/$ovf\" $d/$ovf\nsha1=`do_sha1 $d/$ovf`\necho \"SHA1($ovf)= $sha1\" > $d/$mf\nsha256=`do_sha256 $d/$vmdk`\necho \"SHA256($vmdk)= $sha256\" >> $d/$mf\n\n$VG virt-v2v --debug-gc \\\n    -i ova $d \\\n    -o null\n"
  },
  {
    "path": "tests/test-i-ova-formats.expected",
    "content": "Source guest information (--print-source option):\n\n    source name: 2K8R2EESP1_2_Medium\nhypervisor type: vmware\n       VM genid: \n         memory: 1073741824 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: uefi\nUEFI secureboot: false\n        display: \n          sound: \ndisks:\n\t0 [scsi]\nremovable media:\n\tCD-ROM [ide] in slot 0\nNICs:\n\tBridge \"PG-VLAN60\" [e1000]\n\n"
  },
  {
    "path": "tests/test-i-ova-formats.ovf",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Envelope vmw:buildId=\"build-1750787\" xmlns=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:cim=\"http://schemas.dmtf.org/wbem/wscim/1/common\" xmlns:ovf=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:rasd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData\" xmlns:vmw=\"http://www.vmware.com/schema/ovf\" xmlns:vssd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n  <References>\n    <File ovf:href=\"disk1.vmdk\" ovf:id=\"file1\" ovf:size=\"7804077568\"/>\n  </References>\n  <DiskSection>\n    <Info>Virtual disk information</Info>\n    <Disk ovf:capacity=\"50\" ovf:capacityAllocationUnits=\"byte * 2^30\" ovf:diskId=\"vmdisk1\" ovf:fileRef=\"file1\" ovf:format=\"http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized\" ovf:populatedSize=\"18975752192\"/>\n  </DiskSection>\n  <NetworkSection>\n    <Info>The list of logical networks</Info>\n    <Network ovf:name=\"PG-VLAN60\">\n      <Description>The PG-VLAN60 network</Description>\n    </Network>\n  </NetworkSection>\n  <VirtualSystem ovf:id=\"2K8R2EESP1_2_Medium\">\n    <Info>A virtual machine</Info>\n    <Name>2K8R2EESP1_2_Medium</Name>\n    <OperatingSystemSection ovf:id=\"103\" vmw:osType=\"windows7Server64Guest\">\n      <Info>The kind of installed guest operating system</Info>\n      <Description>Microsoft Windows Server 2008 R2 (64-bit)</Description>\n    </OperatingSystemSection>\n    <VirtualHardwareSection>\n      <Info>Virtual hardware requirements</Info>\n      <System>\n        <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>\n        <vssd:InstanceID>0</vssd:InstanceID>\n        <vssd:VirtualSystemIdentifier>2K8R2EESP1_2_Medium</vssd:VirtualSystemIdentifier>\n        <vssd:VirtualSystemType>vmx-10</vssd:VirtualSystemType>\n      </System>\n      <Item>\n        <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>\n        <rasd:Description>Number of Virtual CPUs</rasd:Description>\n        <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>\n        <rasd:InstanceID>1</rasd:InstanceID>\n        <rasd:ResourceType>3</rasd:ResourceType>\n        <rasd:VirtualQuantity>1</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>\n        <rasd:Description>Memory Size</rasd:Description>\n        <rasd:ElementName>1024MB of memory</rasd:ElementName>\n        <rasd:InstanceID>2</rasd:InstanceID>\n        <rasd:ResourceType>4</rasd:ResourceType>\n        <rasd:VirtualQuantity>1024</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:Address>0</rasd:Address>\n        <rasd:Description>SCSI Controller</rasd:Description>\n        <rasd:ElementName>SCSI controller 0</rasd:ElementName>\n        <rasd:InstanceID>3</rasd:InstanceID>\n        <rasd:ResourceSubType>lsilogicsas</rasd:ResourceSubType>\n        <rasd:ResourceType>6</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"160\"/>\n      </Item>\n      <Item>\n        <rasd:Address>1</rasd:Address>\n        <rasd:Description>IDE Controller</rasd:Description>\n        <rasd:ElementName>IDE 1</rasd:ElementName>\n        <rasd:InstanceID>4</rasd:InstanceID>\n        <rasd:ResourceType>5</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:Address>0</rasd:Address>\n        <rasd:Description>IDE Controller</rasd:Description>\n        <rasd:ElementName>IDE 0</rasd:ElementName>\n        <rasd:InstanceID>5</rasd:InstanceID>\n        <rasd:ResourceType>5</rasd:ResourceType>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>Video card</rasd:ElementName>\n        <rasd:InstanceID>6</rasd:InstanceID>\n        <rasd:ResourceType>24</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"enable3DSupport\" vmw:value=\"false\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"use3dRenderer\" vmw:value=\"automatic\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"useAutoDetect\" vmw:value=\"true\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"videoRamSizeInKB\" vmw:value=\"4096\"/>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>VMCI device</rasd:ElementName>\n        <rasd:InstanceID>7</rasd:InstanceID>\n        <rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>\n        <rasd:ResourceType>1</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"allowUnrestrictedCommunication\" vmw:value=\"false\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"32\"/>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>CD/DVD drive 1</rasd:ElementName>\n        <rasd:InstanceID>8</rasd:InstanceID>\n        <rasd:Parent>4</rasd:Parent>\n        <rasd:ResourceSubType>vmware.cdrom.atapi</rasd:ResourceSubType>\n        <rasd:ResourceType>15</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:ElementName>Hard disk 1</rasd:ElementName>\n        <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>\n        <rasd:InstanceID>9</rasd:InstanceID>\n        <rasd:Parent>3</rasd:Parent>\n        <rasd:ResourceType>17</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"backing.writeThrough\" vmw:value=\"false\"/>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>7</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>\n        <rasd:Connection>PG-VLAN60</rasd:Connection>\n        <rasd:Description>E1000 ethernet adapter on &quot;PG-VLAN60&quot;</rasd:Description>\n        <rasd:ElementName>Network adapter 1</rasd:ElementName>\n        <rasd:InstanceID>11</rasd:InstanceID>\n        <rasd:ResourceSubType>E1000</rasd:ResourceSubType>\n        <rasd:ResourceType>10</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"33\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"wakeOnLanEnabled\" vmw:value=\"true\"/>\n      </Item>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"cpuHotAddEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"cpuHotRemoveEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"firmware\" vmw:value=\"efi\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"virtualICH7MPresent\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"virtualSMCPresent\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"memoryHotAddEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"nestedHVEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.powerOffType\" vmw:value=\"soft\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.resetType\" vmw:value=\"soft\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.standbyAction\" vmw:value=\"checkpoint\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.suspendType\" vmw:value=\"hard\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.afterPowerOn\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.afterResume\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.beforeGuestShutdown\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.beforeGuestStandby\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.syncTimeWithHost\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.toolsUpgradePolicy\" vmw:value=\"upgradeAtPowerCycle\"/>\n    </VirtualHardwareSection>\n  </VirtualSystem>\n</Envelope>                                 \n"
  },
  {
    "path": "tests/test-i-ova-formats.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i ova option with ova file compressed in different ways\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires zip --version\nrequires unzip --help\n\nformats=\"zip tar-gz tar-xz\"\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-i-ova-formats.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\npushd $d\n\n# Create a phony OVA.  This is only a test of source parsing, not\n# conversion, so the contents of the disks doesn't matter.\nguestfish disk-create disk1.vmdk raw 10K\nsha=`do_sha1 disk1.vmdk`\necho -e \"SHA1(disk1.vmdk)= $sha\\r\" > disk1.mf\ncp \"$abs_srcdir/test-i-ova-formats.ovf\" .\n\nfor format in $formats; do\n    case \"$format\" in\n        zip)\n            zip -r test test-i-ova-formats.ovf disk1.vmdk disk1.mf\n            mv test.zip test-$format.ova\n            ;;\n        tar-gz)\n            tar -czf test-$format.ova test-i-ova-formats.ovf disk1.vmdk disk1.mf\n            ;;\n        tar-xz)\n            tar -cJf test-$format.ova test-i-ova-formats.ovf disk1.vmdk disk1.mf\n            ;;\n        *)\n            echo \"Unhandled format '$format'\"\n            exit 1\n    esac\ndone\n\npopd\n\nfor format in $formats; do\n    # Run virt-v2v but only as far as the --print-source stage, and\n    # normalize the output.\n    $VG virt-v2v --debug-gc --quiet \\\n        -i ova $d/test-$format.ova \\\n        --print-source |\n    sed 's,[^ \\t]*\\(disk.*.vmdk\\),\\1,' > $d/source\n\n    # Check the parsed source is what we expect.\n    diff -u \"$srcdir/test-i-ova-formats.expected\" $d/source\ndone\n"
  },
  {
    "path": "tests/test-i-ova-good-checksums.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i ova option with good checksums.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -f ../test-data/phony-guests/windows.img\n\nif [ ! -f windows.vmdk -o ! -s windows.vmdk ]; then\n    echo \"$0: test skipped because windows.vmdk was not created\"\n    exit 77\nfi\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-i-ova-good-checksums.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\npushd $d\n\n# Create the test OVA.\ncp \"$abs_srcdir/test-i-ova-checksums.ovf\" test.ovf\ncp ../windows.vmdk disk.vmdk\n\n# Test all types of checksum supported by the OVA format.\necho \"SHA1(test.ovf)=\" `do_sha1 test.ovf` > test.mf\necho \"SHA256(disk.vmdk)=\" `do_sha256 disk.vmdk` >> test.mf\n\ntar cf test.ova test.ovf disk.vmdk test.mf\n\n# Run virt-v2v but only as far as the --print-source stage.\n# It should succeed with no warnings.\nif ! $VG virt-v2v --debug-gc --quiet \\\n       -i ova test.ova \\\n       --print-source >test.out 2>&1; then\n    cat test.out\n    exit 1\nfi\ncat test.out\n\nif grep -sq \"warning: \" test.out; then\n    echo \"$0: unexpected warning in virt-v2v output: see messages above\"\n    exit 1\nfi\n\npopd\n"
  },
  {
    "path": "tests/test-i-ova-gz.expected",
    "content": "Source guest information (--print-source option):\n\n    source name: 2K8R2EESP1_2_Medium\nhypervisor type: vmware\n       VM genid: \n         memory: 1073741824 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: bios\nUEFI secureboot: false\n        display: \n          sound: \ndisks:\n\t0 [scsi]\nremovable media:\n\tCD-ROM [ide] in slot 0\nNICs:\n\tBridge \"PG-VLAN60\" [e1000]\n\n"
  },
  {
    "path": "tests/test-i-ova-gz.ovf",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Envelope vmw:buildId=\"build-1750787\" xmlns=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:cim=\"http://schemas.dmtf.org/wbem/wscim/1/common\" xmlns:ovf=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:rasd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData\" xmlns:vmw=\"http://www.vmware.com/schema/ovf\" xmlns:vssd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n  <References>\n    <File ovf:href=\"disk1.vmdk.gz\" ovf:id=\"file1\" ovf:size=\"7804077568\" ovf:compression=\"gzip\"/>\n  </References>\n  <DiskSection>\n    <Info>Virtual disk information</Info>\n    <Disk ovf:capacity=\"50\" ovf:capacityAllocationUnits=\"byte * 2^30\" ovf:diskId=\"vmdisk1\" ovf:fileRef=\"file1\" ovf:format=\"http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized\" ovf:populatedSize=\"18975752192\"/>\n  </DiskSection>\n  <NetworkSection>\n    <Info>The list of logical networks</Info>\n    <Network ovf:name=\"PG-VLAN60\">\n      <Description>The PG-VLAN60 network</Description>\n    </Network>\n  </NetworkSection>\n  <VirtualSystem ovf:id=\"2K8R2EESP1_2_Medium\">\n    <Info>A virtual machine</Info>\n    <Name>2K8R2EESP1_2_Medium</Name>\n    <OperatingSystemSection ovf:id=\"103\" vmw:osType=\"windows7Server64Guest\">\n      <Info>The kind of installed guest operating system</Info>\n      <Description>Microsoft Windows Server 2008 R2 (64-bit)</Description>\n    </OperatingSystemSection>\n    <VirtualHardwareSection>\n      <Info>Virtual hardware requirements</Info>\n      <System>\n        <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>\n        <vssd:InstanceID>0</vssd:InstanceID>\n        <vssd:VirtualSystemIdentifier>2K8R2EESP1_2_Medium</vssd:VirtualSystemIdentifier>\n        <vssd:VirtualSystemType>vmx-10</vssd:VirtualSystemType>\n      </System>\n      <Item>\n        <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>\n        <rasd:Description>Number of Virtual CPUs</rasd:Description>\n        <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>\n        <rasd:InstanceID>1</rasd:InstanceID>\n        <rasd:ResourceType>3</rasd:ResourceType>\n        <rasd:VirtualQuantity>1</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>\n        <rasd:Description>Memory Size</rasd:Description>\n        <rasd:ElementName>1024MB of memory</rasd:ElementName>\n        <rasd:InstanceID>2</rasd:InstanceID>\n        <rasd:ResourceType>4</rasd:ResourceType>\n        <rasd:VirtualQuantity>1024</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:Address>0</rasd:Address>\n        <rasd:Description>SCSI Controller</rasd:Description>\n        <rasd:ElementName>SCSI controller 0</rasd:ElementName>\n        <rasd:InstanceID>3</rasd:InstanceID>\n        <rasd:ResourceSubType>lsilogicsas</rasd:ResourceSubType>\n        <rasd:ResourceType>6</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"160\"/>\n      </Item>\n      <Item>\n        <rasd:Address>1</rasd:Address>\n        <rasd:Description>IDE Controller</rasd:Description>\n        <rasd:ElementName>IDE 1</rasd:ElementName>\n        <rasd:InstanceID>4</rasd:InstanceID>\n        <rasd:ResourceType>5</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:Address>0</rasd:Address>\n        <rasd:Description>IDE Controller</rasd:Description>\n        <rasd:ElementName>IDE 0</rasd:ElementName>\n        <rasd:InstanceID>5</rasd:InstanceID>\n        <rasd:ResourceType>5</rasd:ResourceType>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>Video card</rasd:ElementName>\n        <rasd:InstanceID>6</rasd:InstanceID>\n        <rasd:ResourceType>24</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"enable3DSupport\" vmw:value=\"false\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"use3dRenderer\" vmw:value=\"automatic\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"useAutoDetect\" vmw:value=\"true\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"videoRamSizeInKB\" vmw:value=\"4096\"/>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>VMCI device</rasd:ElementName>\n        <rasd:InstanceID>7</rasd:InstanceID>\n        <rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>\n        <rasd:ResourceType>1</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"allowUnrestrictedCommunication\" vmw:value=\"false\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"32\"/>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>CD/DVD drive 1</rasd:ElementName>\n        <rasd:InstanceID>8</rasd:InstanceID>\n        <rasd:Parent>4</rasd:Parent>\n        <rasd:ResourceSubType>vmware.cdrom.atapi</rasd:ResourceSubType>\n        <rasd:ResourceType>15</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:ElementName>Hard disk 1</rasd:ElementName>\n        <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>\n        <rasd:InstanceID>9</rasd:InstanceID>\n        <rasd:Parent>3</rasd:Parent>\n        <rasd:ResourceType>17</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"backing.writeThrough\" vmw:value=\"false\"/>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>7</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>\n        <rasd:Connection>PG-VLAN60</rasd:Connection>\n        <rasd:Description>E1000 ethernet adapter on &quot;PG-VLAN60&quot;</rasd:Description>\n        <rasd:ElementName>Network adapter 1</rasd:ElementName>\n        <rasd:InstanceID>11</rasd:InstanceID>\n        <rasd:ResourceSubType>E1000</rasd:ResourceSubType>\n        <rasd:ResourceType>10</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"33\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"wakeOnLanEnabled\" vmw:value=\"true\"/>\n      </Item>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"cpuHotAddEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"cpuHotRemoveEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"firmware\" vmw:value=\"bios\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"virtualICH7MPresent\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"virtualSMCPresent\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"memoryHotAddEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"nestedHVEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.powerOffType\" vmw:value=\"soft\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.resetType\" vmw:value=\"soft\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.standbyAction\" vmw:value=\"checkpoint\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.suspendType\" vmw:value=\"hard\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.afterPowerOn\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.afterResume\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.beforeGuestShutdown\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.beforeGuestStandby\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.syncTimeWithHost\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.toolsUpgradePolicy\" vmw:value=\"upgradeAtPowerCycle\"/>\n    </VirtualHardwareSection>\n  </VirtualSystem>\n</Envelope>                                 \n"
  },
  {
    "path": "tests/test-i-ova-gz.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i ova option with gzip-compressed disks.\n\nunset CDPATH\nexport LANG=C\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-i-ova-gz.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\npushd $d\n\nguestfish disk-create disk1.vmdk raw 10K\ngzip disk1.vmdk\nsha=`do_sha1 disk1.vmdk.gz`\necho -e \"SHA1(disk1.vmdk.gz)= $sha\\r\" > disk1.mf\ncp \"$abs_srcdir/test-i-ova-gz.ovf\" .\n\ntar -cf test.ova test-i-ova-gz.ovf disk1.vmdk.gz disk1.mf\npopd\n\n# Run virt-v2v but only as far as the --print-source stage, and\n# normalize the output.\n$VG virt-v2v --debug-gc --quiet \\\n    -i ova $d/test.ova \\\n    --print-source |\nsed 's,[^ \\t]*\\(\\.vmdk\\),\\1,' > $d/source\n\n# Check the parsed source is what we expect.\ndiff -u \"$srcdir/test-i-ova-gz.expected\" $d/source\n"
  },
  {
    "path": "tests/test-i-ova-invalid-manifest1.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i ova option with invalid manifest.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -f ../test-data/phony-guests/windows.img\n\nif [ ! -f windows.vmdk -o ! -s windows.vmdk ]; then\n    echo \"$0: test skipped because windows.vmdk was not created\"\n    exit 77\nfi\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-i-ova-invalid-manifest1.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\npushd $d\n\n# Create the test OVA.\ncp \"$abs_srcdir/test-i-ova-checksums.ovf\" test.ovf\ncp ../windows.vmdk disk.vmdk\necho \"SHA1(test.ovf)=\" `do_sha1 test.ovf` > test.mf\necho \"SHA1(disk.vmdk)=\" `do_sha1 disk.vmdk` >> test.mf\necho \"garbage line\" >> test.mf\ntar cf test.ova test.ovf disk.vmdk test.mf\n\n# Run virt-v2v but only as far as the --print-source stage.\n# It should succeed with a warning.\nif ! $VG virt-v2v --debug-gc --quiet \\\n       -i ova test.ova \\\n       --print-source >test.out 2>&1; then\n    cat test.out\n    exit 1\nfi\ncat test.out\n\nif ! ( grep -sq \"warning: unable to parse line\" test.out &&\n       grep -sq \"garbage line\" test.out ) ; then\n    echo \"$0: did not see the expected warning in the output of virt-v2v\"\n    exit 1\nfi\n\npopd\n"
  },
  {
    "path": "tests/test-i-ova-invalid-manifest2.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i ova option with invalid manifest.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -f ../test-data/phony-guests/windows.img\n\nif [ ! -f windows.vmdk -o ! -s windows.vmdk ]; then\n    echo \"$0: test skipped because windows.vmdk was not created\"\n    exit 77\nfi\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-i-ova-invalid-manifest2.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\npushd $d\n\n# Create the test OVA.\ncp \"$abs_srcdir/test-i-ova-checksums.ovf\" test.ovf\ncp ../windows.vmdk disk.vmdk\necho \"SHA1(test.ovf)=\" `do_sha1 test.ovf` > test.mf\necho \"SHA1(disk.vmdk)=$(do_sha1 disk.vmdk)\" >> test.mf\ntar cf test.ova test.ovf disk.vmdk test.mf\n\n# Run virt-v2v but only as far as the --print-source stage.\n# It should succeed with a warning.\nif ! $VG virt-v2v --debug-gc --quiet \\\n       -i ova test.ova \\\n       --print-source >test.out 2>&1; then\n    cat test.out\n    exit 1\nfi\ncat test.out\n\nif ! grep -sq \"warning: unable to parse line\" test.out; then\n    echo \"$0: did not see the expected warning in the output of virt-v2v\"\n    exit 1\nfi\n\npopd\n"
  },
  {
    "path": "tests/test-i-ova-snapshots.expected",
    "content": "Source guest information (--print-source option):\n\n    source name: 2K8R2EESP1_2_Medium\nhypervisor type: vmware\n       VM genid: \n         memory: 1073741824 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: uefi\nUEFI secureboot: false\n        display: \n          sound: \ndisks:\n\t0 [scsi]\nremovable media:\n\tCD-ROM [ide] in slot 0\nNICs:\n\tBridge \"PG-VLAN60\" [e1000]\n\n"
  },
  {
    "path": "tests/test-i-ova-snapshots.expected2",
    "content": "Source guest information (--print-source option):\n\n    source name: 2K8R2EESP1_2_Medium\nhypervisor type: vmware\n       VM genid: \n         memory: 1073741824 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: uefi\n        display: \n          sound: \ndisks:\n\tjson:{ \"file\": { \"driver\": \"raw\", \"offset\": x, \"size\": 12288, \"file\": { \"driver\": \"file\", \"filename\": \"test-snapshots.ova\" } } } (vmdk) [scsi]\nremovable media:\n\tCD-ROM [ide] in slot 0\nNICs:\n\tBridge \"PG-VLAN60\" [e1000]\n\n"
  },
  {
    "path": "tests/test-i-ova-snapshots.ovf",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Envelope vmw:buildId=\"build-1750787\" xmlns=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:cim=\"http://schemas.dmtf.org/wbem/wscim/1/common\" xmlns:ovf=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:rasd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData\" xmlns:vmw=\"http://www.vmware.com/schema/ovf\" xmlns:vssd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n  <References>\n    <File ovf:href=\"disk1.vmdk\" ovf:id=\"file1\" ovf:size=\"12288\"/>\n  </References>\n  <DiskSection>\n    <Info>Virtual disk information</Info>\n    <Disk ovf:capacity=\"50\" ovf:capacityAllocationUnits=\"byte * 2^30\" ovf:diskId=\"vmdisk1\" ovf:fileRef=\"file1\" ovf:format=\"http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized\" ovf:populatedSize=\"18975752192\"/>\n  </DiskSection>\n  <NetworkSection>\n    <Info>The list of logical networks</Info>\n    <Network ovf:name=\"PG-VLAN60\">\n      <Description>The PG-VLAN60 network</Description>\n    </Network>\n  </NetworkSection>\n  <VirtualSystem ovf:id=\"2K8R2EESP1_2_Medium\">\n    <Info>A virtual machine</Info>\n    <Name>2K8R2EESP1_2_Medium</Name>\n    <OperatingSystemSection ovf:id=\"103\" vmw:osType=\"windows7Server64Guest\">\n      <Info>The kind of installed guest operating system</Info>\n      <Description>Microsoft Windows Server 2008 R2 (64-bit)</Description>\n    </OperatingSystemSection>\n    <VirtualHardwareSection>\n      <Info>Virtual hardware requirements</Info>\n      <System>\n        <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>\n        <vssd:InstanceID>0</vssd:InstanceID>\n        <vssd:VirtualSystemIdentifier>2K8R2EESP1_2_Medium</vssd:VirtualSystemIdentifier>\n        <vssd:VirtualSystemType>vmx-10</vssd:VirtualSystemType>\n      </System>\n      <Item>\n        <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>\n        <rasd:Description>Number of Virtual CPUs</rasd:Description>\n        <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>\n        <rasd:InstanceID>1</rasd:InstanceID>\n        <rasd:ResourceType>3</rasd:ResourceType>\n        <rasd:VirtualQuantity>1</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>\n        <rasd:Description>Memory Size</rasd:Description>\n        <rasd:ElementName>1024MB of memory</rasd:ElementName>\n        <rasd:InstanceID>2</rasd:InstanceID>\n        <rasd:ResourceType>4</rasd:ResourceType>\n        <rasd:VirtualQuantity>1024</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:Address>0</rasd:Address>\n        <rasd:Description>SCSI Controller</rasd:Description>\n        <rasd:ElementName>SCSI controller 0</rasd:ElementName>\n        <rasd:InstanceID>3</rasd:InstanceID>\n        <rasd:ResourceSubType>lsilogicsas</rasd:ResourceSubType>\n        <rasd:ResourceType>6</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"160\"/>\n      </Item>\n      <Item>\n        <rasd:Address>1</rasd:Address>\n        <rasd:Description>IDE Controller</rasd:Description>\n        <rasd:ElementName>IDE 1</rasd:ElementName>\n        <rasd:InstanceID>4</rasd:InstanceID>\n        <rasd:ResourceType>5</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:Address>0</rasd:Address>\n        <rasd:Description>IDE Controller</rasd:Description>\n        <rasd:ElementName>IDE 0</rasd:ElementName>\n        <rasd:InstanceID>5</rasd:InstanceID>\n        <rasd:ResourceType>5</rasd:ResourceType>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>Video card</rasd:ElementName>\n        <rasd:InstanceID>6</rasd:InstanceID>\n        <rasd:ResourceType>24</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"enable3DSupport\" vmw:value=\"false\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"use3dRenderer\" vmw:value=\"automatic\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"useAutoDetect\" vmw:value=\"true\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"videoRamSizeInKB\" vmw:value=\"4096\"/>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>VMCI device</rasd:ElementName>\n        <rasd:InstanceID>7</rasd:InstanceID>\n        <rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>\n        <rasd:ResourceType>1</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"allowUnrestrictedCommunication\" vmw:value=\"false\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"32\"/>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>CD/DVD drive 1</rasd:ElementName>\n        <rasd:InstanceID>8</rasd:InstanceID>\n        <rasd:Parent>4</rasd:Parent>\n        <rasd:ResourceSubType>vmware.cdrom.atapi</rasd:ResourceSubType>\n        <rasd:ResourceType>15</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:ElementName>Hard disk 1</rasd:ElementName>\n        <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>\n        <rasd:InstanceID>9</rasd:InstanceID>\n        <rasd:Parent>3</rasd:Parent>\n        <rasd:ResourceType>17</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"backing.writeThrough\" vmw:value=\"false\"/>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>7</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>\n        <rasd:Connection>PG-VLAN60</rasd:Connection>\n        <rasd:Description>E1000 ethernet adapter on &quot;PG-VLAN60&quot;</rasd:Description>\n        <rasd:ElementName>Network adapter 1</rasd:ElementName>\n        <rasd:InstanceID>11</rasd:InstanceID>\n        <rasd:ResourceSubType>E1000</rasd:ResourceSubType>\n        <rasd:ResourceType>10</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"33\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"wakeOnLanEnabled\" vmw:value=\"true\"/>\n      </Item>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"cpuHotAddEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"cpuHotRemoveEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"firmware\" vmw:value=\"efi\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"virtualICH7MPresent\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"virtualSMCPresent\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"memoryHotAddEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"nestedHVEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.powerOffType\" vmw:value=\"soft\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.resetType\" vmw:value=\"soft\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.standbyAction\" vmw:value=\"checkpoint\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.suspendType\" vmw:value=\"hard\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.afterPowerOn\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.afterResume\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.beforeGuestShutdown\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.beforeGuestStandby\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.syncTimeWithHost\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.toolsUpgradePolicy\" vmw:value=\"upgradeAtPowerCycle\"/>\n    </VirtualHardwareSection>\n  </VirtualSystem>\n</Envelope>                                 \n"
  },
  {
    "path": "tests/test-i-ova-snapshots.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i ova option with OVA file containing snapshots.\n# https://bugzilla.redhat.com/show_bug.cgi?id=1570407\n\nunset CDPATH\nexport LANG=C\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-i-ova-snapshots.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\npushd $d\n\n# Create a phony OVA.  This is only a test of source parsing, not\n# conversion, so the contents of the disks doesn't matter.\n# In these weird OVAs, disk1.vmdk does not exist, but both the\n# href and manifest reference it.  virt-v2v should use the\n# highest numbered snapshot instead.\nguestfish disk-create disk1.vmdk.000000000 raw 10k\nguestfish disk-create disk1.vmdk.000000001 raw 11k\nguestfish disk-create disk1.vmdk.000000002 raw 12k\nsha=`do_sha1 disk1.vmdk.000000002`\necho -e \"SHA1(disk1.vmdk)= $sha\\r\" > disk1.mf\nsha=`do_sha1 disk1.vmdk.000000000`\necho -e \"SHA1(disk1.vmdk.000000000)= $sha\\r\" > disk1.mf\nsha=`do_sha1 disk1.vmdk.000000001`\necho -e \"SHA1(disk1.vmdk.000000001)= $sha\\r\" > disk1.mf\nsha=`do_sha1 disk1.vmdk.000000002`\necho -e \"SHA1(disk1.vmdk.000000002)= $sha\\r\" > disk1.mf\ncp \"$abs_srcdir/test-i-ova-snapshots.ovf\" .\ntar -cf test-snapshots.ova test-i-ova-snapshots.ovf disk1.vmdk.00000000? disk1.mf\n\npopd\n\n# Run virt-v2v but only as far as the --print-source stage\n$VG virt-v2v --debug-gc --quiet \\\n    -i ova $d/test-snapshots.ova \\\n    --print-source > $d/source\n\n# Check the parsed source is what we expect.\nif grep -sq json: $d/source ; then\n    # Normalize the output.\n    # Remove directory prefix.\n    # Exact offset will vary because of tar.\n    sed -i -e \"s,\\\"[^\\\"]*/$d/,\\\",\" \\\n           -e \"s|\\\"offset\\\": [0-9]*,|\\\"offset\\\": x,|\" $d/source\n    diff -u \"$srcdir/test-i-ova-snapshots.expected2\" $d/source\nelse\n    # normalize the output\n    sed -i -e 's,[^ \\t]*\\(disk.*.vmdk\\),\\1,' $d/source\n    diff -u \"$srcdir/test-i-ova-snapshots.expected\" $d/source\nfi\n"
  },
  {
    "path": "tests/test-i-ova-subfolders.expected",
    "content": "Source guest information (--print-source option):\n\n    source name: 2K8R2EESP1_2_Medium\nhypervisor type: vmware\n       VM genid: \n         memory: 1073741824 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: uefi\nUEFI secureboot: false\n        display: \n          sound: \ndisks:\n\t0 [scsi]\nremovable media:\n\tCD-ROM [ide] in slot 0\nNICs:\n\tBridge \"PG-VLAN60\" [e1000]\n\n"
  },
  {
    "path": "tests/test-i-ova-subfolders.expected2",
    "content": "Source guest information (--print-source option):\n\n    source name: 2K8R2EESP1_2_Medium\nhypervisor type: vmware\n       VM genid: \n         memory: 1073741824 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: uefi\n        display: \n          sound: \ndisks:\n\tjson:{ \"file\": { \"driver\": \"raw\", \"offset\": x, \"size\": 10240, \"file\": { \"driver\": \"file\", \"filename\": \"test.ova\" } } } (vmdk) [scsi]\nremovable media:\n\tCD-ROM [ide] in slot 0\nNICs:\n\tBridge \"PG-VLAN60\" [e1000]\n\n"
  },
  {
    "path": "tests/test-i-ova-subfolders.ovf",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Envelope vmw:buildId=\"build-1750787\" xmlns=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:cim=\"http://schemas.dmtf.org/wbem/wscim/1/common\" xmlns:ovf=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:rasd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData\" xmlns:vmw=\"http://www.vmware.com/schema/ovf\" xmlns:vssd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n  <References>\n    <File ovf:href=\"disk1.vmdk\" ovf:id=\"file1\" ovf:size=\"7804077568\"/>\n  </References>\n  <DiskSection>\n    <Info>Virtual disk information</Info>\n    <Disk ovf:capacity=\"50\" ovf:capacityAllocationUnits=\"byte * 2^30\" ovf:diskId=\"vmdisk1\" ovf:fileRef=\"file1\" ovf:format=\"http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized\" ovf:populatedSize=\"18975752192\"/>\n  </DiskSection>\n  <NetworkSection>\n    <Info>The list of logical networks</Info>\n    <Network ovf:name=\"PG-VLAN60\">\n      <Description>The PG-VLAN60 network</Description>\n    </Network>\n  </NetworkSection>\n  <VirtualSystem ovf:id=\"2K8R2EESP1_2_Medium\">\n    <Info>A virtual machine</Info>\n    <Name>2K8R2EESP1_2_Medium</Name>\n    <OperatingSystemSection ovf:id=\"103\" vmw:osType=\"windows7Server64Guest\">\n      <Info>The kind of installed guest operating system</Info>\n      <Description>Microsoft Windows Server 2008 R2 (64-bit)</Description>\n    </OperatingSystemSection>\n    <VirtualHardwareSection>\n      <Info>Virtual hardware requirements</Info>\n      <System>\n        <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>\n        <vssd:InstanceID>0</vssd:InstanceID>\n        <vssd:VirtualSystemIdentifier>2K8R2EESP1_2_Medium</vssd:VirtualSystemIdentifier>\n        <vssd:VirtualSystemType>vmx-10</vssd:VirtualSystemType>\n      </System>\n      <Item>\n        <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>\n        <rasd:Description>Number of Virtual CPUs</rasd:Description>\n        <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>\n        <rasd:InstanceID>1</rasd:InstanceID>\n        <rasd:ResourceType>3</rasd:ResourceType>\n        <rasd:VirtualQuantity>1</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>\n        <rasd:Description>Memory Size</rasd:Description>\n        <rasd:ElementName>1024MB of memory</rasd:ElementName>\n        <rasd:InstanceID>2</rasd:InstanceID>\n        <rasd:ResourceType>4</rasd:ResourceType>\n        <rasd:VirtualQuantity>1024</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:Address>0</rasd:Address>\n        <rasd:Description>SCSI Controller</rasd:Description>\n        <rasd:ElementName>SCSI controller 0</rasd:ElementName>\n        <rasd:InstanceID>3</rasd:InstanceID>\n        <rasd:ResourceSubType>lsilogicsas</rasd:ResourceSubType>\n        <rasd:ResourceType>6</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"160\"/>\n      </Item>\n      <Item>\n        <rasd:Address>1</rasd:Address>\n        <rasd:Description>IDE Controller</rasd:Description>\n        <rasd:ElementName>IDE 1</rasd:ElementName>\n        <rasd:InstanceID>4</rasd:InstanceID>\n        <rasd:ResourceType>5</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:Address>0</rasd:Address>\n        <rasd:Description>IDE Controller</rasd:Description>\n        <rasd:ElementName>IDE 0</rasd:ElementName>\n        <rasd:InstanceID>5</rasd:InstanceID>\n        <rasd:ResourceType>5</rasd:ResourceType>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>Video card</rasd:ElementName>\n        <rasd:InstanceID>6</rasd:InstanceID>\n        <rasd:ResourceType>24</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"enable3DSupport\" vmw:value=\"false\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"use3dRenderer\" vmw:value=\"automatic\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"useAutoDetect\" vmw:value=\"true\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"videoRamSizeInKB\" vmw:value=\"4096\"/>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>VMCI device</rasd:ElementName>\n        <rasd:InstanceID>7</rasd:InstanceID>\n        <rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>\n        <rasd:ResourceType>1</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"allowUnrestrictedCommunication\" vmw:value=\"false\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"32\"/>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>CD/DVD drive 1</rasd:ElementName>\n        <rasd:InstanceID>8</rasd:InstanceID>\n        <rasd:Parent>4</rasd:Parent>\n        <rasd:ResourceSubType>vmware.cdrom.atapi</rasd:ResourceSubType>\n        <rasd:ResourceType>15</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:ElementName>Hard disk 1</rasd:ElementName>\n        <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>\n        <rasd:InstanceID>9</rasd:InstanceID>\n        <rasd:Parent>3</rasd:Parent>\n        <rasd:ResourceType>17</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"backing.writeThrough\" vmw:value=\"false\"/>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>7</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>\n        <rasd:Connection>PG-VLAN60</rasd:Connection>\n        <rasd:Description>E1000 ethernet adapter on &quot;PG-VLAN60&quot;</rasd:Description>\n        <rasd:ElementName>Network adapter 1</rasd:ElementName>\n        <rasd:InstanceID>11</rasd:InstanceID>\n        <rasd:ResourceSubType>E1000</rasd:ResourceSubType>\n        <rasd:ResourceType>10</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"33\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"wakeOnLanEnabled\" vmw:value=\"true\"/>\n      </Item>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"cpuHotAddEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"cpuHotRemoveEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"firmware\" vmw:value=\"efi\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"virtualICH7MPresent\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"virtualSMCPresent\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"memoryHotAddEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"nestedHVEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.powerOffType\" vmw:value=\"soft\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.resetType\" vmw:value=\"soft\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.standbyAction\" vmw:value=\"checkpoint\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.suspendType\" vmw:value=\"hard\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.afterPowerOn\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.afterResume\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.beforeGuestShutdown\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.beforeGuestStandby\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.syncTimeWithHost\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.toolsUpgradePolicy\" vmw:value=\"upgradeAtPowerCycle\"/>\n    </VirtualHardwareSection>\n  </VirtualSystem>\n</Envelope>                                 \n"
  },
  {
    "path": "tests/test-i-ova-subfolders.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i ova option with files located in a subfolder.\n\nunset CDPATH\nexport LANG=C\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-i-ova-subfolders.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir -p $d/subfolder\n\ncp \"$srcdir/test-i-ova-subfolders.ovf\" $d/subfolder/\n\npushd $d/subfolder\n\nguestfish disk-create disk1.vmdk raw 10K\nsha=`do_sha1 disk1.vmdk`\necho -e \"SHA1(disk1.vmdk)= $sha\\r\" > disk1.mf\n\ncd ..\ntar -cf test.ova subfolder\npopd\n\n# Run virt-v2v but only as far as the --print-source stage, and\n# normalize the output.\n$VG virt-v2v --debug-gc --quiet \\\n    -i ova $d/test.ova \\\n    --print-source > $d/source\n\n# Check the parsed source is what we expect.\nif grep -sq json: $d/source ; then\n    # Normalize the output.\n    # Remove directory prefix.\n    # Exact offset will vary because of tar.\n    sed -i -e \"s,\\\"[^\\\"]*/$d/,\\\",\" \\\n           -e \"s|\\\"offset\\\": [0-9]*,|\\\"offset\\\": x,|\" $d/source\n    diff -u \"$srcdir/test-i-ova-subfolders.expected2\" $d/source\nelse\n    # normalize the output\n    sed -i -e 's,[^ \\t]*\\(subfolder/disk.*\\.vmdk\\),\\1,' $d/source\n    diff -u \"$srcdir/test-i-ova-subfolders.expected\" $d/source\nfi\n"
  },
  {
    "path": "tests/test-i-ova-tar.expected",
    "content": "Source guest information (--print-source option):\n\n    source name: 2K8R2EESP1_2_Medium\nhypervisor type: vmware\n       VM genid: \n         memory: 1073741824 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: uefi\nUEFI secureboot: false\n        display: \n          sound: \ndisks:\n\t0 [scsi]\nremovable media:\n\tCD-ROM [ide] in slot 0\nNICs:\n\tBridge \"PG-VLAN60\" [e1000]\n\n"
  },
  {
    "path": "tests/test-i-ova-tar.expected2",
    "content": "Source guest information (--print-source option):\n\n    source name: 2K8R2EESP1_2_Medium\nhypervisor type: vmware\n       VM genid: \n         memory: 1073741824 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: uefi\n        display: \n          sound: \ndisks:\n\tjson:{ \"file\": { \"driver\": \"raw\", \"offset\": x, \"size\": 10240, \"file\": { \"driver\": \"file\", \"filename\": \"test-tar.ova\" } } } (vmdk) [scsi]\nremovable media:\n\tCD-ROM [ide] in slot 0\nNICs:\n\tBridge \"PG-VLAN60\" [e1000]\n\n"
  },
  {
    "path": "tests/test-i-ova-tar.ovf",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Envelope vmw:buildId=\"build-1750787\" xmlns=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:cim=\"http://schemas.dmtf.org/wbem/wscim/1/common\" xmlns:ovf=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:rasd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData\" xmlns:vmw=\"http://www.vmware.com/schema/ovf\" xmlns:vssd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n  <References>\n    <File ovf:href=\"disk1.vmdk\" ovf:id=\"file1\" ovf:size=\"7804077568\"/>\n  </References>\n  <DiskSection>\n    <Info>Virtual disk information</Info>\n    <Disk ovf:capacity=\"50\" ovf:capacityAllocationUnits=\"byte * 2^30\" ovf:diskId=\"vmdisk1\" ovf:fileRef=\"file1\" ovf:format=\"http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized\" ovf:populatedSize=\"18975752192\"/>\n  </DiskSection>\n  <NetworkSection>\n    <Info>The list of logical networks</Info>\n    <Network ovf:name=\"PG-VLAN60\">\n      <Description>The PG-VLAN60 network</Description>\n    </Network>\n  </NetworkSection>\n  <VirtualSystem ovf:id=\"2K8R2EESP1_2_Medium\">\n    <Info>A virtual machine</Info>\n    <Name>2K8R2EESP1_2_Medium</Name>\n    <OperatingSystemSection ovf:id=\"103\" vmw:osType=\"windows7Server64Guest\">\n      <Info>The kind of installed guest operating system</Info>\n      <Description>Microsoft Windows Server 2008 R2 (64-bit)</Description>\n    </OperatingSystemSection>\n    <VirtualHardwareSection>\n      <Info>Virtual hardware requirements</Info>\n      <System>\n        <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>\n        <vssd:InstanceID>0</vssd:InstanceID>\n        <vssd:VirtualSystemIdentifier>2K8R2EESP1_2_Medium</vssd:VirtualSystemIdentifier>\n        <vssd:VirtualSystemType>vmx-10</vssd:VirtualSystemType>\n      </System>\n      <Item>\n        <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>\n        <rasd:Description>Number of Virtual CPUs</rasd:Description>\n        <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>\n        <rasd:InstanceID>1</rasd:InstanceID>\n        <rasd:ResourceType>3</rasd:ResourceType>\n        <rasd:VirtualQuantity>1</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>\n        <rasd:Description>Memory Size</rasd:Description>\n        <rasd:ElementName>1024MB of memory</rasd:ElementName>\n        <rasd:InstanceID>2</rasd:InstanceID>\n        <rasd:ResourceType>4</rasd:ResourceType>\n        <rasd:VirtualQuantity>1024</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:Address>0</rasd:Address>\n        <rasd:Description>SCSI Controller</rasd:Description>\n        <rasd:ElementName>SCSI controller 0</rasd:ElementName>\n        <rasd:InstanceID>3</rasd:InstanceID>\n        <rasd:ResourceSubType>lsilogicsas</rasd:ResourceSubType>\n        <rasd:ResourceType>6</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"160\"/>\n      </Item>\n      <Item>\n        <rasd:Address>1</rasd:Address>\n        <rasd:Description>IDE Controller</rasd:Description>\n        <rasd:ElementName>IDE 1</rasd:ElementName>\n        <rasd:InstanceID>4</rasd:InstanceID>\n        <rasd:ResourceType>5</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:Address>0</rasd:Address>\n        <rasd:Description>IDE Controller</rasd:Description>\n        <rasd:ElementName>IDE 0</rasd:ElementName>\n        <rasd:InstanceID>5</rasd:InstanceID>\n        <rasd:ResourceType>5</rasd:ResourceType>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>Video card</rasd:ElementName>\n        <rasd:InstanceID>6</rasd:InstanceID>\n        <rasd:ResourceType>24</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"enable3DSupport\" vmw:value=\"false\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"use3dRenderer\" vmw:value=\"automatic\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"useAutoDetect\" vmw:value=\"true\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"videoRamSizeInKB\" vmw:value=\"4096\"/>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>VMCI device</rasd:ElementName>\n        <rasd:InstanceID>7</rasd:InstanceID>\n        <rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>\n        <rasd:ResourceType>1</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"allowUnrestrictedCommunication\" vmw:value=\"false\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"32\"/>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>CD/DVD drive 1</rasd:ElementName>\n        <rasd:InstanceID>8</rasd:InstanceID>\n        <rasd:Parent>4</rasd:Parent>\n        <rasd:ResourceSubType>vmware.cdrom.atapi</rasd:ResourceSubType>\n        <rasd:ResourceType>15</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:ElementName>Hard disk 1</rasd:ElementName>\n        <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>\n        <rasd:InstanceID>9</rasd:InstanceID>\n        <rasd:Parent>3</rasd:Parent>\n        <rasd:ResourceType>17</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"backing.writeThrough\" vmw:value=\"false\"/>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>7</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>\n        <rasd:Connection>PG-VLAN60</rasd:Connection>\n        <rasd:Description>E1000 ethernet adapter on &quot;PG-VLAN60&quot;</rasd:Description>\n        <rasd:ElementName>Network adapter 1</rasd:ElementName>\n        <rasd:InstanceID>11</rasd:InstanceID>\n        <rasd:ResourceSubType>E1000</rasd:ResourceSubType>\n        <rasd:ResourceType>10</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"33\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"wakeOnLanEnabled\" vmw:value=\"true\"/>\n      </Item>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"cpuHotAddEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"cpuHotRemoveEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"firmware\" vmw:value=\"efi\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"virtualICH7MPresent\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"virtualSMCPresent\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"memoryHotAddEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"nestedHVEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.powerOffType\" vmw:value=\"soft\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.resetType\" vmw:value=\"soft\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.standbyAction\" vmw:value=\"checkpoint\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.suspendType\" vmw:value=\"hard\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.afterPowerOn\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.afterResume\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.beforeGuestShutdown\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.beforeGuestStandby\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.syncTimeWithHost\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.toolsUpgradePolicy\" vmw:value=\"upgradeAtPowerCycle\"/>\n    </VirtualHardwareSection>\n  </VirtualSystem>\n</Envelope>                                 \n"
  },
  {
    "path": "tests/test-i-ova-tar.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2016 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i ova option with ova file compressed in different ways\n\nunset CDPATH\nexport LANG=C\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-i-ova-tar.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\npushd $d\n\n# Create a phony OVA.  This is only a test of source parsing, not\n# conversion, so the contents of the disks doesn't matter.\nguestfish disk-create disk1.vmdk raw 10k\nsha=`do_sha1 disk1.vmdk`\necho -e \"SHA1(disk1.vmdk)= $sha\\r\" > disk1.mf\ncp \"$abs_srcdir/test-i-ova-tar.ovf\" .\ntar -cf test-tar.ova test-i-ova-tar.ovf disk1.vmdk disk1.mf\n\npopd\n\n# Run virt-v2v but only as far as the --print-source stage\n$VG virt-v2v --debug-gc --quiet \\\n    -i ova $d/test-tar.ova \\\n    --print-source > $d/source\n\n# Check the parsed source is what we expect.\nif grep -sq json: $d/source ; then\n    # Normalize the output.\n    # Remove directory prefix.\n    # Exact offset will vary because of tar.\n    sed -i -e \"s,\\\"[^\\\"]*/$d/,\\\",\" \\\n           -e \"s|\\\"offset\\\": [0-9]*,|\\\"offset\\\": x,|\" $d/source\n    diff -u \"$srcdir/test-i-ova-tar.expected2\" $d/source\nelse\n    # normalize the output\n    sed -i -e 's,[^ \\t]*\\(disk.*.vmdk\\),\\1,' $d/source\n    diff -u \"$srcdir/test-i-ova-tar.expected\" $d/source\nfi\n"
  },
  {
    "path": "tests/test-i-ova-two-disks.expected",
    "content": "Source guest information (--print-source option):\n\n    source name: 2K8R2EESP1_2_Medium\nhypervisor type: vmware\n       VM genid: \n         memory: 1073741824 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: bios\nUEFI secureboot: false\n        display: \n          sound: \ndisks:\n\t0 [scsi]\n\t1 [scsi]\nremovable media:\n\tCD-ROM [ide] in slot 0\nNICs:\n\tBridge \"PG-VLAN60\" [e1000]\n\n"
  },
  {
    "path": "tests/test-i-ova-two-disks.expected2",
    "content": "Source guest information (--print-source option):\n\n    source name: 2K8R2EESP1_2_Medium\nhypervisor type: vmware\n       VM genid: \n         memory: 1073741824 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: bios\n        display: \n          sound: \ndisks:\n\tjson:{ \"file\": { \"driver\": \"raw\", \"offset\": x, \"size\": 10240, \"file\": { \"driver\": \"file\", \"filename\": \"test.ova\" } } } (vmdk) [scsi]\n\tjson:{ \"file\": { \"driver\": \"raw\", \"offset\": x, \"size\": 102400, \"file\": { \"driver\": \"file\", \"filename\": \"test.ova\" } } } (vmdk) [scsi]\nremovable media:\n\tCD-ROM [ide] in slot 0\nNICs:\n\tBridge \"PG-VLAN60\" [e1000]\n\n"
  },
  {
    "path": "tests/test-i-ova-two-disks.ovf",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Envelope vmw:buildId=\"build-1750787\" xmlns=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:cim=\"http://schemas.dmtf.org/wbem/wscim/1/common\" xmlns:ovf=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:rasd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData\" xmlns:vmw=\"http://www.vmware.com/schema/ovf\" xmlns:vssd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n  <References>\n    <File ovf:href=\"disk1.vmdk\" ovf:id=\"file1\" ovf:size=\"7804077568\"/>\n    <File ovf:href=\"disk2.vmdk\" ovf:id=\"file2\" ovf:size=\"178523318784\"/>\n  </References>\n  <DiskSection>\n    <Info>Virtual disk information</Info>\n    <Disk ovf:capacity=\"50\" ovf:capacityAllocationUnits=\"byte * 2^30\" ovf:diskId=\"vmdisk1\" ovf:fileRef=\"file1\" ovf:format=\"http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized\" ovf:populatedSize=\"18975752192\"/>\n    <Disk ovf:capacity=\"450\" ovf:capacityAllocationUnits=\"byte * 2^30\" ovf:diskId=\"vmdisk2\" ovf:fileRef=\"file2\" ovf:format=\"http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized\" ovf:populatedSize=\"275146276864\"/>\n  </DiskSection>\n  <NetworkSection>\n    <Info>The list of logical networks</Info>\n    <Network ovf:name=\"PG-VLAN60\">\n      <Description>The PG-VLAN60 network</Description>\n    </Network>\n  </NetworkSection>\n  <VirtualSystem ovf:id=\"2K8R2EESP1_2_Medium\">\n    <Info>A virtual machine</Info>\n    <Name>2K8R2EESP1_2_Medium</Name>\n    <OperatingSystemSection ovf:id=\"103\" vmw:osType=\"windows7Server64Guest\">\n      <Info>The kind of installed guest operating system</Info>\n      <Description>Microsoft Windows Server 2008 R2 (64-bit)</Description>\n    </OperatingSystemSection>\n    <VirtualHardwareSection>\n      <Info>Virtual hardware requirements</Info>\n      <System>\n        <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>\n        <vssd:InstanceID>0</vssd:InstanceID>\n        <vssd:VirtualSystemIdentifier>2K8R2EESP1_2_Medium</vssd:VirtualSystemIdentifier>\n        <vssd:VirtualSystemType>vmx-10</vssd:VirtualSystemType>\n      </System>\n      <Item>\n        <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>\n        <rasd:Description>Number of Virtual CPUs</rasd:Description>\n        <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>\n        <rasd:InstanceID>1</rasd:InstanceID>\n        <rasd:ResourceType>3</rasd:ResourceType>\n        <rasd:VirtualQuantity>1</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>\n        <rasd:Description>Memory Size</rasd:Description>\n        <rasd:ElementName>1024MB of memory</rasd:ElementName>\n        <rasd:InstanceID>2</rasd:InstanceID>\n        <rasd:ResourceType>4</rasd:ResourceType>\n        <rasd:VirtualQuantity>1024</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:Address>0</rasd:Address>\n        <rasd:Description>SCSI Controller</rasd:Description>\n        <rasd:ElementName>SCSI controller 0</rasd:ElementName>\n        <rasd:InstanceID>3</rasd:InstanceID>\n        <rasd:ResourceSubType>lsilogicsas</rasd:ResourceSubType>\n        <rasd:ResourceType>6</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"160\"/>\n      </Item>\n      <Item>\n        <rasd:Address>1</rasd:Address>\n        <rasd:Description>IDE Controller</rasd:Description>\n        <rasd:ElementName>IDE 1</rasd:ElementName>\n        <rasd:InstanceID>4</rasd:InstanceID>\n        <rasd:ResourceType>5</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:Address>0</rasd:Address>\n        <rasd:Description>IDE Controller</rasd:Description>\n        <rasd:ElementName>IDE 0</rasd:ElementName>\n        <rasd:InstanceID>5</rasd:InstanceID>\n        <rasd:ResourceType>5</rasd:ResourceType>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>Video card</rasd:ElementName>\n        <rasd:InstanceID>6</rasd:InstanceID>\n        <rasd:ResourceType>24</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"enable3DSupport\" vmw:value=\"false\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"use3dRenderer\" vmw:value=\"automatic\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"useAutoDetect\" vmw:value=\"true\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"videoRamSizeInKB\" vmw:value=\"4096\"/>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>VMCI device</rasd:ElementName>\n        <rasd:InstanceID>7</rasd:InstanceID>\n        <rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>\n        <rasd:ResourceType>1</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"allowUnrestrictedCommunication\" vmw:value=\"false\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"32\"/>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>CD/DVD drive 1</rasd:ElementName>\n        <rasd:InstanceID>8</rasd:InstanceID>\n        <rasd:Parent>4</rasd:Parent>\n        <rasd:ResourceSubType>vmware.cdrom.atapi</rasd:ResourceSubType>\n        <rasd:ResourceType>15</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:ElementName>Hard disk 1</rasd:ElementName>\n        <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>\n        <rasd:InstanceID>9</rasd:InstanceID>\n        <rasd:Parent>3</rasd:Parent>\n        <rasd:ResourceType>17</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"backing.writeThrough\" vmw:value=\"false\"/>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>1</rasd:AddressOnParent>\n        <rasd:ElementName>Hard disk 2</rasd:ElementName>\n        <rasd:HostResource>ovf:/disk/vmdisk2</rasd:HostResource>\n        <rasd:InstanceID>10</rasd:InstanceID>\n        <rasd:Parent>3</rasd:Parent>\n        <rasd:ResourceType>17</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"backing.writeThrough\" vmw:value=\"false\"/>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>7</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>\n        <rasd:Connection>PG-VLAN60</rasd:Connection>\n        <rasd:Description>E1000 ethernet adapter on &quot;PG-VLAN60&quot;</rasd:Description>\n        <rasd:ElementName>Network adapter 1</rasd:ElementName>\n        <rasd:InstanceID>11</rasd:InstanceID>\n        <rasd:ResourceSubType>E1000</rasd:ResourceSubType>\n        <rasd:ResourceType>10</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"33\"/>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"wakeOnLanEnabled\" vmw:value=\"true\"/>\n      </Item>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"cpuHotAddEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"cpuHotRemoveEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"firmware\" vmw:value=\"bios\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"virtualICH7MPresent\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"virtualSMCPresent\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"memoryHotAddEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"nestedHVEnabled\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.powerOffType\" vmw:value=\"soft\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.resetType\" vmw:value=\"soft\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.standbyAction\" vmw:value=\"checkpoint\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.suspendType\" vmw:value=\"hard\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.afterPowerOn\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.afterResume\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.beforeGuestShutdown\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.beforeGuestStandby\" vmw:value=\"true\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.syncTimeWithHost\" vmw:value=\"false\"/>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.toolsUpgradePolicy\" vmw:value=\"upgradeAtPowerCycle\"/>\n    </VirtualHardwareSection>\n  </VirtualSystem>\n</Envelope>                                 \n"
  },
  {
    "path": "tests/test-i-ova-two-disks.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i ova option with two disks.\n\nunset CDPATH\nexport LANG=C\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=test-i-ova-two-disks.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\npushd $d\n\n# Create a phony OVA.  This is only a test of source parsing, not\n# conversion, so the contents of the disks doesn't matter.\nguestfish disk-create disk1.vmdk raw 10K\nsha=`do_sha1 disk1.vmdk`\necho -e \"SHA1(disk1.vmdk)= $sha\\r\" > disk1.mf\nguestfish disk-create disk2.vmdk raw 100K\nsha=`do_sha1 disk2.vmdk`\necho -e \"SHA1(disk2.vmdk)= $sha\\r\" > disk2.mf\ncp \"$abs_srcdir/test-i-ova-two-disks.ovf\" .\n\ntar -cf test.ova test-i-ova-two-disks.ovf disk1.vmdk disk1.mf disk2.vmdk disk2.mf\npopd\n\n# Run virt-v2v but only as far as the --print-source stage, and\n# normalize the output.\n$VG virt-v2v --debug-gc --quiet \\\n    -i ova $d/test.ova \\\n    --print-source  > $d/source\n\n# Check the parsed source is what we expect.\nif grep -sq json: $d/source ; then\n    # Normalize the output.\n    # Remove directory prefix.\n    # Exact offset will vary because of tar.\n    sed -i -e \"s,\\\"[^\\\"]*/$d/,\\\",\" \\\n           -e \"s|\\\"offset\\\": [0-9]*,|\\\"offset\\\": x,|\" $d/source\n    diff -u \"$srcdir/test-i-ova-two-disks.expected2\" $d/source\nelse\n    # normalize the output\n    sed -i -e 's,[^ \\t]*\\(disk.*.vmdk\\),\\1,' $d/source\n    diff -u \"$srcdir/test-i-ova-two-disks.expected\" $d/source\nfi\n"
  },
  {
    "path": "tests/test-i-ova.ovf",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Envelope vmw:buildId=\"build-1623387\" xmlns=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:cim=\"http://schemas.dmtf.org/wbem/wscim/1/common\" xmlns:ovf=\"http://schemas.dmtf.org/ovf/envelope/1\" xmlns:rasd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData\" xmlns:vmw=\"http://www.vmware.com/schema/ovf\" xmlns:vssd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n  <References>\n    <File ovf:href=\"test-ova.vmdk\" ovf:id=\"file1\" ovf:size=\"349405696\" />\n  </References>\n  <DiskSection>\n    <Info>Virtual disk information</Info>\n    <Disk ovf:capacity=\"32\" ovf:capacityAllocationUnits=\"byte * 2^30\" ovf:diskId=\"vmdisk1\" ovf:fileRef=\"file1\" ovf:format=\"http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized\" ovf:populatedSize=\"1008926720\" />\n  </DiskSection>\n  <NetworkSection>\n    <Info>The list of logical networks</Info>\n    <Network ovf:name=\"VM Network\">\n      <Description>The VM Network network</Description>\n    </Network>\n  </NetworkSection>\n  <VirtualSystem ovf:id=\"TestOva\">\n    <Info>A virtual machine</Info>\n    <Name>TestOva</Name>\n    <OperatingSystemSection ovf:id=\"74\" vmw:osType=\"windows7_64Guest\">\n      <Info>The kind of installed guest operating system</Info>\n    </OperatingSystemSection>\n    <VirtualHardwareSection>\n      <Info>Virtual hardware requirements</Info>\n      <System>\n        <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>\n        <vssd:InstanceID>0</vssd:InstanceID>\n        <vssd:VirtualSystemIdentifier>TestOva</vssd:VirtualSystemIdentifier>\n        <vssd:VirtualSystemType>vmx-08</vssd:VirtualSystemType>\n      </System>\n      <Item>\n        <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>\n        <rasd:Description>Number of Virtual CPUs</rasd:Description>\n        <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>\n        <rasd:InstanceID>1</rasd:InstanceID>\n        <rasd:ResourceType>3</rasd:ResourceType>\n        <rasd:VirtualQuantity>1</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>\n        <rasd:Description>Memory Size</rasd:Description>\n        <rasd:ElementName>2048MB of memory</rasd:ElementName>\n        <rasd:InstanceID>2</rasd:InstanceID>\n        <rasd:ResourceType>4</rasd:ResourceType>\n        <rasd:VirtualQuantity>2048</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:Address>0</rasd:Address>\n        <rasd:Description>SCSI Controller</rasd:Description>\n        <rasd:ElementName>SCSI Controller 0</rasd:ElementName>\n        <rasd:InstanceID>3</rasd:InstanceID>\n        <rasd:ResourceSubType>lsilogicsas</rasd:ResourceSubType>\n        <rasd:ResourceType>6</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"160\" />\n      </Item>\n      <Item>\n        <rasd:Address>1</rasd:Address>\n        <rasd:Description>IDE Controller</rasd:Description>\n        <rasd:ElementName>VirtualIDEController 1</rasd:ElementName>\n        <rasd:InstanceID>4</rasd:InstanceID>\n        <rasd:ResourceType>5</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:Address>0</rasd:Address>\n        <rasd:Description>IDE Controller</rasd:Description>\n        <rasd:ElementName>VirtualIDEController 0</rasd:ElementName>\n        <rasd:InstanceID>5</rasd:InstanceID>\n        <rasd:ResourceType>5</rasd:ResourceType>\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>VirtualVideoCard</rasd:ElementName>\n        <rasd:InstanceID>6</rasd:InstanceID>\n        <rasd:ResourceType>24</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"enable3DSupport\" vmw:value=\"false\" />\n        <vmw:Config ovf:required=\"false\" vmw:key=\"enableMPTSupport\" vmw:value=\"false\" />\n        <vmw:Config ovf:required=\"false\" vmw:key=\"use3dRenderer\" vmw:value=\"automatic\" />\n        <vmw:Config ovf:required=\"false\" vmw:key=\"useAutoDetect\" vmw:value=\"false\" />\n        <vmw:Config ovf:required=\"false\" vmw:key=\"videoRamSizeInKB\" vmw:value=\"8192\" />\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>VirtualVMCIDevice</rasd:ElementName>\n        <rasd:InstanceID>7</rasd:InstanceID>\n        <rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>\n        <rasd:ResourceType>1</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"allowUnrestrictedCommunication\" vmw:value=\"false\" />\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"33\" />\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:ElementName>CD-ROM 1</rasd:ElementName>\n        <rasd:InstanceID>8</rasd:InstanceID>\n        <rasd:Parent>4</rasd:Parent>\n        <rasd:ResourceSubType>vmware.cdrom.iso</rasd:ResourceSubType>\n        <rasd:ResourceType>15</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:ElementName>Hard Disk 1</rasd:ElementName>\n        <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>\n        <rasd:InstanceID>9</rasd:InstanceID>\n        <rasd:Parent>3</rasd:Parent>\n        <rasd:ResourceType>17</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"backing.writeThrough\" vmw:value=\"false\" />\n      </Item>\n      <Item ovf:required=\"false\">\n        <rasd:AddressOnParent>0</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>\n        <rasd:Description>Floppy Drive</rasd:Description>\n        <rasd:ElementName>Floppy 1</rasd:ElementName>\n        <rasd:InstanceID>10</rasd:InstanceID>\n        <rasd:ResourceSubType>vmware.floppy.remotedevice</rasd:ResourceSubType>\n        <rasd:ResourceType>14</rasd:ResourceType>\n      </Item>\n      <Item>\n        <rasd:AddressOnParent>7</rasd:AddressOnParent>\n        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>\n        <rasd:Connection>VM Network</rasd:Connection>\n        <rasd:Description>E1000 ethernet adapter on \"VM Network\"</rasd:Description>\n        <rasd:ElementName>Ethernet 1</rasd:ElementName>\n        <rasd:InstanceID>11</rasd:InstanceID>\n        <rasd:ResourceSubType>E1000</rasd:ResourceSubType>\n        <rasd:ResourceType>10</rasd:ResourceType>\n        <vmw:Config ovf:required=\"false\" vmw:key=\"slotInfo.pciSlotNumber\" vmw:value=\"32\" />\n        <vmw:Config ovf:required=\"false\" vmw:key=\"wakeOnLanEnabled\" vmw:value=\"true\" />\n      </Item>\n      <vmw:Config ovf:required=\"false\" vmw:key=\"cpuHotAddEnabled\" vmw:value=\"false\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"cpuHotRemoveEnabled\" vmw:value=\"false\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"firmware\" vmw:value=\"bios\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"virtualICH7MPresent\" vmw:value=\"false\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"virtualSMCPresent\" vmw:value=\"false\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"memoryHotAddEnabled\" vmw:value=\"false\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"nestedHVEnabled\" vmw:value=\"false\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.powerOffType\" vmw:value=\"soft\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.resetType\" vmw:value=\"soft\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.standbyAction\" vmw:value=\"checkpoint\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"powerOpInfo.suspendType\" vmw:value=\"hard\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.afterPowerOn\" vmw:value=\"true\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.afterResume\" vmw:value=\"true\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.beforeGuestShutdown\" vmw:value=\"true\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.beforeGuestStandby\" vmw:value=\"true\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.syncTimeWithHost\" vmw:value=\"false\" />\n      <vmw:Config ovf:required=\"false\" vmw:key=\"tools.toolsUpgradePolicy\" vmw:value=\"manual\" />\n    </VirtualHardwareSection>\n  </VirtualSystem>\n</Envelope>\n"
  },
  {
    "path": "tests/test-i-ova.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i ova option.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nf=../test-data/phony-guests/windows.img\nrequires test -f $f\nrequires test -s $f\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=test-i-ova.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\nvmdk=test-ova.vmdk\novf=test-i-ova.ovf\nmf=test-ova.mf\nova=test-ova.ova\nraw=TestOva-sda\n\nqemu-img convert $f -O vmdk $d/$vmdk\ncp \"$srcdir/$ovf\" $d/$ovf\nsha1=`do_sha1 $d/$ovf`\necho \"SHA1($ovf)= $sha1\" > $d/$mf\nsha256=`do_sha256 $d/$vmdk`\necho \"SHA256($vmdk)= $sha256\" >> $d/$mf\n\npushd .\ncd $d\ntar -cf $ova $ovf $mf $vmdk\nrm -rf $ovf $mf $vmdk\npopd\n\n$VG virt-v2v --debug-gc \\\n    -i ova $d/$ova \\\n    -o local -of raw -os $d\n\n# Test the libvirt XML metadata and a disk was created.\ntest -f $d/$raw\ntest -f $d/TestOva.xml\n\ncat $d/TestOva.xml\n\n# Normalize the XML output.\nmv $d/TestOva.xml $d/TestOva.xml.old\nsed \\\n    -e \"s,source file='.*TestOva-sda',source file='TestOva-sda',\" \\\n    -e \"s,generated by.*--,generated by --,\" \\\n    < $d/TestOva.xml.old > $d/TestOva.xml\n\n# Check the libvirt XML output.\ndiff -u \"$srcdir/test-i-ova.xml\" $d/TestOva.xml\n"
  },
  {
    "path": "tests/test-i-ova.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<domain type='kvm'>\n  <!-- generated by -->\n  <name>TestOva</name>\n  <metadata>\n    <libosinfo:libosinfo xmlns:libosinfo='http://libosinfo.org/xmlns/libvirt/domain/1.0'>\n      <libosinfo:os id='http://microsoft.com/win/2k22'/>\n    </libosinfo:libosinfo>\n  </metadata>\n  <memory unit='KiB'>2097152</memory>\n  <currentMemory unit='KiB'>2097152</currentMemory>\n  <vcpu>1</vcpu>\n  <cpu mode='host-model'/>\n  <features>\n    <acpi/>\n    <apic/>\n  </features>\n  <os>\n    <type arch='x86_64' machine='q35'>hvm</type>\n  </os>\n  <clock offset='localtime'/>\n  <on_poweroff>destroy</on_poweroff>\n  <on_reboot>restart</on_reboot>\n  <on_crash>restart</on_crash>\n  <devices>\n    <disk type='file' device='disk'>\n      <driver name='qemu' type='raw'/>\n      <source file='TestOva-sda'/>\n      <target dev='vda' bus='virtio'/>\n      <boot order='1'/>\n    </disk>\n    <disk device='cdrom' type='file'>\n      <driver name='qemu' type='raw'/>\n      <target dev='sda' bus='sata'/>\n    </disk>\n    <disk device='floppy' type='file'>\n      <driver name='qemu' type='raw'/>\n      <target dev='fda'/>\n    </disk>\n    <interface type='bridge'>\n      <source bridge='VM Network'/>\n      <model type='virtio'/>\n    </interface>\n    <video>\n      <model type='vga' vram='16384' heads='1'/>\n    </video>\n    <graphics type='vnc' autoport='yes'/>\n    <rng model='virtio'>\n      <backend model='random'>/dev/urandom</backend>\n    </rng>\n    <memballoon model='virtio'/>\n    <panic model='isa'>\n      <address type='isa' iobase='0x505'/>\n    </panic>\n    <input type='tablet' bus='usb'/>\n    <input type='mouse' bus='ps2'/>\n    <console type='pty'/>\n    <controller type='virtio-serial' model='virtio'/>\n    <channel type='unix'>\n      <target type='virtio' name='org.qemu.guest_agent.0'/>\n    </channel>\n  </devices>\n</domain>\n"
  },
  {
    "path": "tests/test-i-vmx-1.expected",
    "content": "\nSource guest information (--print-source option):\n\n    source name: BZ1308535_21disks\nhypervisor type: vmware\n       VM genid: \n         memory: 2147483648 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: bios\nUEFI secureboot: false\n        display: \n          sound: \ndisks:\n\t0 [scsi]\n\t1 [scsi]\n\t2 [scsi]\n\t3 [scsi]\n\t4 [scsi]\n\t5 [scsi]\n\t6 [scsi]\n\t7 [scsi]\n\t8 [scsi]\n\t9 [scsi]\n\t10 [scsi]\n\t11 [scsi]\n\t12 [scsi]\n\t13 [scsi]\n\t14 [scsi]\n\t15 [scsi]\n\t16 [scsi]\n\t17 [scsi]\n\t18 [scsi]\n\t19 [scsi]\n\t20 [scsi]\nremovable media:\n\tCD-ROM [ide] in slot 2\nNICs:\n\tNetwork \"VM Network\" mac: 00:0c:29:36:ef:31 [vmxnet3]\n\n"
  },
  {
    "path": "tests/test-i-vmx-1.vmx",
    "content": ".encoding = \"UTF-8\"\nconfig.version = \"8\"\nvirtualHW.version = \"8\"\nnvram = \"BZ1308535_21disks.nvram\"\npciBridge0.present = \"TRUE\"\nsvga.present = \"TRUE\"\npciBridge4.present = \"TRUE\"\npciBridge4.virtualDev = \"pcieRootPort\"\npciBridge4.functions = \"8\"\npciBridge5.present = \"TRUE\"\npciBridge5.virtualDev = \"pcieRootPort\"\npciBridge5.functions = \"8\"\npciBridge6.present = \"TRUE\"\npciBridge6.virtualDev = \"pcieRootPort\"\npciBridge6.functions = \"8\"\npciBridge7.present = \"TRUE\"\npciBridge7.virtualDev = \"pcieRootPort\"\npciBridge7.functions = \"8\"\nvmci0.present = \"TRUE\"\nhpet0.present = \"TRUE\"\ndisplayName = \"BZ1308535_21disks\"\nextendedConfigFile = \"BZ1308535_21disks.vmxf\"\nvirtualHW.productCompatibility = \"hosted\"\nmemSize = \"2048\"\nsched.cpu.units = \"mhz\"\npowerType.powerOff = \"soft\"\npowerType.suspend = \"hard\"\npowerType.reset = \"soft\"\nscsi0.virtualDev = \"pvscsi\"\nscsi0.present = \"TRUE\"\nscsi1.virtualDev = \"pvscsi\"\nscsi1.present = \"TRUE\"\nide1:0.deviceType = \"cdrom-image\"\nide1:0.fileName = \"/vmfs/volumes/5458b680-34ec3500-9f36-001320f5f6ca/ISOs/RHEL-7.1-20150219.1-Server-x86_64-boot.iso\"\nide1:0.present = \"TRUE\"\nfloppy0.startConnected = \"FALSE\"\nfloppy0.clientDevice = \"TRUE\"\nfloppy0.fileName = \"vmware-null-remote-floppy\"\nethernet0.virtualDev = \"vmxnet3\"\nethernet0.networkName = \"VM Network\"\nethernet0.addressType = \"generated\"\nethernet0.present = \"TRUE\"\nscsi0:0.deviceType = \"scsi-hardDisk\"\nscsi0:0.fileName = \"BZ1308535_21disks.vmdk\"\nscsi0:0.present = \"TRUE\"\nscsi0:1.deviceType = \"scsi-hardDisk\"\nscsi0:1.fileName = \"BZ1308535_21disks_1.vmdk\"\nscsi0:1.present = \"TRUE\"\nscsi0:2.deviceType = \"scsi-hardDisk\"\nscsi0:2.fileName = \"BZ1308535_21disks_2.vmdk\"\nscsi0:2.present = \"TRUE\"\nscsi0:3.deviceType = \"scsi-hardDisk\"\nscsi0:3.fileName = \"BZ1308535_21disks_3.vmdk\"\nscsi0:3.present = \"TRUE\"\nscsi0:4.deviceType = \"scsi-hardDisk\"\nscsi0:4.fileName = \"BZ1308535_21disks_4.vmdk\"\nscsi0:4.present = \"TRUE\"\nscsi0:5.deviceType = \"scsi-hardDisk\"\nscsi0:5.fileName = \"BZ1308535_21disks_5.vmdk\"\nscsi0:5.present = \"TRUE\"\nscsi0:6.deviceType = \"scsi-hardDisk\"\nscsi0:6.fileName = \"BZ1308535_21disks_6.vmdk\"\nscsi0:6.present = \"TRUE\"\nscsi0:8.deviceType = \"scsi-hardDisk\"\nscsi0:8.fileName = \"BZ1308535_21disks_7.vmdk\"\nscsi0:8.present = \"TRUE\"\nscsi0:9.deviceType = \"scsi-hardDisk\"\nscsi0:9.fileName = \"BZ1308535_21disks_8.vmdk\"\nscsi0:9.present = \"TRUE\"\nscsi0:10.deviceType = \"scsi-hardDisk\"\nscsi0:10.fileName = \"BZ1308535_21disks_9.vmdk\"\nscsi0:10.present = \"TRUE\"\nscsi0:11.deviceType = \"scsi-hardDisk\"\nscsi0:11.fileName = \"BZ1308535_21disks_10.vmdk\"\nscsi0:11.present = \"TRUE\"\nscsi0:12.deviceType = \"scsi-hardDisk\"\nscsi0:12.fileName = \"BZ1308535_21disks_11.vmdk\"\nscsi0:12.present = \"TRUE\"\nscsi0:13.deviceType = \"scsi-hardDisk\"\nscsi0:13.fileName = \"BZ1308535_21disks_12.vmdk\"\nscsi0:13.present = \"TRUE\"\nscsi0:14.deviceType = \"scsi-hardDisk\"\nscsi0:14.fileName = \"BZ1308535_21disks_13.vmdk\"\nscsi0:14.present = \"TRUE\"\nscsi0:15.deviceType = \"scsi-hardDisk\"\nscsi0:15.fileName = \"BZ1308535_21disks_14.vmdk\"\nscsi0:15.present = \"TRUE\"\nscsi1:0.deviceType = \"scsi-hardDisk\"\nscsi1:0.fileName = \"BZ1308535_21disks_15.vmdk\"\nscsi1:0.present = \"TRUE\"\nscsi1:1.deviceType = \"scsi-hardDisk\"\nscsi1:1.fileName = \"BZ1308535_21disks_16.vmdk\"\nscsi1:1.present = \"TRUE\"\nscsi1:2.deviceType = \"scsi-hardDisk\"\nscsi1:2.fileName = \"BZ1308535_21disks_17.vmdk\"\nscsi1:2.present = \"TRUE\"\nscsi1:3.deviceType = \"scsi-hardDisk\"\nscsi1:3.fileName = \"BZ1308535_21disks_18.vmdk\"\nscsi1:3.present = \"TRUE\"\nscsi1:4.deviceType = \"scsi-hardDisk\"\nscsi1:4.fileName = \"BZ1308535_21disks_19.vmdk\"\nscsi1:4.present = \"TRUE\"\nscsi1:5.deviceType = \"scsi-hardDisk\"\nscsi1:5.fileName = \"BZ1308535_21disks_20.vmdk\"\nscsi1:5.present = \"TRUE\"\nguestOS = \"rhel6-64\"\ntoolScripts.afterPowerOn = \"TRUE\"\ntoolScripts.afterResume = \"TRUE\"\ntoolScripts.beforeSuspend = \"TRUE\"\ntoolScripts.beforePowerOff = \"TRUE\"\nuuid.bios = \"56 4d 96 af e6 46 bd 86-5c 4d 65 4e 77 36 ef 31\"\nuuid.location = \"56 4d 96 af e6 46 bd 86-5c 4d 65 4e 77 36 ef 31\"\nvc.uuid = \"52 31 cb fc c1 3f 96 32-83 c0 bb 70 6c 90 5c fd\"\nchipset.onlineStandby = \"FALSE\"\nsched.cpu.min = \"0\"\nsched.cpu.shares = \"normal\"\nsched.mem.min = \"0\"\nsched.mem.minSize = \"0\"\nsched.mem.shares = \"normal\"\nsvga.vramSize = \"8388608\"\nsched.swap.derivedName = \"/vmfs/volumes/5458b680-34ec3500-9f36-001320f5f6ca/BZ1308535_21disks/BZ1308535_21disks-6a024f8a.vswp\"\nreplay.supported = \"FALSE\"\nreplay.filename = \"\"\nscsi0:0.redo = \"\"\nscsi0:1.redo = \"\"\nscsi0:2.redo = \"\"\nscsi0:3.redo = \"\"\nscsi0:4.redo = \"\"\nscsi0:5.redo = \"\"\nscsi0:6.redo = \"\"\nscsi0:8.redo = \"\"\nscsi0:9.redo = \"\"\nscsi0:10.redo = \"\"\nscsi0:11.redo = \"\"\nscsi0:12.redo = \"\"\nscsi0:13.redo = \"\"\nscsi0:14.redo = \"\"\nscsi0:15.redo = \"\"\nscsi1:0.redo = \"\"\nscsi1:1.redo = \"\"\nscsi1:2.redo = \"\"\nscsi1:3.redo = \"\"\nscsi1:4.redo = \"\"\nscsi1:5.redo = \"\"\npciBridge0.pciSlotNumber = \"17\"\npciBridge4.pciSlotNumber = \"21\"\npciBridge5.pciSlotNumber = \"22\"\npciBridge6.pciSlotNumber = \"23\"\npciBridge7.pciSlotNumber = \"24\"\nscsi0.pciSlotNumber = \"160\"\nscsi1.pciSlotNumber = \"192\"\nethernet0.pciSlotNumber = \"224\"\nvmci0.pciSlotNumber = \"32\"\nscsi0.sasWWID = \"50 05 05 6f e6 46 bd 80\"\nscsi1.sasWWID = \"50 05 05 6f e6 46 bc 80\"\nethernet0.generatedAddress = \"00:0c:29:36:ef:31\"\nethernet0.generatedAddressOffset = \"0\"\nvmci0.id = \"2000088881\"\nhostCPUID.0 = \"0000000d756e65476c65746e49656e69\"\nhostCPUID.1 = \"000206a700100800179ae3bfbfebfbff\"\nhostCPUID.80000001 = \"00000000000000000000000128100800\"\nguestCPUID.0 = \"0000000d756e65476c65746e49656e69\"\nguestCPUID.1 = \"000206a700010800969822030fabfbff\"\nguestCPUID.80000001 = \"00000000000000000000000128100800\"\nuserCPUID.0 = \"0000000d756e65476c65746e49656e69\"\nuserCPUID.1 = \"000206a700100800169822030fabfbff\"\nuserCPUID.80000001 = \"00000000000000000000000128100800\"\nevcCompatibilityMode = \"FALSE\"\nvmotion.checkpointFBSize = \"8388608\"\ncleanShutdown = \"TRUE\"\nsoftPowerOff = \"TRUE\"\ntools.remindInstall = \"TRUE\"\n"
  },
  {
    "path": "tests/test-i-vmx-2.expected",
    "content": "\nSource guest information (--print-source option):\n\n    source name: Fedora 20\nhypervisor type: vmware\n       VM genid: \n         memory: 2147483648 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: bios\nUEFI secureboot: false\n        display: \n          sound: \ndisks:\n\t0 [scsi]\nremovable media:\n\nNICs:\n\tNetwork \"VM Network\" mac: 00:50:56:9b:5f:0d [vmxnet3]\n\n"
  },
  {
    "path": "tests/test-i-vmx-2.vmx",
    "content": ".encoding = \"UTF-8\"\nconfig.version = \"8\"\nvirtualHW.version = \"10\"\nnvram = \"Fedora 20.nvram\"\npciBridge0.present = \"TRUE\"\nsvga.present = \"TRUE\"\npciBridge4.present = \"TRUE\"\npciBridge4.virtualDev = \"pcieRootPort\"\npciBridge4.functions = \"8\"\npciBridge5.present = \"TRUE\"\npciBridge5.virtualDev = \"pcieRootPort\"\npciBridge5.functions = \"8\"\npciBridge6.present = \"TRUE\"\npciBridge6.virtualDev = \"pcieRootPort\"\npciBridge6.functions = \"8\"\npciBridge7.present = \"TRUE\"\npciBridge7.virtualDev = \"pcieRootPort\"\npciBridge7.functions = \"8\"\nvmci0.present = \"TRUE\"\nhpet0.present = \"TRUE\"\ndisplayName = \"Fedora 20\"\nextendedConfigFile = \"Fedora 20.vmxf\"\nvirtualHW.productCompatibility = \"hosted\"\nsvga.vramSize = \"8388608\"\nmemSize = \"2048\"\nsched.cpu.units = \"mhz\"\nsched.cpu.affinity = \"all\"\npowerType.powerOff = \"soft\"\npowerType.suspend = \"hard\"\npowerType.reset = \"soft\"\nscsi0.virtualDev = \"pvscsi\"\nscsi0.present = \"TRUE\"\nsata0.present = \"TRUE\"\nscsi0:0.deviceType = \"scsi-hardDisk\"\nscsi0:0.fileName = \"Fedora-20.vmdk\"\nsched.scsi0:0.shares = \"normal\"\nsched.scsi0:0.throughputCap = \"off\"\nscsi0:0.present = \"TRUE\"\nethernet0.virtualDev = \"vmxnet3\"\nethernet0.networkName = \"VM Network\"\nethernet0.addressType = \"vpx\"\nethernet0.generatedAddress = \"00:50:56:9b:5f:0d\"\nethernet0.present = \"TRUE\"\nsata0:0.startConnected = \"FALSE\"\nsata0:0.deviceType = \"cdrom-image\"\nsata0:0.fileName = \"/vmfs/volumes/5458b680-34ec3500-9f36-001320f5f6ca/ISOs/Fedora-20-x86_64-netinst.iso\"\nsata0:0.present = \"TRUE\"\nfloppy0.startConnected = \"FALSE\"\nfloppy0.clientDevice = \"TRUE\"\nfloppy0.fileName = \"vmware-null-remote-floppy\"\nvmci.filter.enable = \"TRUE\"\nguestOS = \"rhel7-64\"\ntoolScripts.afterPowerOn = \"TRUE\"\ntoolScripts.afterResume = \"TRUE\"\ntoolScripts.beforeSuspend = \"TRUE\"\ntoolScripts.beforePowerOff = \"TRUE\"\nuuid.bios = \"42 1b 4b 87 e6 b7 d8 81-07 a0 c9 d2 21 cd 3c 6b\"\nvc.uuid = \"50 1b 1f 1b 73 00 32 bf-93 a1 1c b2 b4 e6 17 d6\"\nsched.cpu.min = \"0\"\nsched.cpu.shares = \"normal\"\nsched.mem.min = \"0\"\nsched.mem.minSize = \"0\"\nsched.mem.shares = \"normal\"\nsched.swap.derivedName = \"/vmfs/volumes/5458b680-34ec3500-9f36-001320f5f6ca/Fedora 20/Fedora 20-c71e4118.vswp\"\nuuid.location = \"56 4d 0f 53 00 63 d5 55-41 01 4c f7 55 ce 03 0e\"\nreplay.supported = \"TRUE\"\nreplay.filename = \"\"\nscsi0:0.redo = \"\"\npciBridge0.pciSlotNumber = \"17\"\npciBridge4.pciSlotNumber = \"21\"\npciBridge5.pciSlotNumber = \"22\"\npciBridge6.pciSlotNumber = \"23\"\npciBridge7.pciSlotNumber = \"24\"\nscsi0.pciSlotNumber = \"160\"\nethernet0.pciSlotNumber = \"192\"\nvmci0.pciSlotNumber = \"32\"\nsata0.pciSlotNumber = \"33\"\nscsi0.sasWWID = \"50 05 05 67 e6 b7 d8 80\"\nvmci0.id = \"567098475\"\nvmotion.checkpointFBSize = \"8388608\"\ncleanShutdown = \"TRUE\"\nsoftPowerOff = \"TRUE\"\nsata0:0.allowGuestConnectionControl = \"TRUE\"\ntools.syncTime = \"FALSE\"\n"
  },
  {
    "path": "tests/test-i-vmx-3.expected",
    "content": "\nSource guest information (--print-source option):\n\n    source name: RHEL 7.1 UEFI\nhypervisor type: vmware\n       VM genid: \n         memory: 2147483648 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: uefi\nUEFI secureboot: false\n        display: \n          sound: \ndisks:\n\t0 [scsi]\nremovable media:\n\tCD-ROM [ide] in slot 2\nNICs:\n\tNetwork \"VM Network\" mac: 00:0c:29:4b:2b:8c [vmxnet3]\n\n"
  },
  {
    "path": "tests/test-i-vmx-3.vmx",
    "content": ".encoding = \"UTF-8\"\nconfig.version = \"8\"\nvirtualHW.version = \"8\"\nnvram = \"RHEL 7.1 UEFI.nvram\"\npciBridge0.present = \"TRUE\"\nsvga.present = \"TRUE\"\npciBridge4.present = \"TRUE\"\npciBridge4.virtualDev = \"pcieRootPort\"\npciBridge4.functions = \"8\"\npciBridge5.present = \"TRUE\"\npciBridge5.virtualDev = \"pcieRootPort\"\npciBridge5.functions = \"8\"\npciBridge6.present = \"TRUE\"\npciBridge6.virtualDev = \"pcieRootPort\"\npciBridge6.functions = \"8\"\npciBridge7.present = \"TRUE\"\npciBridge7.virtualDev = \"pcieRootPort\"\npciBridge7.functions = \"8\"\nvmci0.present = \"TRUE\"\nhpet0.present = \"TRUE\"\ndisplayName = \"RHEL 7.1 UEFI\"\nextendedConfigFile = \"RHEL 7.1 UEFI.vmxf\"\nvirtualHW.productCompatibility = \"hosted\"\nmemSize = \"2048\"\nfirmware = \"efi\"\nsched.cpu.units = \"mhz\"\npowerType.powerOff = \"soft\"\npowerType.suspend = \"hard\"\npowerType.reset = \"soft\"\nscsi0.virtualDev = \"pvscsi\"\nscsi0.present = \"TRUE\"\nide1:0.startConnected = \"FALSE\"\nide1:0.deviceType = \"cdrom-image\"\nide1:0.fileName = \"/vmfs/volumes/5458b680-34ec3500-9f36-001320f5f6ca/ISOs/RHEL-7.1-20150219.1-Server-x86_64-boot.iso\"\nide1:0.present = \"TRUE\"\nfloppy0.startConnected = \"FALSE\"\nfloppy0.clientDevice = \"TRUE\"\nfloppy0.fileName = \"vmware-null-remote-floppy\"\nethernet0.virtualDev = \"vmxnet3\"\nethernet0.networkName = \"VM Network\"\nethernet0.addressType = \"generated\"\nethernet0.present = \"TRUE\"\nscsi0:0.deviceType = \"scsi-hardDisk\"\nscsi0:0.fileName = \"RHEL-7.1-UEFI.vmdk\"\nscsi0:0.present = \"TRUE\"\nguestOS = \"rhel6-64\"\ntoolScripts.afterPowerOn = \"TRUE\"\ntoolScripts.afterResume = \"TRUE\"\ntoolScripts.beforeSuspend = \"TRUE\"\ntoolScripts.beforePowerOff = \"TRUE\"\nuuid.bios = \"56 4d 99 89 a7 21 91 0d-cc 28 e2 db d5 4b 2b 8c\"\nuuid.location = \"56 4d 99 89 a7 21 91 0d-cc 28 e2 db d5 4b 2b 8c\"\nvc.uuid = \"52 3f 29 10 d3 81 16 43-fa b0 e3 af 3b ba 36 e5\"\nchipset.onlineStandby = \"FALSE\"\nsched.cpu.min = \"0\"\nsched.cpu.shares = \"normal\"\nsched.mem.min = \"0\"\nsched.mem.minSize = \"0\"\nsched.mem.shares = \"normal\"\nsvga.vramSize = \"8388608\"\nsched.swap.derivedName = \"/vmfs/volumes/5458b680-34ec3500-9f36-001320f5f6ca/RHEL 7.1 UEFI/RHEL 7.1 UEFI-58ff6e6f.vswp\"\nreplay.supported = \"FALSE\"\nreplay.filename = \"\"\nscsi0:0.redo = \"\"\npciBridge0.pciSlotNumber = \"17\"\npciBridge4.pciSlotNumber = \"21\"\npciBridge5.pciSlotNumber = \"22\"\npciBridge6.pciSlotNumber = \"23\"\npciBridge7.pciSlotNumber = \"24\"\nscsi0.pciSlotNumber = \"160\"\nethernet0.pciSlotNumber = \"192\"\nvmci0.pciSlotNumber = \"32\"\nscsi0.sasWWID = \"50 05 05 69 a7 21 91 00\"\nethernet0.generatedAddress = \"00:0c:29:4b:2b:8c\"\nethernet0.generatedAddressOffset = \"0\"\nvmci0.id = \"-716493940\"\nhostCPUID.0 = \"0000000d756e65476c65746e49656e69\"\nhostCPUID.1 = \"000206a700100800179ae3bfbfebfbff\"\nhostCPUID.80000001 = \"00000000000000000000000128100800\"\nguestCPUID.0 = \"0000000d756e65476c65746e49656e69\"\nguestCPUID.1 = \"000206a700010800969822030fabfbff\"\nguestCPUID.80000001 = \"00000000000000000000000128100800\"\nuserCPUID.0 = \"0000000d756e65476c65746e49656e69\"\nuserCPUID.1 = \"000206a700100800169822030fabfbff\"\nuserCPUID.80000001 = \"00000000000000000000000128100800\"\nevcCompatibilityMode = \"FALSE\"\nvmotion.checkpointFBSize = \"8388608\"\ncleanShutdown = \"TRUE\"\nsoftPowerOff = \"TRUE\"\nide1:0.allowGuestConnectionControl = \"TRUE\"\ntools.syncTime = \"FALSE\"\n"
  },
  {
    "path": "tests/test-i-vmx-4.expected",
    "content": "\nSource guest information (--print-source option):\n\n    source name: Windows 7 x64\nhypervisor type: vmware\n       VM genid: \n         memory: 2147483648 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: bios\nUEFI secureboot: false\n        display: \n          sound: \ndisks:\n\t0 [scsi]\nremovable media:\n\tCD-ROM [ide] in slot 2\nNICs:\n\tNetwork \"VM Network\" mac: 00:0c:29:94:89:23 [e1000]\n\n"
  },
  {
    "path": "tests/test-i-vmx-4.vmx",
    "content": ".encoding = \"UTF-8\"\nconfig.version = \"8\"\nvirtualHW.version = \"8\"\nnvram = \"Windows 7 x64.nvram\"\npciBridge0.present = \"TRUE\"\nsvga.present = \"TRUE\"\npciBridge4.present = \"TRUE\"\npciBridge4.virtualDev = \"pcieRootPort\"\npciBridge4.functions = \"8\"\npciBridge5.present = \"TRUE\"\npciBridge5.virtualDev = \"pcieRootPort\"\npciBridge5.functions = \"8\"\npciBridge6.present = \"TRUE\"\npciBridge6.virtualDev = \"pcieRootPort\"\npciBridge6.functions = \"8\"\npciBridge7.present = \"TRUE\"\npciBridge7.virtualDev = \"pcieRootPort\"\npciBridge7.functions = \"8\"\nvmci0.present = \"TRUE\"\nhpet0.present = \"TRUE\"\ndisplayName = \"Windows 7 x64\"\nextendedConfigFile = \"Windows 7 x64.vmxf\"\nvirtualHW.productCompatibility = \"hosted\"\nmemSize = \"2048\"\nsched.cpu.units = \"mhz\"\npowerType.powerOff = \"soft\"\npowerType.suspend = \"hard\"\npowerType.reset = \"soft\"\nscsi0.virtualDev = \"lsisas1068\"\nscsi0.present = \"TRUE\"\nide1:0.deviceType = \"cdrom-image\"\nide1:0.fileName = \"/vmfs/volumes/5458b680-34ec3500-9f36-001320f5f6ca/ISOs/en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso\"\nide1:0.present = \"TRUE\"\nfloppy0.startConnected = \"FALSE\"\nfloppy0.clientDevice = \"TRUE\"\nfloppy0.fileName = \"vmware-null-remote-floppy\"\nethernet0.virtualDev = \"e1000\"\nethernet0.networkName = \"VM Network\"\nethernet0.addressType = \"generated\"\nethernet0.present = \"TRUE\"\nscsi0:0.deviceType = \"scsi-hardDisk\"\nscsi0:0.fileName = \"Windows-7-x64.vmdk\"\nscsi0:0.present = \"TRUE\"\nguestOS = \"windows7-64\"\ntoolScripts.afterPowerOn = \"TRUE\"\ntoolScripts.afterResume = \"TRUE\"\ntoolScripts.beforeSuspend = \"TRUE\"\ntoolScripts.beforePowerOff = \"TRUE\"\nuuid.bios = \"56 4d 6f ca 63 a5 a8 3e-13 ec 73 89 1d 94 89 23\"\nuuid.location = \"56 4d 6f ca 63 a5 a8 3e-13 ec 73 89 1d 94 89 23\"\nvc.uuid = \"52 7a 63 e1 2c 2f 50 46-91 66 3a e8 fa f9 c4 65\"\nchipset.onlineStandby = \"FALSE\"\nsched.cpu.min = \"0\"\nsched.cpu.shares = \"normal\"\nsched.mem.min = \"0\"\nsched.mem.minSize = \"0\"\nsched.mem.shares = \"normal\"\nsvga.vramSize = \"8388608\"\nsched.swap.derivedName = \"/vmfs/volumes/5458b680-34ec3500-9f36-001320f5f6ca/Windows 7 x64/Windows 7 x64-8e3b0929.vswp\"\nreplay.supported = \"FALSE\"\nreplay.filename = \"\"\nscsi0:0.redo = \"\"\npciBridge0.pciSlotNumber = \"17\"\npciBridge4.pciSlotNumber = \"21\"\npciBridge5.pciSlotNumber = \"22\"\npciBridge6.pciSlotNumber = \"23\"\npciBridge7.pciSlotNumber = \"24\"\nscsi0.pciSlotNumber = \"160\"\nethernet0.pciSlotNumber = \"32\"\nvmci0.pciSlotNumber = \"33\"\nscsi0.sasWWID = \"50 05 05 6a 63 a5 a8 30\"\nethernet0.generatedAddress = \"00:0c:29:94:89:23\"\nethernet0.generatedAddressOffset = \"0\"\nvmci0.id = \"496273699\"\nhostCPUID.0 = \"0000000b756e65476c65746e49656e69\"\nhostCPUID.1 = \"000206c220200800029ee3ffbfebfbff\"\nhostCPUID.80000001 = \"0000000000000000000000012c100800\"\nguestCPUID.0 = \"0000000b756e65476c65746e49656e69\"\nguestCPUID.1 = \"000206c200010800829822030fabfbff\"\nguestCPUID.80000001 = \"00000000000000000000000128100800\"\nuserCPUID.0 = \"0000000b756e65476c65746e49656e69\"\nuserCPUID.1 = \"000206c220200800029822030fabfbff\"\nuserCPUID.80000001 = \"00000000000000000000000128100800\"\nevcCompatibilityMode = \"FALSE\"\nvmotion.checkpointFBSize = \"8388608\"\ncleanShutdown = \"TRUE\"\nsoftPowerOff = \"TRUE\"\ntools.remindInstall = \"TRUE\"\n"
  },
  {
    "path": "tests/test-i-vmx-5.expected",
    "content": "\nSource guest information (--print-source option):\n\n    source name: MSEdge - Win10_preview\nhypervisor type: vmware\n       VM genid: 8312995e-57b8-f814-4013-c1ba795f05ba\n         memory: 2147483648 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: sockets: 1 cores/socket: 1 threads/core: 1\n   CPU features: \n       firmware: bios\nUEFI secureboot: false\n        display: \n          sound: \ndisks:\n\t0 [scsi]\nremovable media:\n\nNICs:\n\tBridge \"ethernet0\" mac: 00:0c:29:bf:e4:5d [e1000e]\n\n"
  },
  {
    "path": "tests/test-i-vmx-5.vmx",
    "content": ".encoding = \"UTF-8\"\r\nconfig.version = \"8\"\r\nvirtualHW.version = \"11\"\r\nmemsize = \"2048\"\r\nMemAllowAutoScaleDown = \"FALSE\"\r\ndisplayName = \"MSEdge - Win10_preview\"\r\nguestOS = \"windows9-64\"\r\ncpuid.coresPerSocket = \"1\"\r\nvmci0.present = \"TRUE\"\r\nethernet0.present = \"TRUE\"\r\nethernet0.addressType = \"generated\"\r\nethernet0.connectionType = \"bridged\"\r\nethernet0.virtualDev = \"e1000e\"\r\nethernet0.startConnected = \"TRUE\"\r\nscsi0.present = \"TRUE\"\r\nscsi0.virtualDev = \"lsisas1068\"\r\nscsi0:0.present = \"TRUE\"\r\nscsi0:0.fileName = \"MSEdge-Win10_preview.vmdk\"\r\nbios.bootorder = \"hdd,CDROM\"\r\ncleanshutdown = \"TRUE\"\r\nethernet0.bsdname = \"en0\"\r\nethernet0.displayname = \"Ethernet\"\r\nethernet0.linkstatepropagation.enable = \"FALSE\"\r\ngui.fullscreenatpoweron = \"FALSE\"\r\ngui.viewmodeatpoweron = \"windowed\"\r\nhgfs.linkrootshare = \"TRUE\"\r\nhgfs.maprootshare = \"TRUE\"\r\nisolation.tools.hgfs.disable = \"FALSE\"\r\nmonitor.phys_bits_used = \"42\"\r\nmsg.autoanswer = \"true\"\r\nnuma.autosize.cookie = \"10001\"\r\nnuma.autosize.vcpu.maxpervirtualnode = \"1\"\r\nnvram = \"MSEdge - Win10_preview.nvram\"\r\nproxyapps.publishtohost = \"FALSE\"\r\nremotedisplay.vnc.enabled = \"FALSE\"\r\nremotedisplay.vnc.port = \"5900\"\r\nreplay.filename = \"\"\r\nreplay.supported = \"FALSE\"\r\nscsi0:0.redo = \"\"\r\nsoftpoweroff = \"TRUE\"\r\ntools.synctime = \"true\"\r\nuuid.action = \"create\"\r\nvirtualhw.productcompatibility = \"hosted\"\r\nvm.genid = \"-570734802784577186\"\r\nvm.genidx = \"-5042519231342505152\"\r\nvmotion.checkpointfbsize = \"33554432\"\r\npciBridge0.present = \"TRUE\"\r\ntools.upgrade.policy = \"useGlobal\"\r\npciBridge4.present = \"TRUE\"\r\npciBridge4.virtualDev = \"pcieRootPort\"\r\npciBridge4.functions = \"8\"\r\npciBridge5.present = \"TRUE\"\r\npciBridge5.virtualDev = \"pcieRootPort\"\r\npciBridge5.functions = \"8\"\r\npciBridge6.present = \"TRUE\"\r\npciBridge6.virtualDev = \"pcieRootPort\"\r\npciBridge6.functions = \"8\"\r\npciBridge7.present = \"TRUE\"\r\npciBridge7.virtualDev = \"pcieRootPort\"\r\npciBridge7.functions = \"8\"\r\nhpet0.present = \"TRUE\"\r\nextendedConfigFile = \"MSEdge - Win10_preview.vmxf\"\r\nuuid.bios = \"56 4d 54 59 5d 0c 51 8d-d3 40 38 4f fe bf e4 5d\"\r\nuuid.location = \"56 4d 54 59 5d 0c 51 8d-d3 40 38 4f fe bf e4 5d\"\r\nmigrate.hostlog = \".\\MSEdge - Win10_preview-aee69569.hlog\"\r\npciBridge0.pciSlotNumber = \"17\"\r\npciBridge4.pciSlotNumber = \"21\"\r\npciBridge5.pciSlotNumber = \"22\"\r\npciBridge6.pciSlotNumber = \"23\"\r\npciBridge7.pciSlotNumber = \"24\"\r\nscsi0.pciSlotNumber = \"160\"\r\nethernet0.pciSlotNumber = \"192\"\r\nvmci0.pciSlotNumber = \"32\"\r\nscsi0.sasWWID = \"50 05 05 69 5d 0c 51 80\"\r\nethernet0.generatedAddress = \"00:0c:29:bf:e4:5d\"\r\nethernet0.generatedAddressOffset = \"0\"\r\nvmci0.id = \"-20978595\"\r\nvmotion.checkpointSVGAPrimarySize = \"33554432\"\r\ntoolsInstallManager.updateCounter = \"1\"\r\ntoolsInstallManager.lastInstallError = \"21004\"\r\n"
  },
  {
    "path": "tests/test-i-vmx-6.expected",
    "content": "\nSource guest information (--print-source option):\n\n    source name: esx6.7-rhel8.6-nvme-disk\nhypervisor type: vmware\n       VM genid: \n         memory: 2147483648 (bytes)\n       nr vCPUs: 1\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: bios\nUEFI secureboot: false\n        display: \n          sound: \ndisks:\n\t0 [nvme]\nremovable media:\n\nNICs:\n\tNetwork \"VM Network\" mac: 00:50:56:ac:cf:51 [vmxnet3]\n\n"
  },
  {
    "path": "tests/test-i-vmx-6.vmx",
    "content": ".encoding = \"UTF-8\"\nconfig.version = \"8\"\nvirtualHW.version = \"14\"\nnvram = \"esx6.7-rhel8.6-nvme-disk.nvram\"\npciBridge0.present = \"TRUE\"\nsvga.present = \"TRUE\"\npciBridge4.present = \"TRUE\"\npciBridge4.virtualDev = \"pcieRootPort\"\npciBridge4.functions = \"8\"\npciBridge5.present = \"TRUE\"\npciBridge5.virtualDev = \"pcieRootPort\"\npciBridge5.functions = \"8\"\npciBridge6.present = \"TRUE\"\npciBridge6.virtualDev = \"pcieRootPort\"\npciBridge6.functions = \"8\"\npciBridge7.present = \"TRUE\"\npciBridge7.virtualDev = \"pcieRootPort\"\npciBridge7.functions = \"8\"\nvmci0.present = \"TRUE\"\nhpet0.present = \"TRUE\"\nfloppy0.present = \"FALSE\"\nsvga.vramSize = \"8388608\"\nmemSize = \"2048\"\npowerType.powerOff = \"default\"\npowerType.suspend = \"default\"\npowerType.reset = \"default\"\ntools.upgrade.policy = \"manual\"\nsched.cpu.units = \"mhz\"\nsched.cpu.affinity = \"all\"\nvm.createDate = \"1648710632879834\"\nsata0.present = \"TRUE\"\nnvme0.present = \"TRUE\"\nnvme0:0.fileName = \"nvme-disk.vmdk\"\nsched.nvme0:0.shares = \"normal\"\nsched.nvme0:0.throughputCap = \"off\"\nnvme0:0.present = \"TRUE\"\nethernet0.virtualDev = \"vmxnet3\"\nethernet0.networkName = \"VM Network\"\nethernet0.addressType = \"vpx\"\nethernet0.generatedAddress = \"00:50:56:ac:cf:51\"\nethernet0.uptCompatibility = \"TRUE\"\nethernet0.present = \"TRUE\"\nsata0:0.startConnected = \"FALSE\"\nsata0:0.deviceType = \"cdrom-raw\"\nsata0:0.clientDevice = \"TRUE\"\nsata0:0.fileName = \"emptyBackingString\"\nsata0:0.present = \"TRUE\"\ndisplayName = \"esx6.7-rhel8.6-nvme-disk\"\nguestOS = \"rhel8-64\"\ntoolScripts.afterPowerOn = \"TRUE\"\ntoolScripts.afterResume = \"TRUE\"\ntoolScripts.beforeSuspend = \"TRUE\"\ntoolScripts.beforePowerOff = \"TRUE\"\nuuid.bios = \"42 2c 17 6d 0b 31 4e 16-82 97 f0 b4 99 0b 86 09\"\nvc.uuid = \"50 2c fc c7 be fb b1 48-fc 7d 4b 39 b3 f5 de b5\"\nmigrate.hostLog = \"esx6.7-rhel8.6-nvme-disk-7585773e.hlog\"\nsched.cpu.min = \"0\"\nsched.cpu.shares = \"normal\"\nsched.mem.min = \"0\"\nsched.mem.minSize = \"0\"\nsched.mem.shares = \"normal\"\nmigrate.encryptionMode = \"opportunistic\"\nnuma.autosize.cookie = \"10001\"\nnuma.autosize.vcpu.maxPerVirtualNode = \"1\"\nsched.swap.derivedName = \"/vmfs/volumes/02155034-b2df70e7/esx6.7-rhel8.6-nvme-disk/esx6.7-rhel8.6-nvme-disk-34965f24.vswp\"\nuuid.location = \"56 4d c5 90 b1 ca f0 32-64 99 32 a7 d8 97 27 3a\"\nnvme0:0.redo = \"\"\npciBridge0.pciSlotNumber = \"17\"\npciBridge4.pciSlotNumber = \"21\"\npciBridge5.pciSlotNumber = \"22\"\npciBridge6.pciSlotNumber = \"23\"\npciBridge7.pciSlotNumber = \"24\"\nethernet0.pciSlotNumber = \"160\"\nvmci0.pciSlotNumber = \"32\"\nsata0.pciSlotNumber = \"33\"\nnvme0.pciSlotNumber = \"192\"\nvmci0.id = \"-1727298039\"\nmonitor.phys_bits_used = \"43\"\nvmotion.checkpointFBSize = \"8388608\"\nvmotion.checkpointSVGAPrimarySize = \"8388608\"\ncleanShutdown = \"TRUE\"\nsoftPowerOff = \"TRUE\"\nsvga.guestBackedPrimaryAware = \"TRUE\"\ntools.syncTime = \"FALSE\""
  },
  {
    "path": "tests/test-i-vmx-7.expected",
    "content": "\nSource guest information (--print-source option):\n\n    source name: win2019\nhypervisor type: vmware\n       VM genid: 2f0de9ad-5b7c-f4de-d53f-23b1115d28b9\n         memory: 4294967296 (bytes)\n       nr vCPUs: 2\n     CPU vendor: \n      CPU model: \n   CPU topology: \n   CPU features: \n       firmware: uefi\nUEFI secureboot: true\n        display: \n          sound: \ndisks:\n\t0 [scsi]\n\t1 [sata]\nremovable media:\n\nNICs:\n\tNetwork \"VM Network\" mac: 00:0c:29:46:9b:0b [vmxnet3]\n\n"
  },
  {
    "path": "tests/test-i-vmx-7.vmx",
    "content": ".encoding = \"UTF-8\"\nconfig.version = \"8\"\nvirtualHW.version = \"17\"\nvmci0.present = \"TRUE\"\nfloppy0.present = \"FALSE\"\nnumvcpus = \"2\"\nmemSize = \"4096\"\nbios.bootRetry.delay = \"10\"\nfirmware = \"efi\"\npowerType.suspend = \"soft\"\ntools.upgrade.policy = \"manual\"\nsched.cpu.units = \"mhz\"\nsched.cpu.affinity = \"all\"\nvm.createDate = \"1649413453022013\"\nscsi0.virtualDev = \"lsisas1068\"\nscsi0.present = \"TRUE\"\nsata0.present = \"TRUE\"\nusb_xhci.present = \"TRUE\"\nscsi0:0.deviceType = \"scsi-hardDisk\"\nscsi0:0.fileName = \"win2019.vmdk\"\nsched.scsi0:0.shares = \"normal\"\nsched.scsi0:0.throughputCap = \"off\"\nscsi0:0.present = \"TRUE\"\nethernet0.virtualDev = \"vmxnet3\"\nethernet0.networkName = \"VM Network\"\nethernet0.addressType = \"generated\"\nethernet0.wakeOnPcktRcv = \"FALSE\"\nethernet0.present = \"TRUE\"\nsata0:0.deviceType = \"cdrom-image\"\nsata0:0.fileName = \"/vmfs/volumes/624d796f-52b87554-ccba-a4ae111c9b1b/iso/en-us_windows_server_2019_updated_aug_2021_x64_dvd_a6431a28.iso\"\nsata0:0.present = \"TRUE\"\ndisplayName = \"win2019\"\nguestOS = \"windows2019srv-64\"\nuefi.secureBoot.enabled = \"TRUE\"\ntoolScripts.afterPowerOn = \"TRUE\"\ntoolScripts.afterResume = \"TRUE\"\ntoolScripts.beforeSuspend = \"TRUE\"\ntoolScripts.beforePowerOff = \"TRUE\"\ntools.syncTime = \"FALSE\"\nuuid.bios = \"56 4d 6c 27 96 ea 12 07-6f 0b b1 1d 81 46 9b 0b\"\nuuid.location = \"56 4d 6c 27 96 ea 12 07-6f 0b b1 1d 81 46 9b 0b\"\nvc.uuid = \"52 bb 00 73 da d0 a0 c7-ad 14 03 81 13 03 ed fe\"\nsched.cpu.min = \"0\"\nsched.cpu.shares = \"normal\"\nsched.mem.min = \"0\"\nsched.mem.minSize = \"0\"\nsched.mem.shares = \"normal\"\nethernet0.generatedAddress = \"00:0c:29:46:9b:0b\"\nvmci0.id = \"-2126079221\"\ncleanShutdown = \"TRUE\"\nsata0:0.startConnected = \"TRUE\"\nextendedConfigFile = \"win2019.vmxf\"\nethernet0.uptCompatibility = \"TRUE\"\nsata0:3.fileName = \"win2019_1.vmdk\"\nsched.sata0:3.shares = \"normal\"\nsched.sata0:3.throughputCap = \"off\"\nsata0:3.present = \"TRUE\"\ntools.guest.desktop.autolock = \"FALSE\"\nnvram = \"win2019.nvram\"\npciBridge0.present = \"TRUE\"\nsvga.present = \"TRUE\"\npciBridge4.present = \"TRUE\"\npciBridge4.virtualDev = \"pcieRootPort\"\npciBridge4.functions = \"8\"\npciBridge5.present = \"TRUE\"\npciBridge5.virtualDev = \"pcieRootPort\"\npciBridge5.functions = \"8\"\npciBridge6.present = \"TRUE\"\npciBridge6.virtualDev = \"pcieRootPort\"\npciBridge6.functions = \"8\"\npciBridge7.present = \"TRUE\"\npciBridge7.virtualDev = \"pcieRootPort\"\npciBridge7.functions = \"8\"\nhpet0.present = \"TRUE\"\nRemoteDisplay.maxConnections = \"-1\"\nsched.cpu.latencySensitivity = \"normal\"\nsvga.autodetect = \"TRUE\"\ndisk.EnableUUID = \"TRUE\"\nnuma.autosize.cookie = \"20012\"\nnuma.autosize.vcpu.maxPerVirtualNode = \"2\"\nsched.swap.derivedName = \"/vmfs/volumes/624d796f-52b87554-ccba-a4ae111c9b1b/win2019/win2019-645c6913.vswp\"\nvm.genidX = \"-5104727847056752683\"\npciBridge0.pciSlotNumber = \"17\"\npciBridge4.pciSlotNumber = \"21\"\npciBridge5.pciSlotNumber = \"22\"\npciBridge6.pciSlotNumber = \"23\"\npciBridge7.pciSlotNumber = \"24\"\nscsi0.pciSlotNumber = \"160\"\nethernet0.pciSlotNumber = \"192\"\nusb_xhci.pciSlotNumber = \"224\"\nvmci0.pciSlotNumber = \"32\"\nsata0.pciSlotNumber = \"33\"\nscsi0.sasWWID = \"50 05 05 67 96 ea 12 00\"\nvmotion.checkpointFBSize = \"4194304\"\nvmotion.checkpointSVGAPrimarySize = \"16777216\"\nvmotion.svga.mobMaxSize = \"16777216\"\nvmotion.svga.graphicsMemoryKB = \"16384\"\nethernet0.generatedAddressOffset = \"0\"\nmonitor.phys_bits_used = \"45\"\nsoftPowerOff = \"TRUE\"\ntoolsInstallManager.lastInstallError = \"0\"\ntoolsInstallManager.updateCounter = \"3\"\nsvga.guestBackedPrimaryAware = \"TRUE\"\ntools.remindInstall = \"FALSE\"\nvm.genid = \"-802103094701856339\"\nusb_xhci:4.present = \"TRUE\"\nusb_xhci:4.deviceType = \"hid\"\nusb_xhci:4.port = \"4\"\nusb_xhci:4.parent = \"-1\"\nmigrate.hostLog = \"./win2019-645c6913.hlog\"\n"
  },
  {
    "path": "tests/test-i-vmx.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2017-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -i vmx option.\n#\n# This test is fairly terrible.  It doesn't test SSH at all (which has\n# been broken since 1.42).  It doesn't test copying at all.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\nexport LANG=C\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nrm -f test-i-vmx-*.actual\n\n# For the tests to succeed we need at least the fileName (VMDK input\n# files) to exist.\n\nfns=\"BZ1308535_21disks.vmdk Fedora-20.vmdk RHEL-7.1-UEFI.vmdk Windows-7-x64.vmdk MSEdge-Win10_preview.vmdk nvme-disk.vmdk\"\nfor fn in BZ1308535_21disks_{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}.vmdk; do\n    fns=\"$fns $fn\"\ndone\nfns=\"$fns win2019.vmdk win2019_1.vmdk\"\n\nfor fn in $fns; do qemu-img create -f vmdk $fn 512; done\n\nfor i in 1 2 3 4 5 6 7; do\n    $VG virt-v2v --debug-gc \\\n        -i vmx test-i-vmx-$i.vmx \\\n        --print-source > test-i-vmx-$i.actual\n\n    # Normalize the print-source output.\n    mv test-i-vmx-$i.actual test-i-vmx-$i.actual.old\n    sed \\\n        -e \"s,.*Setting up the source.*,,\" \\\n        -e \"s,.*Opening the source.*,,\" \\\n        -e \"s,$(pwd),,\" \\\n        < test-i-vmx-$i.actual.old > test-i-vmx-$i.actual\n    rm test-i-vmx-$i.actual.old\n\n    # Check the output.\n    diff -u \"$srcdir/test-i-vmx-$i.expected\" test-i-vmx-$i.actual\ndone\n\nrm test-i-vmx-*.actual\nfor fn in $fns; do rm $fn; done\n"
  },
  {
    "path": "tests/test-in-place-xml.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n# Copyright (C) 2015 Parallels IP Holdings GmbH.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v-in-place -O option.\n\nunset CDPATH\nexport LANG=C\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nimg_base=\"$abs_top_builddir/test-data/phony-guests/windows.img\"\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=$PWD/test-v2v-in-place-xml.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\nimg=\"$d/test.qcow2\"\nqemu-img convert -f raw $img_base -O qcow2 $img\n\nout=\"$d/out.xml\"\n\nlibvirt_xml=\"$d/test.xml\"\nrm -f $libvirt_xml\nn=windows\ncat > $libvirt_xml <<EOF\n<node>\n  <domain type='test'>\n    <name>$n</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='qcow2'/>\n        <source file='$img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n</node>\nEOF\n\n$VG virt-v2v-in-place --debug-gc -i libvirt -ic \"test://$libvirt_xml\" \\\n    $n -O $out\ncat $out\n\n# Expect certain elements to be present.\ngrep '^<v2v-inspection' $out\ngrep '<program>virt-v2v-inspector</program>' $out\ngrep '<disks>' $out\ngrep \"<disk index='0'>\" $out\ngrep '<distro>windows</distro>' $out\ngrep '<osinfo>win2k22</osinfo>' $out\n"
  },
  {
    "path": "tests/test-in-place.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n# Copyright (C) 2015 Parallels IP Holdings GmbH.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v-in-place.\n\nunset CDPATH\nexport LANG=C\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nimg_base=\"$abs_top_builddir/test-data/phony-guests/windows.img\"\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=$PWD/test-in-place.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\nimg=\"$d/test.qcow2\"\nrm -f $img\nqemu-img create -f qcow2 -b $img_base -o compat=1.1,backing_fmt=raw $img\nmd5=\"$(do_md5 $img_base)\"\n\nlibvirt_xml=\"$d/test.xml\"\nrm -f $libvirt_xml\nn=windows-overlay\ncat > $libvirt_xml <<EOF\n<node>\n  <domain type='test'>\n    <name>$n</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='qcow2'/>\n        <source file='$img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n</node>\nEOF\n\n$VG virt-v2v-in-place --debug-gc -i libvirt -ic \"test://$libvirt_xml\" $n\n\n# Test that the drivers have been copied over into the guest\nscript=\"$d/test.fish\"\nexpected=\"$d/expected\"\nresponse=\"$d/response\"\n\nmktest ()\n{\n    local cmd=\"$1\" exp=\"$2\"\n\n    echo \"echo '$cmd'\" >> \"$script\"\n    echo \"$cmd\" >> \"$expected\"\n\n    echo \"$cmd\" >> \"$script\"\n    echo \"$exp\" >> \"$expected\"\n}\n\n:> \"$script\"\n:> \"$expected\"\n\nfirstboot_dir=\"/Program Files/Guestfs/Firstboot\"\nmktest \"is-dir \\\"$firstboot_dir\\\"\" true\nmktest \"is-file \\\"$firstboot_dir/firstboot.bat\\\"\" true\nmktest \"is-dir \\\"$firstboot_dir/scripts\\\"\" true\nvirtio_dir=\"/Windows/Drivers/VirtIO\"\nmktest \"is-dir \\\"$virtio_dir\\\"\" true\nfor drv in netkvm vioscsi viostor; do\n    for sfx in cat inf sys; do\n        mktest \"is-file \\\"$virtio_dir/$drv.$sfx\\\"\" true\n    done\ndone\n\nguestfish --ro -a \"$img\" -i < \"$script\" > \"$response\"\ndiff -u \"$expected\" \"$response\"\n\n# Test the base image remained untouched\ntest \"$md5\" = \"$(do_md5 $img_base)\"\n"
  },
  {
    "path": "tests/test-inspector.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v-inspector.\n\nunset CDPATH\nexport LANG=C\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nimg=\"$abs_top_builddir/test-data/phony-guests/windows.img\"\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=$PWD/test-inspector.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\nout=\"$d/out\"\n\nlibvirt_xml=\"$d/test.xml\"\nrm -f $libvirt_xml\nn=windows\ncat > $libvirt_xml <<EOF\n<node>\n  <domain type='test'>\n    <name>$n</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='$img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n</node>\nEOF\n\n$VG virt-v2v-inspector --debug-gc -i libvirt -ic \"test://$libvirt_xml\" $n -O $out\ncat $out\n\n# Expect certain elements to be present.\ngrep '^<v2v-inspection' $out\ngrep '<program>virt-v2v-inspector</program>' $out\ngrep '<disks>' $out\ngrep \"<disk index='0'>\" $out\ngrep '<distro>windows</distro>' $out\ngrep '<osinfo>win2k22</osinfo>' $out\n"
  },
  {
    "path": "tests/test-it-vddk-io-query.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2018 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -io \"?\" option.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nf=test-it-vddk-io-query.actual\nrm -f $f\n\n$VG virt-v2v --debug-gc \\\n    -ic vpx://example.com -it vddk -io \"?\" > $f\n\ngrep -- \"-io vddk-config\" $f\ngrep -- \"-io vddk-thumbprint\" $f\n\nrm $f\n"
  },
  {
    "path": "tests/test-mac-expected.xml",
    "content": "    <interface type='bridge'>\n      <source bridge='VM Network'/>\n      <mac address='52:54:00:99:99:99'/>\n    </interface>\n    <interface type='network'>\n      <source network='nancy'/>\n      <mac address='52:54:00:01:02:03'/>\n    </interface>\n    <interface type='bridge'>\n      <source bridge='bob'/>\n      <mac address='52:54:00:01:02:04'/>\n    </interface>\n    <interface type='network'>\n      <source network='default_network'/>\n      <mac address='52:54:00:01:02:05'/>\n    </interface>\n    <interface type='network'>\n      <source network='default_network'/>\n      <mac address='52:54:00:01:02:06'/>\n    </interface>\n    <interface type='network'>\n      <source network='default_network'/>\n      <mac address='52:54:00:01:02:07'/>\n    </interface>\n    <interface type='bridge'>\n      <source bridge='ringo'/>\n      <mac address='52:54:00:01:02:08'/>\n    </interface>\n"
  },
  {
    "path": "tests/test-mac.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test --mac parameter.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nlibvirt_uri=\"test://$abs_builddir/test-mac.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-mac.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o local -os $d \\\n    --mac 52:54:00:01:02:03:network:nancy \\\n    --mac 52:54:00:01:02:04:bridge:bob \\\n    --network default_network\n\n# Test the libvirt XML metadata was created.\ntest -f $d/windows.xml\n\n# Extract just the network interfaces from the XML.\n# Delete the network model XML because that can change depending\n# on whether virtio-win is installed or not.\nsed -n '/interface/,/\\/interface/p' $d/windows.xml |\n  grep -v 'model type=' > $d/networks\n\n# Test that the output has mapped the networks and bridges correctly.\ndiff -ur \"$srcdir/test-mac-expected.xml\" $d/networks\n"
  },
  {
    "path": "tests/test-mac.xml.in",
    "content": "<!--\nlibguestfs virt-v2v tool\nCopyright (C) 2009-2025 Red Hat Inc.\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n-->\n<node>\n  <domain type='test'>\n    <name>windows</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_top_builddir@/test-data/phony-guests/windows.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n\n      <!-- standard ESX bridge -->\n      <interface type='bridge'>\n        <mac address='52:54:00:99:99:99'/>\n        <source bridge='VM Network'/>\n        <model type='e1000'/>\n      </interface>\n\n      <!-- various different NICs which can be remapped -->\n\n      <interface type='bridge'>\n        <mac address='52:54:00:01:02:03'/>\n        <source bridge='bob'/>\n        <model type='e1000'/>\n      </interface>\n\n      <interface type='network'>\n        <mac address='52:54:00:01:02:04'/>\n        <source network='default'/>\n        <model type='virtio'/>\n      </interface>\n\n      <interface type='network'>\n        <mac address='52:54:00:01:02:05'/>\n        <source network='john'/>\n        <model type='virtio'/>\n      </interface>\n\n      <interface type='network'>\n        <source network='paul'/>\n        <model type='virtio'/>\n        <mac address='52:54:00:01:02:06'/>\n      </interface>\n\n      <interface type='network'>\n        <model type='rtl8139'/>\n        <source network='george'/>\n        <mac address='52:54:00:01:02:07'/>\n      </interface>\n\n      <interface type='bridge'>\n        <mac address='52:54:00:01:02:08'/>\n        <model type='virtio'/>\n        <source bridge='ringo'/>\n      </interface>\n\n    </devices>\n  </domain>\n</node>\n"
  },
  {
    "path": "tests/test-machine-readable.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test --machine-readable option.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\n\n$VG virt-v2v --debug-gc --machine-readable > test-machine-readable.out\ngrep virt-v2v test-machine-readable.out\ngrep libguestfs-rewrite test-machine-readable.out\n\nrm test-machine-readable.out\n"
  },
  {
    "path": "tests/test-networks-and-bridges-expected.xml",
    "content": "    <interface type='bridge'>\n      <source bridge='bridge1'/>\n      <mac address='52:54:00:99:99:99'/>\n    </interface>\n    <interface type='bridge'>\n      <source bridge='bridge2'/>\n      <mac address='52:54:00:01:02:03'/>\n    </interface>\n    <interface type='network'>\n      <source network='network1'/>\n      <mac address='52:54:00:01:02:04'/>\n    </interface>\n    <interface type='network'>\n      <source network='network2'/>\n      <mac address='52:54:00:01:02:05'/>\n    </interface>\n    <interface type='network'>\n      <source network='network3'/>\n      <mac address='52:54:00:01:02:06'/>\n    </interface>\n    <interface type='network'>\n      <source network='network4'/>\n      <mac address='52:54:00:01:02:07'/>\n    </interface>\n    <interface type='network'>\n      <source network='network4'/>\n      <mac address='52:54:00:01:02:08'/>\n    </interface>\n"
  },
  {
    "path": "tests/test-networks-and-bridges.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test --network and --bridge parameters.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nlibvirt_uri=\"test://$abs_builddir/test-networks-and-bridges.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-networks-and-bridges.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o local -os $d \\\n    --bridge \"VM Network:bridge1\" \\\n    -b bridge2 \\\n    --network default:network1 \\\n    --network john:network2 \\\n    -n paul:network3 \\\n    --network network4\n\n# Test the libvirt XML metadata was created.\ntest -f $d/windows.xml\n\n# Extract just the network interfaces from the XML.\n# Delete the network model XML because that can change depending\n# on whether virtio-win is installed or not.\nsed -n '/interface/,/\\/interface/p' $d/windows.xml |\n  grep -v 'model type=' > $d/networks\n\n# Test that the output has mapped the networks and bridges correctly.\ndiff -ur \"$srcdir/test-networks-and-bridges-expected.xml\" $d/networks\n"
  },
  {
    "path": "tests/test-networks-and-bridges.xml.in",
    "content": "<!--\nlibguestfs virt-v2v tool\nCopyright (C) 2009-2025 Red Hat Inc.\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n-->\n<node>\n  <domain type='test'>\n    <name>windows</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_top_builddir@/test-data/phony-guests/windows.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n\n      <!-- various different networks and bridges which should\n           be renamed by the test -->\n\n      <!-- standard ESX bridge -->\n      <interface type='bridge'>\n        <mac address='52:54:00:99:99:99'/>\n        <source bridge='VM Network'/>\n        <model type='e1000'/>\n      </interface>\n\n      <!-- another bridge to be remapped -->\n      <interface type='bridge'>\n        <mac address='52:54:00:01:02:03'/>\n        <source bridge='bob'/>\n        <model type='e1000'/>\n      </interface>\n\n      <!-- typical libvirt network -->\n      <interface type='network'>\n        <mac address='52:54:00:01:02:04'/>\n        <source network='default'/>\n        <model type='virtio'/>\n      </interface>\n\n      <!-- some more random networks to map -->\n      <interface type='network'>\n        <mac address='52:54:00:01:02:05'/>\n        <source network='john'/>\n        <model type='virtio'/>\n      </interface>\n\n      <interface type='network'>\n        <source network='paul'/>\n        <model type='virtio'/>\n        <mac address='52:54:00:01:02:06'/>\n      </interface>\n\n      <interface type='network'>\n        <model type='rtl8139'/>\n        <source network='george'/>\n        <mac address='52:54:00:01:02:07'/>\n      </interface>\n\n      <interface type='network'>\n        <mac address='52:54:00:01:02:08'/>\n        <model type='virtio'/>\n        <source network='ringo'/>\n      </interface>\n\n    </devices>\n  </domain>\n</node>\n"
  },
  {
    "path": "tests/test-no-fstrim.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2026 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test --no-fstrim option.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-no-fstrim.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i disk ../test-data/phony-guests/windows.img \\\n    --no-fstrim \\\n    -o local -os $d\n\n# Test the libvirt XML metadata and a disk was created.\ntest -f $d/windows.xml\ntest -f $d/windows-sda\n\ncat $d/windows.xml\n"
  },
  {
    "path": "tests/test-o-glance.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -o glance.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\nrequires bash -c 'virt-v2v --machine-readable | grep -sq output:glance'\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\n# We don't want to upload to the real glance, so introduce a fake\n# glance binary.\nln -sf \"$(which echo)\" glance\nexport PATH=.:$PATH\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o glance -on test\n\nrm glance\n"
  },
  {
    "path": "tests/test-o-kubevirt-fedora.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2018-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -o kubevirt using phony Fedora guest.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -f ../test-data/phony-guests/fedora.img\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nfedora=../test-data/phony-guests/fedora.img\n\nd=test-o-kubevirt-fedora.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n# Run virt-v2v -o kubevirt.\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" fedora \\\n    -o kubevirt -on test -os $d\n\ncat $d/test.yaml\n\n# check the disk was created.\ntest -f $d/test-sda\n\n# Remove some parts of the yaml which change between runs.\nsed -i \\\n    -e 's,^\\(# generated by virt-v2v\\).*,\\1,' \\\n    -e 's,\\(path: \\).*/\\(test-sda\\),\\1\\2,' \\\n    -e 's,\\(virt-v2v-version: \\).*,\\1,' \\\n    $d/test.yaml\n\n# Compare yaml to the expected output.\ndiff -u test-o-kubevirt-fedora.yaml.expected $d/test.yaml\n"
  },
  {
    "path": "tests/test-o-kubevirt-fedora.yaml.expected",
    "content": "---\n# generated by virt-v2v\napiVersion: kubevirt.io/v1\nkind: VirtualMachine\nmetadata:\n  name: test\n  labels:\n    libguestfs.org/virt-v2v-version: \n    libguestfs.org/osinfo: fedora14\n    libguestfs.org/source: test\nspec:\n  template:\n    spec:\n      domain:\n        firmware:\n          bootloader:\n            bios: {}\n        resources:\n          requests:\n            memory: 1024Mi\n          features: {}\n        cpu:\n          cores: 1\n        devices:\n          useVirtioTransitional: true\n          disks:\n          - disk:\n              bus: virtio\n            bootOrder: 1\n            name: disk-0\n      volumes:\n      - hostDisk:\n          path: test-sda\n          type: Disk\n        name: disk-0\n      terminationGracePeriodSeconds: 0\n"
  },
  {
    "path": "tests/test-o-kubevirt-oo-disk.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2018-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -o kubevirt + -oo disk option.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -f ../test-data/phony-guests/fedora.img\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nfedora=../test-data/phony-guests/fedora.img\n\nd=test-o-kubevirt-oo-disk.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n# Run virt-v2v -o kubevirt.\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" fedora \\\n    -o kubevirt -oo disk=$d/disk.img -os $d\n\nls -l $d\n\ncat $d/fedora.yaml\n\n# Check the disk was created.\ntest -f $d/disk.img\n\n# Check the default path was _not_ created.\n! test -f $d/fedora-sda\n"
  },
  {
    "path": "tests/test-o-kubevirt-windows.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2018-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -o kubevirt using phony Windows guest.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nwindows=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=test-o-kubevirt-windows.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n# Run virt-v2v -o kubevirt.\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o kubevirt -on test -os $d\n\ncat $d/test.yaml\n\n# check the disk was created.\ntest -f $d/test-sda\n\n# Remove some parts of the yaml which change between runs.\nsed -i \\\n    -e 's/^\\(# generated by virt-v2v\\).*/\\1/' \\\n    -e 's,\\(path: \\).*/\\(test-sda\\),\\1\\2,' \\\n    -e 's,\\(virt-v2v-version: \\).*,\\1,' \\\n    $d/test.yaml\n\n# Compare yaml to the expected output.\ndiff -u test-o-kubevirt-windows.yaml.expected $d/test.yaml\n"
  },
  {
    "path": "tests/test-o-kubevirt-windows.yaml.expected",
    "content": "---\n# generated by virt-v2v\napiVersion: kubevirt.io/v1\nkind: VirtualMachine\nmetadata:\n  name: test\n  labels:\n    libguestfs.org/virt-v2v-version: \n    libguestfs.org/osinfo: win2k22\n    libguestfs.org/source: test\nspec:\n  template:\n    spec:\n      domain:\n        firmware:\n          bootloader:\n            bios: {}\n        resources:\n          clock:\n            timer:\n              hpet:\n                present: false\n              hyperv: {}\n              pit:\n                tickPolicy: delay\n              rtc:\n                tickPolicy: catchup\n            utc: {}\n          requests:\n            memory: 1024Mi\n          features: {}\n        cpu:\n          cores: 1\n        devices:\n          rng: {}\n          disks:\n          - disk:\n              bus: virtio\n            bootOrder: 1\n            name: disk-0\n          interfaces:\n          - name: net_default\n            masquerade: {}\n            macAddress: 00:11:22:33:44:55\n            model: virtio\n      volumes:\n      - hostDisk:\n          path: test-sda\n          type: Disk\n        name: disk-0\n      networks:\n      - networkName: default\n        name: net_default\n      terminationGracePeriodSeconds: 0\n"
  },
  {
    "path": "tests/test-o-libvirt.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -o libvirt.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\n# You shouldn't be running the tests as root anyway, but in this case\n# it's especially bad because we don't want to start creating guests\n# or storage pools in the system namespace.\nskip_if_root\n\n# Since libvirt ~ 1.2.19, it started to check that the guest\n# architecture was valid at guest creation time, rather than when you\n# first run the guest.  Since the guest XML contains arch='x86_64',\n# this test will fail on !x86_64.\nrequires_arch x86_64\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\n# Generate a random guest name.\nguestname=tmp-$(tr -cd 'a-f0-9' < /dev/urandom | head -c 8)\n\n# Generate a random pool name.\npoolname=tmp-$(tr -cd 'a-f0-9' < /dev/urandom | head -c 8)\n\nd=test-o-libvirt.d\nrm -rf $d\n\n# Clean up.\ncleanup_fn rm -r $d\ncleanup_fn virsh pool-destroy $poolname\ncleanup_fn virsh undefine $guestname\n\nmkdir $d\n\n# Set up the output directory as a libvirt storage pool.\nvirsh pool-destroy $poolname ||:\nvirsh pool-create-as $poolname dir - - - - $(pwd)/$d\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o libvirt -os $poolname -on $guestname\n\n# Test the disk was created.\ntest -f $d/$guestname-sda\n\n# Test the guest exists.\nvirsh dumpxml $guestname\n"
  },
  {
    "path": "tests/test-o-local-qcow2-compressed.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -o local -of qcow2 -oo compressed.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nrequires nbdcopy --version\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-o-local-qcow2-compressed.d\nrm -rf $d\ncleanup_fn rm -rf $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i disk ../test-data/phony-guests/windows.img \\\n    -o local -of qcow2 -oo compressed -os $d\n\n# Test the libvirt XML metadata and a disk was created.\nls -l $d\ntest -f $d/windows.xml\ntest -f $d/windows-sda\n\ncat $d/windows.xml\n"
  },
  {
    "path": "tests/test-o-null.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -o null.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o null\n"
  },
  {
    "path": "tests/test-o-openstack.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2018 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -o openstack.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nwindows=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-o-openstack.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n# We don't want to upload to the real openstack, so introduce a fake\n# openstack binary which just logs the command line and provides\n# JSON output where required.\ncat > $d/openstack <<'EOF'\n#!/bin/bash -\necho \"$@\" >> test-o-openstack.d/log\necho \"$@\" | grep -sq -- \"-f json\" && \\\n  echo '{ \"id\": \"dummy-vol-id\", \"status\": \"available\" }'\nexit 0\nEOF\nchmod +x $d/openstack\nexport PATH=$(pwd)/$d:$PATH\n\n# Create the dummy output volume which virt-v2v will write to.\ntouch $d/dummy-vol-id\n\n# Run virt-v2v -o openstack.\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o openstack -on test \\\n    -oo server-id=test \\\n    -oo guest-id=guestid \\\n    -oo verify-server-certificate=false \\\n    -oo dev-disk-by-id=$d\n\ncat $d/log\n\n# Check the log of openstack commands to make sure they look reasonable.\ngrep 'token issue' $d/log\ngrep 'volume create.*size 1.*temporary volume.*test-sda' $d/log\ngrep 'server add volume' $d/log\ngrep 'volume set.*--bootable.*dummy-vol-id' $d/log\ngrep 'volume set.*--property.*virt_v2v_guest_id=guestid' $d/log\ngrep 'server remove volume' $d/log\ngrep -- '--insecure' $d/log\n"
  },
  {
    "path": "tests/test-o-ovirt-upload-module/imageio.py",
    "content": "#!/usr/bin/env python3\n# -*- python -*-\n# Copyright (C) 2018-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License along\n# with this program; if not, write to the Free Software Foundation, Inc.,\n# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Fake imageio web server used as a test harness.\n# See v2v/test-o-ovirt-upload.sh\n\nimport sys\nimport threading\nfrom http.server import HTTPServer, BaseHTTPRequestHandler\n\nclass RequestHandler(BaseHTTPRequestHandler):\n    protocol_version = 'HTTP/1.1'\n\n    def do_OPTIONS(self):\n        self.discard_request()\n\n        # Advertise only flush and zero support.\n        content = b'''{ \"features\": [ \"flush\", \"zero\" ] }'''\n        length = len(content)\n\n        self.send_response(200)\n        self.send_header(\"Content-type\", \"application/json; charset=UTF-8\")\n        self.send_header(\"Content-Length\", length)\n        self.end_headers()\n        self.wfile.write(content)\n\n    # eg. zero request.  Just ignore it.\n    def do_PATCH(self):\n        self.discard_request()\n        self.send_response(200)\n        self.send_header(\"Content-Length\", \"0\")\n        self.end_headers()\n\n    # Flush request.  Ignore it.\n    def do_PUT(self):\n        self.discard_request()\n        self.send_response(200)\n        self.send_header(\"Content-Length\", \"0\")\n        self.end_headers()\n\n    def discard_request(self):\n        length = self.headers.get('Content-Length')\n        if length:\n            length = int(length)\n            content = self.rfile.read(length)\n\nserver_address = (\"\", 0)\n# XXX This should test HTTPS, not HTTP, because we are testing a\n# different path through the main code.\nhttpd = HTTPServer(server_address, RequestHandler)\nimageio_port = httpd.server_address[1]\n\nprint(\"port: %d\" % imageio_port)\nsys.stdout.flush()\n\nhttpd.serve_forever()\n"
  },
  {
    "path": "tests/test-o-ovirt-upload-module/ovirtsdk4/__init__.py",
    "content": "# -*- python -*-\n# Copyright (C) 2018 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License along\n# with this program; if not, write to the Free Software Foundation, Inc.,\n# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Fake ovirtsdk4 module used as a test harness.\n# See v2v/test-o-ovirt-upload.sh\n\nclass Error(Exception):\n    pass\n\n\nclass NotFoundError(Error):\n    pass\n\n\nclass Connection(object):\n    def __init__(\n            self,\n            url=None,\n            username=None,\n            password=None,\n            ca_file=None,\n            log=None,\n            insecure=False,\n            debug=True,\n    ):\n        pass\n\n    def close(self):\n        pass\n\n    def follow_link(self, objs):\n        return objs\n\n    def system_service(self):\n        return SystemService()\n\n\nclass SystemService(object):\n    def clusters_service(self):\n        return ClustersService()\n\n    def data_centers_service(self):\n        return DataCentersService()\n\n    def disks_service(self):\n        return DisksService()\n\n    def jobs_service(self):\n        return JobsService()\n\n    def image_transfers_service(self):\n        return ImageTransfersService()\n\n    def storage_domains_service(self):\n        return StorageDomainsService()\n\n    def vms_service(self):\n        return VmsService()\n\n\nclass ClusterService(object):\n    def get(self):\n        return types.Cluster()\n\n\nclass ClustersService(object):\n    def cluster_service(self, id):\n        return ClusterService()\n\n\nclass DataCentersService(object):\n    def list(self, search=None, case_sensitive=False):\n        return [types.DataCenter()]\n\n\nclass DiskService(object):\n    def __init__(self, disk_id):\n        self._disk_id = disk_id\n\n    def get(self):\n        return types.Disk(id=self._disk_id)\n\n    def remove(self):\n        pass\n\n\nclass DisksService(object):\n    def add(self, disk=None):\n        disk.id = \"756d81b0-d5c0-41bc-9bbe-b343c3fa3490\"\n        return disk\n\n    def disk_service(self, disk_id):\n        return DiskService(disk_id)\n\n\nclass JobsService(object):\n    def list(self, search=None):\n        return [types.Job()]\n\n\nclass ImageTransferService(object):\n    def __init__(self):\n        self._finalized = False\n\n    def cancel(self):\n        pass\n\n    def get(self):\n        if self._finalized:\n            raise NotFoundError\n        else:\n            return types.ImageTransfer()\n\n    def finalize(self):\n        self._finalized = True\n\n\nclass ImageTransfersService(object):\n    def add(self, transfer):\n        return transfer\n\n    def image_transfer_service(self, id):\n        return ImageTransferService()\n\n\nclass StorageDomainsService(object):\n    def list(self, search=None, case_sensitive=False):\n        return [StorageDomain()]\n\n\nclass VmsService(object):\n    def add(self, vm, query=None):\n        return vm\n\n    def list(self, search=None):\n        return []\n"
  },
  {
    "path": "tests/test-o-ovirt-upload-module/ovirtsdk4/types.py",
    "content": "# -*- python -*-\n# Copyright (C) 2018 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License along\n# with this program; if not, write to the Free Software Foundation, Inc.,\n# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Fake ovirtsdk4 module used as a test harness.\n# See v2v/test-o-ovirt-upload.sh\n\nimport os\nfrom enum import Enum\n\nimageio_port = os.getenv(\"IMAGEIO_PORT\")\nassert imageio_port is not None\n\n\nclass Architecture(Enum):\n    UNDEFINED = \"undefined\"\n    X86_64 = \"x86_64\"\n\n    def __init__(self, arch):\n        self._arch = arch\n\n    def __str__(self):\n        return self._arch\n\n\nclass Cpu(object):\n    architecture = Architecture.X86_64\n\n\nclass Cluster(object):\n    id = \"2e97537b-a783-4706-af9e-75cb2e032dcd\"\n    name = \"Default\"\n    cpu = Cpu()\n\n\nclass Configuration(object):\n    def __init__(self, type=None, data=None):\n        pass\n\n\nclass ConfigurationType(Enum):\n    OVA = 'ova'\n    OVF = 'ovf'\n\n    def __init__(self, image):\n        self._image = image\n\n    def __str__(self):\n        return self._image\n\n\nclass DiskFormat(Enum):\n    COW = \"cow\"\n    RAW = \"raw\"\n\n    def __init__(self, image):\n        self._image = image\n\n    def __str__(self):\n        return self._image\n\n\nclass DiskStatus(Enum):\n    ILLEGAL = \"illegal\"\n    LOCKED = \"locked\"\n    OK = \"ok\"\n\n    def __init__(self, image):\n        self._image = image\n\n    def __str__(self):\n        return self._image\n\n\nclass Disk(object):\n    def __init__(\n            self,\n            id=None,\n            name=None,\n            description=None,\n            format=None,\n            initial_size=None,\n            provisioned_size=None,\n            sparse=False,\n            storage_domains=None\n    ):\n        self.id = id\n\n    status = DiskStatus.OK\n\n\nclass ImageTransferPhase(Enum):\n    CANCELLED = 'cancelled'\n    FINALIZING_FAILURE = 'finalizing_failure'\n    FINALIZING_SUCCESS = 'finalizing_success'\n    FINISHED_FAILURE = 'finished_failure'\n    FINISHED_SUCCESS = 'finished_success'\n    INITIALIZING = 'initializing'\n    PAUSED_SYSTEM = 'paused_system'\n    PAUSED_USER = 'paused_user'\n    RESUMING = 'resuming'\n    TRANSFERRING = 'transferring'\n    UNKNOWN = 'unknown'\n\n    def __init__(self, image):\n        self._image = image\n\n    def __str__(self):\n        return self._image\n\n\nclass ImageTransfer(object):\n    def __init__(\n            self,\n            disk=None,\n            host=None,\n            inactivity_timeout=None,\n    ):\n        pass\n\n    id = \"e26ac8ab-7090-4d5e-95ad-e707b511a359\"\n    phase = ImageTransferPhase.TRANSFERRING\n    transfer_url = \"http://localhost:\" + imageio_port + \"/\"\n\n\nclass Initialization(object):\n    def __init__(self, configuration):\n        pass\n\n\nclass JobStatus(Enum):\n    ABORTED = \"aborted\"\n    FAILED = \"failed\"\n    FINISHED = \"finished\"\n    STARTED = \"started\"\n    UNKNOWN = \"unknown\"\n\n    def __init__(self, image):\n        self._image = image\n\n    def __str__(self):\n        return self._image\n\n\nclass Job(object):\n    description = \"Fake job\"\n    status = JobStatus.FINISHED\n\n\nclass StorageDomain(object):\n    def __init__(self, name=None):\n        pass\n\n    id = \"ba87af68-b630-4211-a73a-694c1a689405\"\n    name = \"Storage\"\n\n\nclass Vm(object):\n    def __init__(\n            self,\n            cluster=None,\n            initialization=None\n    ):\n        pass\n\n\nclass DataCenter(object):\n    id = \"31d8c73b-554b-4958-bb04-9ce97f0849e1\"\n    name = \"DC\"\n    storage_domains = [StorageDomain()]\n    clusters = [Cluster()]\n"
  },
  {
    "path": "tests/test-o-ovirt-upload-oo-query.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2018 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -oo \"?\" option.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires bash -c 'virt-v2v --machine-readable | grep -sq output:ovirt-upload'\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nf=test-o-ovirt-upload-oo-query.actual\nrm -f $f\n\n$VG virt-v2v --debug-gc \\\n    -o ovirt-upload -oo \"?\" > $f\n\ngrep -- \"-oo ovirt-cafile\" $f\ngrep -- \"-oo ovirt-verifypeer\" $f\n\nrm $f\n"
  },
  {
    "path": "tests/test-o-ovirt-upload.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2018 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -o ovirt-upload.\n#\n# These uses a test harness (see\n# tests/test-o-ovirt-upload-module/ovirtsdk4) to fake responses from\n# oVirt.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires python3 --version\nrequires nbdkit python --version\nrequires test -s ../test-data/phony-guests/windows.img\nrequires bash -c 'virt-v2v --machine-readable | grep -sq output:ovirt-upload'\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\nexport PYTHONPATH=$srcdir/test-o-ovirt-upload-module:$PYTHONPATH\n\n# Run the imageio process and get the port number.\nlog=test-o-ovirt-upload.webserver.log\nrm -f $log\ncleanup_fn rm -f $log\n$srcdir/test-o-ovirt-upload-module/imageio.py >$log 2>&1 &\npid=$!\ncleanup_fn kill $pid\nexport IMAGEIO_PORT=\nfor i in {1..5}; do\n    IMAGEIO_PORT=$( grep \"^port:\" $log | awk '{print $2}' )\n    if [ -n \"$IMAGEIO_PORT\" ]; then break; fi\n    sleep 3\ndone\nif [ ! -n \"$IMAGEIO_PORT\" ]; then\n    echo \"$0: imageio process did not start up\"\n    cat $log\n    exit 1\nfi\necho IMAGEIO_PORT=$IMAGEIO_PORT\n\n# Run virt-v2v -o ovirt-upload.\n#\n# The fake ovirtsdk4 module doesn't care about most of the options\n# like -oc, -oo ovirt-cafile, -op etc.  Any values may be used.\n$VG virt-v2v --debug-gc -v -x \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o ovirt-upload \\\n    -oc https://example.com/ovirt-engine/api \\\n    -oo ovirt-cafile=/dev/null \\\n    -op /dev/null \\\n    -os Storage\n"
  },
  {
    "path": "tests/test-o-ovirt.ovf.expected",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<ovf:Envelope xmlns:rasd='http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData' xmlns:vssd='http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:ovf='http://schemas.dmtf.org/ovf/envelope/1/' xmlns:ovirt='http://www.ovirt.org/ovf' ovf:version='0.9'>\n  <!-- generated by virt-v2v -->\n  <References>\n    <File ovf:href='#DISK_ID#/#VOL_ID#' ovf:id='#VOL_ID#' ovf:description='generated by virt-v2v' ovf:size='#SIZE#'/>\n  </References>\n  <Section xsi:type='ovf:NetworkSection_Type'>\n    <Info>List of networks</Info>\n    <Network ovf:name='default'/>\n  </Section>\n  <Section xsi:type='ovf:DiskSection_Type'>\n    <Info>List of Virtual Disks</Info>\n    <Disk ovf:diskId='#VOL_ID#' ovf:size='1' ovf:capacity='536870912' ovf:fileRef='#DISK_ID#/#VOL_ID#' ovf:parentRef='' ovf:vm_snapshot_id='#UUID#' ovf:volume-format='RAW' ovf:volume-type='Sparse' ovf:format='http://en.wikipedia.org/wiki/Byte' ovf:disk-interface='VirtIO' ovf:disk-type='System' ovf:boot='True' ovf:actual_size='1'/>\n  </Section>\n  <Content ovf:id='out' xsi:type='ovf:VirtualSystem_Type'>\n    <Name>windows</Name>\n    <TemplateId>00000000-0000-0000-0000-000000000000</TemplateId>\n    <TemplateName>Blank</TemplateName>\n    <Description>generated by virt-v2v</Description>\n    <Domain/>\n    <CreationDate>#DATE#</CreationDate>\n    <IsInitilized>True</IsInitilized>\n    <IsAutoSuspend>False</IsAutoSuspend>\n    <TimeZone/>\n    <IsStateless>False</IsStateless>\n    <VmType>1</VmType>\n    <DefaultDisplayType>2</DefaultDisplayType>\n    <BiosType>1</BiosType>\n    <Section ovf:id='#VM_ID#' ovf:required='false' xsi:type='ovf:OperatingSystemSection_Type'>\n      <Info>Windows Server 2022 Phony Edition</Info>\n      <Description>windows_2022</Description>\n    </Section>\n    <Section xsi:type='ovf:VirtualHardwareSection_Type'>\n      <Info>1 CPU, 1024 Memory</Info>\n      <Item>\n        <rasd:Caption>1 virtual cpu</rasd:Caption>\n        <rasd:Description>Number of virtual CPU</rasd:Description>\n        <rasd:InstanceId>1</rasd:InstanceId>\n        <rasd:ResourceType>3</rasd:ResourceType>\n        <rasd:num_of_sockets>1</rasd:num_of_sockets>\n        <rasd:cpu_per_socket>1</rasd:cpu_per_socket>\n      </Item>\n      <Item>\n        <rasd:Caption>1024 MB of memory</rasd:Caption>\n        <rasd:Description>Memory Size</rasd:Description>\n        <rasd:InstanceId>2</rasd:InstanceId>\n        <rasd:ResourceType>4</rasd:ResourceType>\n        <rasd:AllocationUnits>MegaBytes</rasd:AllocationUnits>\n        <rasd:VirtualQuantity>1024</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:Caption>USB Controller</rasd:Caption>\n        <rasd:InstanceId>3</rasd:InstanceId>\n        <rasd:ResourceType>23</rasd:ResourceType>\n        <rasd:UsbPolicy>Disabled</rasd:UsbPolicy>\n      </Item>\n      <Item>\n        <rasd:Caption>Graphical Controller</rasd:Caption>\n        <rasd:InstanceId>#UUID#</rasd:InstanceId>\n        <rasd:ResourceType>20</rasd:ResourceType>\n        <Type>video</Type>\n        <rasd:VirtualQuantity>1</rasd:VirtualQuantity>\n        <Device>vga</Device>\n      </Item>\n      <Item>\n        <rasd:Caption>RNG Device</rasd:Caption>\n        <rasd:InstanceId>#UUID#</rasd:InstanceId>\n        <rasd:ResourceType>0</rasd:ResourceType>\n        <Type>rng</Type>\n        <Device>virtio</Device>\n        <SpecParams>\n          <source>urandom</source>\n        </SpecParams>\n      </Item>\n      <Item>\n        <rasd:Caption>Memory Ballooning Device</rasd:Caption>\n        <rasd:InstanceId>#UUID#</rasd:InstanceId>\n        <rasd:ResourceType>0</rasd:ResourceType>\n        <Type>balloon</Type>\n        <Device>memballoon</Device>\n        <SpecParams>\n          <model>virtio</model>\n        </SpecParams>\n      </Item>\n      <Item>\n        <rasd:Caption>Drive 1</rasd:Caption>\n        <rasd:InstanceId>#VOL_ID#</rasd:InstanceId>\n        <rasd:ResourceType>17</rasd:ResourceType>\n        <Type>disk</Type>\n        <rasd:HostResource>#DISK_ID#/#VOL_ID#</rasd:HostResource>\n        <rasd:Parent>00000000-0000-0000-0000-000000000000</rasd:Parent>\n        <rasd:Template>00000000-0000-0000-0000-000000000000</rasd:Template>\n        <rasd:ApplicationList/>\n        <rasd:StorageId>12345678-1234-1234-1234-123456789abc</rasd:StorageId>\n        <rasd:StoragePoolId>00000000-0000-0000-0000-000000000000</rasd:StoragePoolId>\n        <rasd:CreationDate>#DATE#</rasd:CreationDate>\n        <rasd:LastModified>#DATE#</rasd:LastModified>\n        <rasd:last_modified_date>#DATE#</rasd:last_modified_date>\n        <BootOrder>1</BootOrder>\n      </Item>\n      <Item>\n        <rasd:InstanceId>#UUID#</rasd:InstanceId>\n        <rasd:Caption>Ethernet adapter on default</rasd:Caption>\n        <rasd:ResourceType>10</rasd:ResourceType>\n        <rasd:ResourceSubType>3</rasd:ResourceSubType>\n        <Type>interface</Type>\n        <rasd:Connection>default</rasd:Connection>\n        <rasd:Name>eth0</rasd:Name>\n        <rasd:MACAddress>00:11:22:33:44:55</rasd:MACAddress>\n      </Item>\n    </Section>\n  </Content>\n</ovf:Envelope>\n"
  },
  {
    "path": "tests/test-o-ovirt.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -o ovirt.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\nrequires bash -c 'virt-v2v --machine-readable | grep -sq output:ovirt'\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=test-o-ovirt.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n# Create a dummy Export Storage Domain.\nmkdir $d/12345678-1234-1234-1234-123456789abc\nmkdir $d/12345678-1234-1234-1234-123456789abc/images\nmkdir $d/12345678-1234-1234-1234-123456789abc/master\nmkdir $d/12345678-1234-1234-1234-123456789abc/master/vms\n\n# $VG - XXX Disabled because the forking used to write files in -o ovirt\n# mode confuses valgrind.\nvirt-v2v --debug-gc -v -x \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o ovirt -os $d\n\n# Test the OVF metadata was created.\ntest -f $d/12345678-1234-1234-1234-123456789abc/master/vms/*/*.ovf\n\npushd $d/12345678-1234-1234-1234-123456789abc/images/*\n\n# Test the disk .meta was created.\ntest -f *.meta\n\n# Test the disk file was created.\nvol=`basename *.meta .meta`\ntest -f $vol\n\npopd\n\n# Compare resulting OVF\nVM_ID=$(basename $(ls -1d $d/12345678-1234-1234-1234-123456789abc/master/vms/*))\nDISK_ID=$(basename $(ls -1d $d/12345678-1234-1234-1234-123456789abc/images/*))\nVOL_ID=$(basename $(ls -1d $d/12345678-1234-1234-1234-123456789abc/images/$DISK_ID/*.meta) .meta)\nOVF=$(ls -1d $d/12345678-1234-1234-1234-123456789abc/master/vms/$VM_ID/$VM_ID.ovf)\n\nRE_UUID='\\<[0-9a-fA-F]\\{8\\}-[0-9a-fA-F]\\{4\\}-[0-9a-fA-F]\\{4\\}-[0-9a-fA-F]\\{4\\}-[0-9a-fA-F]\\{12\\}\\>'\n\n# Filter variable strings\nsed -i \\\n  -e \"s/$DISK_ID/#DISK_ID#/g\" \\\n  -e \"s/$VM_ID/#VM_ID#/g\" \\\n  -e \"s/$VOL_ID/#VOL_ID#/g\" \\\n  -e \"s/\\(<File.*ovf:size='\\)[^']*/\\1#SIZE#/g\" \\\n  -e 's/\\(\\<generated by virt-v2v\\) [^ <'\"'\\\"\"']*/\\1/' \\\n  -e 's/<rasd:InstanceId>'\"$RE_UUID\"'</<rasd:InstanceId>#UUID#</' \\\n  -e 's/<\\(rasd:\\)\\?\\(CreationDate\\|LastModified\\|last_modified_date\\)>[^<]*</<\\1\\2>#DATE#</' \\\n  -e 's/\\<ovf:vm_snapshot_id='\"'$RE_UUID'/ovf:vm_snapshot_id='#UUID#'/g\" \\\n  \"$OVF\"\n\ndiff -u \"$srcdir/test-o-ovirt.ovf.expected\" \"$OVF\"\n"
  },
  {
    "path": "tests/test-o-qemu.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -o qemu.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-o-qemu.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o qemu -os $d\n\ncat $d/windows.sh\n\n# Test that the disk was created.\ntest -f $d/windows-sda\n\n# Test that the script was created and is executable.\ntest -x $d/windows.sh\n"
  },
  {
    "path": "tests/test-o-vdsm-oo-query.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2018 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -oo \"?\" option.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires bash -c 'virt-v2v --machine-readable | grep -sq output:vdsm'\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nf=test-o-vdsm-oo-query.actual\nrm -f $f\n\n$VG virt-v2v --debug-gc \\\n    -o vdsm -oo \"?\" > $f\n\ngrep -- \"-oo vdsm-compat\" $f\ngrep -- \"-oo vdsm-image-uuid\" $f\n\nrm $f\n"
  },
  {
    "path": "tests/test-o-vdsm-options.ovf.expected",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<ovf:Envelope xmlns:rasd='http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData' xmlns:vssd='http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:ovf='http://schemas.dmtf.org/ovf/envelope/1/' xmlns:ovirt='http://www.ovirt.org/ovf' ovf:version='0.9'>\n  <!-- generated by virt-v2v -->\n  <References>\n    <File ovf:href='VOL' ovf:id='VOL' ovf:description='generated by virt-v2v'/>\n  </References>\n  <NetworkSection>\n    <Info>List of networks</Info>\n    <Network ovf:name='default'/>\n  </NetworkSection>\n  <DiskSection>\n    <Info>List of Virtual Disks</Info>\n    <Disk ovf:diskId='IMAGE' ovf:size='1' ovf:capacity='536870912' ovf:fileRef='VOL' ovf:parentRef='' ovf:vm_snapshot_id='#UUID#' ovf:volume-format='COW' ovf:volume-type='Sparse' ovf:format='http://en.wikipedia.org/wiki/Byte' ovf:disk-interface='VirtIO' ovf:disk-type='System' ovf:boot='True'/>\n  </DiskSection>\n  <VirtualSystem ovf:id='VM'>\n    <Name>windows</Name>\n    <TemplateId>00000000-0000-0000-0000-000000000000</TemplateId>\n    <TemplateName>Blank</TemplateName>\n    <Description>generated by virt-v2v</Description>\n    <Domain/>\n    <CreationDate>#DATE#</CreationDate>\n    <IsInitilized>True</IsInitilized>\n    <IsAutoSuspend>False</IsAutoSuspend>\n    <TimeZone/>\n    <IsStateless>False</IsStateless>\n    <VmType>1</VmType>\n    <DefaultDisplayType>2</DefaultDisplayType>\n    <BiosType>1</BiosType>\n    <OperatingSystemSection ovf:id='VM' ovf:required='false' ovirt:id='37'>\n      <Info>Windows Server 2022 Phony Edition</Info>\n      <Description>windows_2022</Description>\n    </OperatingSystemSection>\n    <VirtualHardwareSection>\n      <Info>1 CPU, 1024 Memory</Info>\n      <Item>\n        <rasd:Caption>1 virtual cpu</rasd:Caption>\n        <rasd:Description>Number of virtual CPU</rasd:Description>\n        <rasd:InstanceId>1</rasd:InstanceId>\n        <rasd:ResourceType>3</rasd:ResourceType>\n        <rasd:num_of_sockets>1</rasd:num_of_sockets>\n        <rasd:cpu_per_socket>1</rasd:cpu_per_socket>\n      </Item>\n      <Item>\n        <rasd:Caption>1024 MB of memory</rasd:Caption>\n        <rasd:Description>Memory Size</rasd:Description>\n        <rasd:InstanceId>2</rasd:InstanceId>\n        <rasd:ResourceType>4</rasd:ResourceType>\n        <rasd:AllocationUnits>MegaBytes</rasd:AllocationUnits>\n        <rasd:VirtualQuantity>1024</rasd:VirtualQuantity>\n      </Item>\n      <Item>\n        <rasd:Caption>USB Controller</rasd:Caption>\n        <rasd:InstanceId>3</rasd:InstanceId>\n        <rasd:ResourceType>23</rasd:ResourceType>\n        <rasd:UsbPolicy>Disabled</rasd:UsbPolicy>\n      </Item>\n      <Item>\n        <rasd:Caption>Graphical Controller</rasd:Caption>\n        <rasd:InstanceId>#UUID#</rasd:InstanceId>\n        <rasd:ResourceType>32768</rasd:ResourceType>\n        <Type>video</Type>\n        <rasd:VirtualQuantity>1</rasd:VirtualQuantity>\n        <Device>vga</Device>\n      </Item>\n      <Item>\n        <rasd:Caption>RNG Device</rasd:Caption>\n        <rasd:InstanceId>#UUID#</rasd:InstanceId>\n        <rasd:ResourceType>0</rasd:ResourceType>\n        <Type>rng</Type>\n        <Device>virtio</Device>\n        <SpecParams>\n          <source>urandom</source>\n        </SpecParams>\n      </Item>\n      <Item>\n        <rasd:Caption>Memory Ballooning Device</rasd:Caption>\n        <rasd:InstanceId>#UUID#</rasd:InstanceId>\n        <rasd:ResourceType>0</rasd:ResourceType>\n        <Type>balloon</Type>\n        <Device>memballoon</Device>\n        <SpecParams>\n          <model>virtio</model>\n        </SpecParams>\n      </Item>\n      <Item>\n        <rasd:Caption>Drive 1</rasd:Caption>\n        <rasd:InstanceId>VOL</rasd:InstanceId>\n        <rasd:ResourceType>17</rasd:ResourceType>\n        <Type>disk</Type>\n        <rasd:HostResource>VOL</rasd:HostResource>\n        <rasd:Parent>00000000-0000-0000-0000-000000000000</rasd:Parent>\n        <rasd:Template>00000000-0000-0000-0000-000000000000</rasd:Template>\n        <rasd:ApplicationList/>\n        <rasd:StorageId>12345678-1234-1234-1234-123456789abc</rasd:StorageId>\n        <rasd:StoragePoolId>00000000-0000-0000-0000-000000000000</rasd:StoragePoolId>\n        <rasd:CreationDate>#DATE#</rasd:CreationDate>\n        <rasd:LastModified>#DATE#</rasd:LastModified>\n        <rasd:last_modified_date>#DATE#</rasd:last_modified_date>\n        <BootOrder>1</BootOrder>\n      </Item>\n      <Item>\n        <rasd:InstanceId>#UUID#</rasd:InstanceId>\n        <rasd:Caption>Ethernet adapter on default</rasd:Caption>\n        <rasd:ResourceType>10</rasd:ResourceType>\n        <rasd:ResourceSubType>3</rasd:ResourceSubType>\n        <Type>interface</Type>\n        <rasd:Connection>default</rasd:Connection>\n        <rasd:Name>eth0</rasd:Name>\n        <rasd:MACAddress>00:11:22:33:44:55</rasd:MACAddress>\n      </Item>\n    </VirtualHardwareSection>\n  </VirtualSystem>\n</ovf:Envelope>\n"
  },
  {
    "path": "tests/test-o-vdsm-options.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test -o vdsm options -oo vdsm-*-uuid\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\nrequires bash -c 'virt-v2v --machine-readable | grep -sq output:vdsm'\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=test-o-vdsm-options.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n# Create a dummy Export Storage Domain.\nmkdir $d/12345678-1234-1234-1234-123456789abc\nmkdir $d/12345678-1234-1234-1234-123456789abc/images\nmkdir $d/12345678-1234-1234-1234-123456789abc/images/IMAGE\nmkdir $d/12345678-1234-1234-1234-123456789abc/master\nmkdir $d/12345678-1234-1234-1234-123456789abc/master/vms\nmkdir $d/12345678-1234-1234-1234-123456789abc/master/vms/VM\n\n# The -oo vdsm-*-uuid options don't actually check that the\n# parameter is a UUID, which is useful here.\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o vdsm -os $d/12345678-1234-1234-1234-123456789abc \\\n    -of qcow2 \\\n    -oo vdsm-image-uuid=IMAGE \\\n    -oo vdsm-vol-uuid=VOL \\\n    -oo vdsm-vm-uuid=VM \\\n    -oo vdsm-ovf-output=$d/12345678-1234-1234-1234-123456789abc/master/vms/VM \\\n    -oo vdsm-compat=1.1 \\\n    -oo vdsm-ovf-flavour=ovirt\n\n# Test the OVF metadata was created.\ntest -f $d/12345678-1234-1234-1234-123456789abc/master/vms/VM/VM.ovf\n\npushd $d/12345678-1234-1234-1234-123456789abc/images/IMAGE\n\n# Test the disk .meta was created.\ntest -f VOL.meta\n\n# Test the disk file was created.\ntest -f VOL\n\n# Test that a qcow2 file with compat=1.1 was generated.\ntest \"$(guestfish disk-format VOL)\" = \"qcow2\"\nqemu-img info VOL | grep 'compat: 1.1'\n\npopd\n\n# Compare resulting OVF\nOVF=\"$d/12345678-1234-1234-1234-123456789abc/master/vms/VM/VM.ovf\"\n\nRE_UUID='\\<[0-9a-fA-F]\\{8\\}-[0-9a-fA-F]\\{4\\}-[0-9a-fA-F]\\{4\\}-[0-9a-fA-F]\\{4\\}-[0-9a-fA-F]\\{12\\}\\>'\n\n# Filter variable strings\nsed -i \\\n  -e \"s/\\(<File.*ovf:size='\\)[^']*/\\1#SIZE#/g\" \\\n  -e 's/\\(\\<generated by virt-v2v\\) [^ <'\"'\\\"\"']*/\\1/' \\\n  -e 's/<rasd:InstanceId>'\"$RE_UUID\"'</<rasd:InstanceId>#UUID#</' \\\n  -e 's/<\\(rasd:\\)\\?\\(CreationDate\\|LastModified\\|last_modified_date\\)>[^<]*</<\\1\\2>#DATE#</' \\\n  -e 's/\\<ovf:vm_snapshot_id='\"'$RE_UUID'/ovf:vm_snapshot_id='#UUID#'/g\" \\\n  \"$OVF\"\n\ndiff -u \"$srcdir/test-o-vdsm-options.ovf.expected\" \\\n  \"$OVF\"\n"
  },
  {
    "path": "tests/test-oa-option-qcow2.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v -oa (sparse/preallocated) option + -of qcow2.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\n# No support for either network or qcow2.\nrequires test -s ../test-data/phony-guests/windows.img\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-oa-option-qcow2.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o local -os $d -oa preallocated -of qcow2\n\n# Test the disk is qcow2 format.\nif [ \"$(guestfish disk-format $d/windows-sda)\" != qcow2 ]; then\n    echo \"$0: test failed: output is not qcow2\"\n    exit 1\nfi\n\n# Test the disk is fully allocated.\nif [ \"$(du -m $d/windows-sda | awk '{print $1}')\" -lt 500 ]; then\n    echo \"$0: test failed: output is not preallocated\"\n    exit 1\nfi\n"
  },
  {
    "path": "tests/test-oa-option-raw.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v -oa (sparse/preallocated) option + -of raw.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\n# No support for either network or qcow2.\nrequires test -s ../test-data/phony-guests/windows.img\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-oa-option-raw.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o local -os $d -oa preallocated -of raw\n\n# Test the disk is qcow2 format.\nif [ \"$(guestfish disk-format $d/windows-sda)\" != raw ]; then\n    echo \"$0: test failed: output is not raw\"\n    exit 1\nfi\n\n# Test the disk is fully allocated.\nif [ \"$(du -m $d/windows-sda | awk '{print $1}')\" -lt 500 ]; then\n    echo \"$0: test failed: output is not preallocated\"\n    exit 1\nfi\n"
  },
  {
    "path": "tests/test-of-option.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v -of (format conversion) option.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\n# No support for either network or qcow2.\nrequires test -s ../test-data/phony-guests/windows.img\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-of-option.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o local -os $d -of qcow2\n\nls -l $d\n\n# Test the disk is qcow2 format.\nif [ \"$(guestfish disk-format $d/windows-sda)\" != qcow2 ]; then\n    echo \"$0: test failed: output is not qcow2\"\n    exit 1\nfi\n"
  },
  {
    "path": "tests/test-on-option.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v -on (change name) option.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-on-option.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o local -os $d -on this-is-not-windows\n\n# Test the libvirt XML metadata and a disk was created.\ntest -f $d/this-is-not-windows.xml\ntest -f $d/this-is-not-windows-sda\n"
  },
  {
    "path": "tests/test-open-encrypted.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v-show-roots with an encrypted guest.\n\nunset CDPATH\nexport LANG=C\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nf=../test-data/phony-guests/fedora-luks-on-lvm.img\nrequires test -f $f\n\nrequires virt-inspector --version\n\nd=$PWD/test-open-encrypted.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\nout=\"$d/out\"\n\nkeys=\"--key /dev/Volume-Group/Root:key:FEDORA-Root \\\n      --key /dev/Volume-Group/Logical-Volume-1:key:FEDORA-LV1 \\\n      --key /dev/Volume-Group/Logical-Volume-2:key:FEDORA-LV2 \\\n      --key /dev/Volume-Group/Logical-Volume-3:key:FEDORA-LV3\"\n\n$VG virt-v2v-open --debug-gc -i disk $f \\\n    --run \"virt-inspector --format=raw @@ $keys > $out\"\ncat $out\n\n# Expect certain elements to be present.\ngrep '^<operatingsystems>' $out\ngrep '<operatingsystem>' $out\ngrep '<root>/dev/mapper/luks-' $out\ngrep '<distro>fedora</distro>' $out\ngrep '<osinfo>fedora14</osinfo>' $out\n"
  },
  {
    "path": "tests/test-open.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v-open + virt-inspector.\n\nunset CDPATH\nexport LANG=C\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nimg=\"$abs_top_builddir/test-data/phony-guests/windows.img\"\nrequires test -s $img\n\nrequires virt-inspector --version\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=$PWD/test-open.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\nout=\"$d/out\"\n\nlibvirt_xml=\"$d/test.xml\"\nrm -f $libvirt_xml\nn=windows\ncat > $libvirt_xml <<EOF\n<node>\n  <domain type='test'>\n    <name>$n</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='$img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    </devices>\n  </domain>\n</node>\nEOF\n\n$VG virt-v2v-open --debug-gc -i libvirt -ic \"test://$libvirt_xml\" $n \\\n    --run \"virt-inspector --format=raw @@ > $out\"\ncat $out\n\n# Expect certain elements to be present.\ngrep '^<operatingsystems>' $out\ngrep '<operatingsystem>' $out\ngrep '<root>/dev/sda2</root>' $out\ngrep '<distro>windows</distro>' $out\ngrep '<osinfo>win2k22</osinfo>' $out\n"
  },
  {
    "path": "tests/test-phony-win10-ls.txt",
    "content": "balloon.cat\nballoon.inf\nballoon.sys\nblnsvr.exe\nfwcfg.cat\nfwcfg.inf\nfwcfg.sys\nnetkvm.cat\nnetkvm.inf\nnetkvm.sys\nnetkvmco.exe\nnetkvmp.exe\npvpanic.cat\npvpanic.inf\npvpanic.sys\nqemupciserial.cat\nqemupciserial.inf\nqxldod.cat\nqxldod.inf\nqxldod.sys\nreadme.md\nvgpusrv.exe\nviofs.cat\nviofs.inf\nviofs.sys\nviogpuap.exe\nviogpudo.cat\nviogpudo.inf\nviogpudo.sys\nviohidkmdf.sys\nvioinput.cat\nvioinput.inf\nvioinput.sys\nviomem.cat\nviomem.inf\nviomem.sys\nviorng.cat\nviorng.inf\nviorng.sys\nviorngum.dll\nvioscsi.cat\nvioscsi.inf\nvioscsi.sys\nvioser.cat\nvioser.inf\nvioser.sys\nviostor.cat\nviostor.inf\nviostor.sys\nvirtiofs.exe\n"
  },
  {
    "path": "tests/test-phony-win11-ls.txt",
    "content": "balloon.cat\nballoon.inf\nballoon.sys\nblnsvr.exe\nfwcfg.cat\nfwcfg.inf\nfwcfg.sys\nnetkvm.cat\nnetkvm.inf\nnetkvm.sys\nnetkvmco.exe\nnetkvmp.exe\npvpanic.cat\npvpanic.inf\npvpanic.sys\nqemupciserial.cat\nqemupciserial.inf\nreadme.md\nsmbus.cat\nsmbus.inf\nvgpusrv.exe\nviofs.cat\nviofs.inf\nviofs.sys\nviogpuap.exe\nviogpudo.cat\nviogpudo.inf\nviogpudo.sys\nviohidkmdf.sys\nvioinput.cat\nvioinput.inf\nvioinput.sys\nviomem.cat\nviomem.inf\nviomem.sys\nviorng.cat\nviorng.inf\nviorng.sys\nviorngum.dll\nvioscsi.cat\nvioscsi.inf\nvioscsi.sys\nvioser.cat\nvioser.inf\nvioser.sys\nviostor.cat\nviostor.inf\nviostor.sys\nvirtiofs.exe\n"
  },
  {
    "path": "tests/test-phony-win2k22-ls.txt",
    "content": "balloon.cat\nballoon.inf\nballoon.sys\nblnsvr.exe\nfwcfg.cat\nfwcfg.inf\nfwcfg.sys\nnetkvm.cat\nnetkvm.inf\nnetkvm.sys\nnetkvmco.exe\nnetkvmp.exe\npvpanic.cat\npvpanic.inf\npvpanic.sys\nqemupciserial.cat\nqemupciserial.inf\nreadme.md\nvgpusrv.exe\nviofs.cat\nviofs.inf\nviofs.sys\nviogpuap.exe\nviogpudo.cat\nviogpudo.inf\nviogpudo.sys\nviohidkmdf.sys\nvioinput.cat\nvioinput.inf\nvioinput.sys\nviomem.cat\nviomem.inf\nviomem.sys\nviorng.cat\nviorng.inf\nviorng.sys\nviorngum.dll\nvioscsi.cat\nvioscsi.inf\nvioscsi.sys\nvioser.cat\nvioser.inf\nvioser.sys\nviostor.cat\nviostor.inf\nviostor.sys\nvirtiofs.exe\n"
  },
  {
    "path": "tests/test-phony-win2k25-ls.txt",
    "content": "balloon.cat\nballoon.inf\nballoon.sys\nblnsvr.exe\nfwcfg.cat\nfwcfg.inf\nfwcfg.sys\nnetkvm.cat\nnetkvm.inf\nnetkvm.sys\nnetkvmco.exe\nnetkvmp.exe\npvpanic.cat\npvpanic.inf\npvpanic.sys\nqemupciserial.cat\nqemupciserial.inf\nreadme.md\nsmbus.cat\nsmbus.inf\nvgpusrv.exe\nviofs.cat\nviofs.inf\nviofs.sys\nviogpuap.exe\nviogpudo.cat\nviogpudo.inf\nviogpudo.sys\nviohidkmdf.sys\nvioinput.cat\nvioinput.inf\nvioinput.sys\nviomem.cat\nviomem.inf\nviomem.sys\nviorng.cat\nviorng.inf\nviorng.sys\nviorngum.dll\nvioscsi.cat\nvioscsi.inf\nvioscsi.sys\nvioser.cat\nvioser.inf\nvioser.sys\nviostor.cat\nviostor.inf\nviostor.sys\nvirtiofs.exe\n"
  },
  {
    "path": "tests/test-phony-win7-32-ls.txt",
    "content": "balloon.cat\nballoon.inf\nballoon.sys\nblnsvr.exe\nnetkvm.cat\nnetkvm.inf\nnetkvm.sys\nnetkvmco.dll\npvpanic.cat\npvpanic.inf\npvpanic.sys\nqemupciserial.cat\nqemupciserial.inf\nqxl.cat\nqxl.inf\nqxl.sys\nqxldd.dll\nreadme.doc\nviohidkmdf.sys\nvioinput.cat\nvioinput.inf\nvioinput.sys\nviorng.cat\nviorng.inf\nviorng.sys\nviorngci.dll\nviorngum.dll\nvioscsi.cat\nvioscsi.inf\nvioscsi.sys\nvioser.cat\nvioser.inf\nvioser.sys\nviostor.cat\nviostor.inf\nviostor.sys\nwdfcoinstaller01009.dll\n"
  },
  {
    "path": "tests/test-phony-winxp-32-ls.txt",
    "content": ""
  },
  {
    "path": "tests/test-print-source.expected",
    "content": "    source name: windows\nhypervisor type: kvm\n       VM genid: \n         memory: 1073741824 (bytes)\n       nr vCPUs: 64\n     CPU vendor: Intel\n      CPU model: Broadwell\n   CPU topology: sockets: 4 cores/socket: 8 threads/core: 2\n   CPU features: acpi,apic,pae\n       firmware: unknown\nUEFI secureboot: false\n        display: \n          sound: \ndisks:\n\t0 [virtio-blk]\nremovable media:\nNICs:\n\tNetwork \"default\" mac: 00:11:22:33:44:55 [virtio]\n"
  },
  {
    "path": "tests/test-print-source.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test --print-source option.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -f ../test-data/phony-guests/windows.img\n\nexport LANG=C\n\nd=test-print-source.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i libvirtxml test-print-source.xml \\\n    -o local -os $d \\\n    --print-source > $d/output\n\nmv $d/output $d/output.orig\n< $d/output.orig \\\ngrep -v 'Setting up the source' |\ngrep -v 'Opening the source' |\ngrep -v 'Source guest information' |\nsed -e 's,/.*/windows.img,windows.img,' |\ngrep -v '^$' \\\n> $d/output\n\ndiff -u \"$srcdir/test-print-source.expected\" $d/output\n"
  },
  {
    "path": "tests/test-print-source.xml.in",
    "content": "<domain type='kvm'>\n  <name>windows</name>\n  <memory>1048576</memory>\n  <cpu match=\"minimum\">\n    <vendor>Intel</vendor>\n    <model fallback=\"allow\">Broadwell</model>\n    <topology sockets=\"4\" cores=\"8\" threads=\"2\"/>\n  </cpu>\n  <features>\n    <acpi/>\n    <apic/>\n    <pae/>\n  </features>\n  <os>\n    <type>hvm</type>\n    <boot dev='hd'/>\n  </os>\n  <devices>\n    <disk type='file' device='disk'>\n      <driver name='qemu' type='raw'/>\n      <source file='@abs_top_builddir@/test-data/phony-guests/windows.img'/>\n      <target dev='vda' bus='virtio'/>\n    </disk>\n    <interface type='network'>\n      <mac address='00:11:22:33:44:55'/>\n      <source network='default'/>\n      <model type='virtio'/>\n    </interface>\n    <video>\n      <model type='vga' vram='16384' heads='1'/>\n    </video>\n  </devices>\n</domain>\n"
  },
  {
    "path": "tests/test-reject-blank-disk.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v rejects a blank disk.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nf=../test-data/phony-guests/blank-disk.img\nrequires test -f $f\n\nout=test-reject-blank-disk.out\nrm -f $out\ncleanup_fn rm -f $out\n\nexport LANG=C\n\nif $VG virt-v2v --debug-gc -i disk $f -o null >& $out ; then\n    echo \"FAIL: virt-v2v didn't reject blank disk\"\n    exit 1\nfi\n\ncat $out\n\n# Check the right error message is printed.\ngrep \"could not detect the source guest\" $out\ngrep \"a blank disk\" $out\n"
  },
  {
    "path": "tests/test-rhbz1232192.sh",
    "content": "#!/bin/bash -\n# libguestfs\n# Copyright (C) 2015 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Regression test for virt-v2v handling of blank disks:\n# https://bugzilla.redhat.com/show_bug.cgi?id=1232192\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires virt-v2v --help\nrequires test -s ../test-data/phony-guests/windows.img\nrequires test -f ../test-data/phony-guests/blank-disk.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nvirt-v2v -i libvirtxml test-rhbz1232192.xml -o null\n"
  },
  {
    "path": "tests/test-rhbz1232192.xml.in",
    "content": "<domain type='kvm'>\n  <name>rhbz1232192</name>\n  <memory>1048576</memory>\n  <vcpu>2</vcpu>\n  <os>\n    <type>hvm</type>\n    <boot dev='hd'/>\n  </os>\n  <features>\n    <acpi/>\n    <apic/>\n    <pae/>\n  </features>\n  <devices>\n    <disk type='file' device='disk'>\n      <driver name='qemu' type='raw'/>\n      <source file='@abs_top_builddir@/test-data/phony-guests/windows.img'/>\n      <target dev='hda' bus='ide'/>\n    </disk>\n    <disk type='file' device='disk'>\n      <driver name='qemu' type='raw'/>\n      <source file='@abs_top_builddir@/test-data/phony-guests/blank-disk.img'/>\n      <target dev='hdb' bus='ide'/>\n    </disk>\n  </devices>\n</domain>\n"
  },
  {
    "path": "tests/test-sound.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2015 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test <sound> is transferred to destination domain.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nlibvirt_uri=\"test://$abs_builddir/test-sound.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\n\nd=test-sound.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o local -os $d\n\n# Test the libvirt XML metadata was created.\ntest -f $d/windows.xml\n\ncat $d/windows.xml\n\n# Check the <sound> element exists in the output.\ngrep 'sound model=.ich9' $d/windows.xml\n"
  },
  {
    "path": "tests/test-sound.xml.in",
    "content": "<!--\nlibguestfs virt-v2v tool\nCopyright (C) 2009-2025 Red Hat Inc.\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n-->\n<node>\n  <domain type='test'>\n    <name>windows</name>\n    <memory>1048576</memory>\n    <os>\n      <type>hvm</type>\n      <boot dev='hd'/>\n    </os>\n    <devices>\n      <disk type='file' device='disk'>\n        <driver name='qemu' type='raw'/>\n        <source file='@abs_top_builddir@/test-data/phony-guests/windows.img'/>\n        <target dev='vda' bus='virtio'/>\n      </disk>\n    <sound model=\"ich9\"/>\n    </devices>\n  </domain>\n</node>\n"
  },
  {
    "path": "tests/test-trim.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2016 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test that trimming doesn't regress.  Suggested by Ming Xie in\n# https://bugzilla.redhat.com/show_bug.cgi?id=1264332\n#\n# Note: This test is expected to fail on NFS, we should automatically\n# skip in that case (XXX - how?).\n\nsource ./functions.sh\nset -e\nset -x\n\nslow_test\nskip_if_skipped\n\nd=test-trim.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\nn=fedora-20\n\nf=\"$(pwd)/$d/$n.img\"\nif ! virt-builder -l \"$n\"; then\n    echo \"$0: virt-builder $n image not found\"\n    exit 77\nfi\nvirt-builder \"$n\" --quiet -o \"$f\"\n\nqemu-img create -f qcow2 -b \"$f\" -F raw $d/fedora.qcow2\n\nguestfish -a $d/fedora.qcow2 -i <<EOF\nfill 1 500M /big\nfill 1 100M /boot/big\nsync\nrm /big\nrm /boot/big\numount-all\nEOF\n\nsize_before=$(du -s \"$f\" | awk '{print $1}')\necho size_before=$size_before\n\nif [ $size_before -lt 800000 ]; then\n    echo \"test virt-v2v trim: size_before ($size_before) too small\"\n    exit 1\nfi\n\nvirt-v2v --debug-gc \\\n         -i disk $d/fedora.qcow2 \\\n         -o local -of qcow2 -os $d\n\n# Test the libvirt XML metadata and a disk was created.\ntest -f $d/fedora.xml\ntest -f $d/fedora-sda\n\nsize_after=$(du -s $d/fedora-sda | awk '{print $1}')\necho size_after=$size_after\n\n# We're expecting the image to grow a bit because of the changes made\n# by conversion (I observed growth of about 9MB).  That's OK.  If it\n# grows by ~ 500 + 100 MB, then that's not OK.  So choose a threshold\n# of 300 MB.\n\nif [ $((size_after-size_before)) -gt 300000 ]; then\n    echo \"test virt-v2v trim: size_after ($size_after) too large\"\n    echo \"trimming failed\"\n    exit 1\nfi\n"
  },
  {
    "path": "tests/test-virtio-win-iso.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n# Copyright (C) 2015 Parallels IP Holdings GmbH.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v Windows conversion with VirtIO drivers on an ISO image.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"../test-data/fake-virtio-win/fake-virtio-win.iso\"\n\nif ! test -f \"$VIRTIO_WIN\"; then\n    echo \"$0: test skipped because fake virtio-win iso image was not created\"\n    exit 77\nfi\n\n# Return a random element from the array 'choices'.\nfunction random_choice\n{\n    echo \"${choices[$((RANDOM % ${#choices[*]}))]}\"\n}\n\n# Test the --root option stochastically.\nchoices=(\"/dev/sda2\" \"single\" \"first\")\nroot=`random_choice`\n\nd=test-virtio-win-iso.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n$VG virt-v2v -vx --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o local -os $d \\\n    --root $root\n\n# Test the libvirt XML metadata and a disk was created.\ntest -f $d/windows.xml\ntest -f $d/windows-sda\n\n# Test that the drivers have been copied over into the guest\nscript=\"$d/test.fish\"\nexpected=\"$d/expected\"\nresponse=\"$d/response\"\n\nmktest ()\n{\n    local cmd=\"$1\" exp=\"$2\"\n\n    echo \"echo '$cmd'\" >> \"$script\"\n    echo \"$cmd\" >> \"$expected\"\n\n    echo \"$cmd\" >> \"$script\"\n    echo \"$exp\" >> \"$expected\"\n}\n\n:> \"$script\"\n:> \"$expected\"\n\nfirstboot_dir=\"/Program Files/Guestfs/Firstboot\"\nmktest \"is-dir \\\"$firstboot_dir\\\"\" true\nmktest \"is-file \\\"$firstboot_dir/firstboot.bat\\\"\" true\nmktest \"is-dir \\\"$firstboot_dir/scripts\\\"\" true\nvirtio_dir=\"/Windows/Drivers/VirtIO\"\nmktest \"is-dir \\\"$virtio_dir\\\"\" true\nfor drv in netkvm vioscsi viostor; do\n    for sfx in cat inf sys; do\n        mktest \"is-file \\\"$virtio_dir/$drv.$sfx\\\"\" true\n    done\ndone\n\nguestfish --ro -a \"$d/windows-sda\" -i < \"$script\" > \"$response\"\ndiff -u \"$expected\" \"$response\"\n"
  },
  {
    "path": "tests/test-windows-conversion-ls.txt",
    "content": "balloon.cat\nballoon.inf\nballoon.sys\nblnsvr.exe\nfwcfg.cat\nfwcfg.inf\nfwcfg.sys\nnetkvm.cat\nnetkvm.inf\nnetkvm.sys\nnetkvmco.exe\nnetkvmp.exe\npvpanic.cat\npvpanic.inf\npvpanic.sys\nqemupciserial.cat\nqemupciserial.inf\nreadme.md\nvgpusrv.exe\nviofs.cat\nviofs.inf\nviofs.sys\nviogpuap.exe\nviogpudo.cat\nviogpudo.inf\nviogpudo.sys\nviohidkmdf.sys\nvioinput.cat\nvioinput.inf\nvioinput.sys\nviomem.cat\nviomem.inf\nviomem.sys\nviorng.cat\nviorng.inf\nviorng.sys\nviorngum.dll\nvioscsi.cat\nvioscsi.inf\nvioscsi.sys\nvioser.cat\nvioser.inf\nvioser.sys\nviostor.cat\nviostor.inf\nviostor.sys\nvirtiofs.exe\n"
  },
  {
    "path": "tests/test-windows-conversion.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v (Phony) Windows conversion.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nrequires test -s ../test-data/phony-guests/windows.img\n\nlibvirt_uri=\"test://$abs_top_builddir/test-data/phony-guests/guests.xml\"\nf=../test-data/phony-guests/windows.img\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\n# Return a random element from the array 'choices'.\nfunction random_choice\n{\n    echo \"${choices[$((RANDOM % ${#choices[*]}))]}\"\n}\n\n# Test the --root option stochastically.\nchoices=(\"/dev/sda2\" \"single\" \"first\")\nroot=`random_choice`\n\nd=test-windows-conversion.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i libvirt -ic \"$libvirt_uri\" windows \\\n    -o local -os $d \\\n    --root $root\n\n# Test the libvirt XML metadata and a disk was created.\ntest -f $d/windows.xml\ntest -f $d/windows-sda\n\n# Test some aspects of the target disk image.\nscript=\"$d/test.fish\"\nexpected=\"$d/expected\"\nresponse=\"$d/response\"\n\nmktest ()\n{\n    local cmd=\"$1\" exp=\"$2\"\n\n    echo \"echo '$cmd'\" >> \"$script\"\n    echo \"$cmd\" >> \"$expected\"\n\n    echo \"$cmd\" >> \"$script\"\n    echo \"$exp\" >> \"$expected\"\n}\n\n:> \"$script\"\n:> \"$expected\"\n\nfirstboot_dir=\"/Program Files/Guestfs/Firstboot\"\nmktest \"is-dir \\\"$firstboot_dir\\\"\" true\nmktest \"is-file \\\"$firstboot_dir/firstboot.bat\\\"\" true\nmktest \"is-dir \\\"$firstboot_dir/scripts\\\"\" true\nvirtio_dir=\"/Windows/Drivers/VirtIO\"\nmktest \"ls \\\"$virtio_dir\\\"\" \"$(cat test-windows-conversion-ls.txt)\"\n\nguestfish --ro -a \"$d/windows-sda\" -i < \"$script\" > \"$response\"\ndiff -u \"$expected\" \"$response\"\n\n# We also update the Registry several times, for firstboot, and (ONLY\n# if the virtio-win drivers are installed locally) the critical device\n# database.\n"
  },
  {
    "path": "tests/test-windows-phony.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v (Phony) Windows conversion.\n\nsource ./functions.sh\nset -e\nset -x\n\nguestname=\"$1\"\nif [ -z \"$guestname\" ]; then\n    echo \"$script: guestname parameter not set, don't run this test directly.\"\n    exit 1\nfi\nf=../test-data/phony-guests/$guestname.img\n\nskip_if_skipped $script\nrequires test -s $f\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=test-phony-$guestname.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n$VG virt-v2v --debug-gc \\\n    -i disk $f \\\n    -o local -os $d\n\n# Test the libvirt XML metadata and a disk was created.\ntest -f $d/$guestname.xml\ntest -f $d/$guestname-sda\n\n# Test some aspects of the target disk image.\nscript=\"$d/test.fish\"\nexpected=\"$d/expected\"\nresponse=\"$d/response\"\n\nmktest ()\n{\n    local cmd=\"$1\" exp=\"$2\"\n\n    echo \"echo '$cmd'\" >> \"$script\"\n    echo \"$cmd\" >> \"$expected\"\n\n    echo \"$cmd\" >> \"$script\"\n    if [ -n \"$exp\" ] ; then\n        echo \"$exp\" >> \"$expected\"\n    fi\n}\n\n:> \"$script\"\n:> \"$expected\"\n\nfirstboot_dir=\"/Program Files/Guestfs/Firstboot\"\nmktest \"is-dir \\\"$firstboot_dir\\\"\" true\nmktest \"is-file \\\"$firstboot_dir/firstboot.bat\\\"\" true\nmktest \"is-dir \\\"$firstboot_dir/scripts\\\"\" true\nvirtio_dir=\"/Windows/Drivers/VirtIO\"\nmktest \"ls \\\"$virtio_dir\\\"\" \"$(cat test-phony-$guestname-ls.txt)\"\nosinfo_name=\"${guestname%-32}\"\nmktest \"inspect-get-osinfo /dev/sda2\" \"$osinfo_name\"\n\nguestfish --ro -a \"$d/$guestname-sda\" -i < \"$script\" > \"$response\"\ndiff -u \"$expected\" \"$response\"\n\n# host osinfo-db may be too old for win2k25\nif [ $osinfo_name != \"win2k25\" ] ; then\n    # Sanity check that _some_ osinfo annotation ends up in XML\n    grep -q \"libosinfo:os id='http://microsoft.com/win/\" $d/$guestname.xml\nfi\n"
  },
  {
    "path": "tests/test-windows-uefi-conversion.sh",
    "content": "#!/bin/bash -\n# libguestfs virt-v2v test script\n# Copyright (C) 2014-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Test virt-v2v (Phony) Windows conversion with UEFI.\n\nsource ./functions.sh\nset -e\nset -x\n\nskip_if_skipped\nf=../test-data/phony-guests/win2k22-uefi.img\nrequires test -s $f\n\nexport VIRT_TOOLS_DATA_DIR=\"$srcdir/../test-data/fake-virt-tools\"\nexport VIRTIO_WIN=\"$srcdir/../test-data/fake-virtio-win/drivers\"\n\nd=test-windows-conversion-uefi.d\nrm -rf $d\ncleanup_fn rm -r $d\nmkdir $d\n\n$VG virt-v2v --debug-gc -vx \\\n    -i disk $f \\\n    -o local -os $d\n\n# Test the libvirt XML metadata and a disk was created.\nxml=$d/win2k22-uefi.xml\ntest -f $xml\ntest -f $d/win2k22-uefi-sda\n\ncat $xml\n\n# Check that it's really UEFI.\ngrep 'firmware.*efi' $xml\n"
  },
  {
    "path": "tmp/.gitignore",
    "content": "/.guestfs-*\n/guestfs.*\n/libguestfs??????/\n/run-*\n/v2vovl*.qcow2\n"
  },
  {
    "path": "v2v/Makefile.am",
    "content": "# libguestfs virt-v2v tool\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\ninclude $(top_srcdir)/subdir-rules.mk\n\nEXTRA_DIST = \\\n\t$(SOURCES_MLI) \\\n\t$(SOURCES_ML) \\\n\t$(SOURCES_C) \\\n\tv2v_unit_tests.ml\n\nSOURCES_MLI = \\\n\tv2v.mli\n\nSOURCES_ML = \\\n\tv2v.ml\n\nSOURCES_C = \\\n\tdummy.c\n\nbin_PROGRAMS = virt-v2v\n\nvirt_v2v_SOURCES = $(SOURCES_C)\nvirt_v2v_CPPFLAGS = \\\n\t-DCAML_NAME_SPACE \\\n\t-I. \\\n\t-I$(top_builddir) \\\n\t-I$(shell $(OCAMLC) -where) \\\n\t-I$(top_srcdir)/common/qemuopts \\\n\t-I$(top_srcdir)/lib\nvirt_v2v_CFLAGS = \\\n\t-pthread \\\n\t$(WARN_CFLAGS) $(WERROR_CFLAGS) \\\n\t$(LIBGUESTFS_CFLAGS) \\\n\t$(LIBVIRT_CFLAGS)\n\nBOBJECTS = $(SOURCES_ML:.ml=.cmo)\nXOBJECTS = $(BOBJECTS:.cmo=.cmx)\n\nOCAMLPACKAGES = \\\n\t-package str,unix,guestfs,libvirt,nbd \\\n\t-I $(top_builddir)/common/utils/.libs \\\n\t-I $(top_builddir)/common/qemuopts/.libs \\\n\t-I $(top_builddir)/gnulib/lib/.libs \\\n\t-I $(top_builddir)/lib \\\n\t-I $(top_builddir)/input \\\n\t-I $(top_builddir)/output \\\n\t-I $(top_builddir)/convert \\\n\t-I $(top_builddir)/common/mlstdutils \\\n\t-I $(top_builddir)/common/mlutils \\\n\t-I $(top_builddir)/common/mlgettext \\\n\t-I $(top_builddir)/common/mlpcre \\\n\t-I $(top_builddir)/common/mlxml \\\n\t-I $(top_builddir)/common/mltools \\\n\t-I $(top_builddir)/common/mlcustomize \\\n\t-I $(top_builddir)/common/mldrivers\nif HAVE_OCAML_PKG_GETTEXT\nOCAMLPACKAGES += -package gettext-stub\nendif\n\nOCAMLCLIBS = \\\n\t-pthread \\\n\t-lqemuopts \\\n\t$(LIBGUESTFS_LIBS) \\\n\t$(LIBVIRT_LIBS) \\\n\t$(LIBCRYPT_LIBS) \\\n\t$(LIBXML2_LIBS) \\\n\t$(JSON_C_LIBS) \\\n\t$(LIBOSINFO_LIBS) \\\n\t$(LIBINTL) \\\n\t$(LIBNBD_LIBS) \\\n\t-lgnu\n\nOCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)'\n\nif !HAVE_OCAMLOPT\nOBJECTS = $(BOBJECTS)\nelse\nOBJECTS = $(XOBJECTS)\nendif\n\nOCAMLLINKFLAGS = \\\n\tmlstdutils.$(MLARCHIVE) \\\n\tmlgettext.$(MLARCHIVE) \\\n\tmlpcre.$(MLARCHIVE) \\\n\tmlxml.$(MLARCHIVE) \\\n\tmlcutils.$(MLARCHIVE) \\\n\tmltools.$(MLARCHIVE) \\\n\tmllibvirt.$(MLARCHIVE) \\\n\tmlcustomize.$(MLARCHIVE) \\\n\tmldrivers.$(MLARCHIVE) \\\n\tmlv2vlib.$(MLARCHIVE) \\\n\tmlconvert.$(MLARCHIVE) \\\n\tmlinput.$(MLARCHIVE) \\\n\tmloutput.$(MLARCHIVE) \\\n\t$(LINK_CUSTOM_OCAMLC_ONLY)\n\nvirt_v2v_DEPENDENCIES = \\\n\t$(OBJECTS) \\\n\t$(top_builddir)/input/mlinput.$(MLARCHIVE) \\\n\t$(top_builddir)/output/mloutput.$(MLARCHIVE) \\\n\t$(top_builddir)/convert/mlconvert.$(MLARCHIVE) \\\n\t$(top_builddir)/lib/mlv2vlib.$(MLARCHIVE) \\\n\t$(top_srcdir)/ocaml-link.sh\nvirt_v2v_LINK = \\\n\t$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \\\n\t  $(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \\\n\t  $(OBJECTS) -o $@\n\n# Data directory.\n\nvirttoolsdatadir = $(datadir)/virt-tools\n\nTESTS = v2v_unit_tests\ncheck_PROGRAMS = v2v_unit_tests\n\nv2v_unit_tests_BOBJECTS = \\\n\t../lib/create_ovf.cmo \\\n\t../input/VMX.cmo \\\n\tv2v_unit_tests.cmo\nv2v_unit_tests_XOBJECTS = $(v2v_unit_tests_BOBJECTS:.cmo=.cmx)\n\nv2v_unit_tests_SOURCES = $(virt_v2v_SOURCES)\nv2v_unit_tests_CPPFLAGS = $(virt_v2v_CPPFLAGS)\nv2v_unit_tests_CFLAGS = $(virt_v2v_CFLAGS)\n\nif !HAVE_OCAMLOPT\n# Can't call this v2v_unit_tests_OBJECTS because automake gets confused.\nv2v_unit_tests_THEOBJECTS = $(v2v_unit_tests_BOBJECTS)\nelse\nv2v_unit_tests_THEOBJECTS = $(v2v_unit_tests_XOBJECTS)\nendif\n\nv2v_unit_tests_DEPENDENCIES = \\\n\t$(v2v_unit_tests_THEOBJECTS) \\\n\t../common/mlstdutils/mlstdutils.$(MLARCHIVE) \\\n\t../common/mlxml/mlxml.$(MLARCHIVE) \\\n\t../common/mlgettext/mlgettext.$(MLARCHIVE) \\\n\t../common/mlpcre/mlpcre.$(MLARCHIVE) \\\n\t../common/mlutils/mlcutils.$(MLARCHIVE) \\\n\t../common/mltools/mltools.$(MLARCHIVE) \\\n\t../common/mlcustomize/mlcustomize.$(MLARCHIVE) \\\n\t../common/mldrivers/mldrivers.$(MLARCHIVE) \\\n\t$(top_srcdir)/ocaml-link.sh\nv2v_unit_tests_LINK = \\\n\t$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \\\n\t  $(OCAMLFIND) $(BEST) $(OCAMLFLAGS) \\\n\t  $(OCAMLPACKAGES) \\\n\t  $(OCAMLLINKFLAGS) \\\n\t  $(v2v_unit_tests_THEOBJECTS) -o $@\n\n# Dependencies.\n.depend: \\\n\t$(srcdir)/*.mli \\\n\t$(srcdir)/*.ml \\\n\t$(filter %.ml,$(BUILT_SOURCES))\n\t$(top_builddir)/ocaml-dep.sh $^\n-include .depend\n"
  },
  {
    "path": "v2v/dummy.c",
    "content": "/* Dummy source, to be used for OCaml-based tools with no C sources. */\nenum { foo = 1 };\n"
  },
  {
    "path": "v2v/v2v.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(* Handles the virt-v2v command line, running the helper steps at the\n * right time, and multiplexing command line parameters to the\n * helpers.\n *)\n\nopen Printf\nopen Unix\n\nopen Std_utils\nopen Tools_utils\nopen Unix_utils\nopen Common_gettext.Gettext\nopen Getopt.OptionName\n\nopen Types\nopen Utils\n\n(* Matches --mac command line parameters. *)\nlet mac_re = PCRE.compile \"^([[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}):(network|bridge|ip):(.*)$\"\nlet mac_ip_re = PCRE.compile \"^([[:xdigit:]]|:|\\\\.)+$\"\n\nlet rec main () =\n  let set_string_option_once optname optref arg =\n    match !optref with\n    | Some _ ->\n       error (f_\"%s option used more than once on the command line\") optname\n    | None ->\n       optref := Some arg\n  in\n\n  let bandwidth = ref None in\n  let bandwidth_file = ref None in\n  let block_driver = ref None in\n  let input_conn = ref None in\n  let input_format = ref None in\n  let input_password = ref None in\n  let input_transport = ref None in\n\n  let input_options = ref [] in\n  let io_query = ref false in\n  let set_input_option option =\n    if option = \"?\" then io_query := true\n    else (\n      let k, v = String.split \"=\" option in\n      List.push_back input_options (k, v)\n    )\n  in\n\n  let output_options = ref [] in\n  let oo_query = ref false in\n  let set_output_option option =\n    if option = \"?\" then oo_query := true\n    else (\n      let k, v = String.split \"=\" option in\n      List.push_back output_options (k, v)\n    )\n  in\n\n  let memsize = ref None in\n  let set_memsize arg = memsize := Some arg in\n  let parallel = ref 1 in\n  let smp = ref None in\n  let set_smp arg = smp := Some arg in\n\n  let no_fstrim = ref false in\n\n  let network_map = Networks.create () in\n  let static_ips = ref [] in\n  let rec add_network str =\n    match String.split \":\" str with\n    | \"\", \"\" ->\n       error (f_\"invalid -n/--network parameter\")\n    | out, \"\" | \"\", out ->\n       Networks.add_default_network network_map out\n    | in_, out ->\n       Networks.add_network network_map in_ out\n  and add_bridge str =\n    match String.split \":\" str with\n    | \"\", \"\" ->\n       error (f_\"invalid -b/--bridge parameter\")\n    | out, \"\" | \"\", out ->\n       Networks.add_default_bridge network_map out\n    | in_, out ->\n       Networks.add_bridge network_map in_ out\n  and add_mac str =\n    if not (PCRE.matches mac_re str) then\n      error (f_\"cannot parse --mac \\\"%s\\\" parameter\") str;\n    let mac = PCRE.sub 1 and out = PCRE.sub 3 in\n    match PCRE.sub 2 with\n    | \"network\" ->\n       Networks.add_mac network_map mac Network out\n    | \"bridge\" ->\n       Networks.add_mac network_map mac Bridge out\n    | \"ip\" ->\n       (match String.nsplit \",\" out with\n        | [] -> error (f_\"invalid --mac ip option\")\n        | [ip] -> add_static_ip mac ip \"\" \"\" []\n        | [ip; gw] -> add_static_ip mac ip gw \"\" []\n        | ip :: gw :: len :: nameservers ->\n           add_static_ip mac ip gw len nameservers\n       )\n    | _ -> assert false\n  and add_static_ip if_mac_addr if_ip_address if_default_gateway\n                    if_prefix_length_str if_nameservers =\n    (* Check the IP addresses and prefix length are sensible.  This\n     * is only a very simple test that they are sane, since IP addresses\n     * come in too many valid forms to check thoroughly.\n     *)\n    let rec error_unless_ip_addr what addr =\n      if not (PCRE.matches mac_ip_re addr) then\n        error (f_\"cannot parse --mac ip %s: doesn’t look like “%s” \\\n                  is an IP address\") what addr\n    in\n    error_unless_ip_addr \"ipaddr\" if_ip_address;\n    let if_default_gateway =\n      match if_default_gateway with \"\" -> None | gw -> Some gw in\n    Option.iter (error_unless_ip_addr \"gw\") if_default_gateway;\n    List.iter (error_unless_ip_addr \"nameserver\") if_nameservers;\n    let if_prefix_length =\n      match if_prefix_length_str with\n      | \"\" -> None\n      | len ->\n         let len =\n           try int_of_string len with\n           | Failure _ -> error (f_\"cannot parse --mac ip prefix length field \\\n                                    as an integer: %s\") len in\n         if len < 0 || len > 128 then\n           error (f_\"--mac ip prefix length field is out of range\");\n         Some len in\n    List.push_back static_ips\n      { if_mac_addr; if_ip_address; if_default_gateway;\n        if_prefix_length; if_nameservers }\n  in\n\n  let root_choice = ref default_root_choice in\n  let set_root_choice = Types.set_root_choice root_choice in\n\n  let output_alloc = ref `Not_set in\n  let set_output_alloc mode =\n    if !output_alloc <> `Not_set then\n      error (f_\"%s option used more than once on the command line\") \"-oa\";\n    match mode with\n    | \"sparse\" -> output_alloc := `Sparse\n    | \"preallocated\" -> output_alloc := `Preallocated\n    | s ->\n       error (f_\"unknown -oa option: %s\") s\n  in\n\n  let output_conn = ref None in\n  let output_format = ref None in\n  let output_name = ref None in\n  let output_password = ref None in\n  let output_storage = ref None in\n\n  (* Other options that we handle here. *)\n  let print_source = ref false in\n\n  let input_modes =\n    Select_input.input_modes |>\n    List.map Select_input.string_of_input_mode |>\n    String.concat \"|\" in\n  let input_mode = ref None in\n  let set_input_mode mode =\n    if !input_mode <> None then\n      error (f_\"%s option used more than once on the command line\") \"-i\";\n    input_mode := Some (Select_input.input_mode_of_string mode)\n  in\n\n  let output_modes =\n    Select_output.output_modes |>\n    List.map Select_output.string_of_output_mode |>\n    String.concat \"|\" in\n  let output_mode = ref None in\n  let set_output_mode mode =\n    if !output_mode <> None then\n      error (f_\"%s option used more than once on the command line\") \"-o\";\n    output_mode := Some (Select_output.output_mode_of_string mode)\n  in\n\n  (* Options that are errors. *)\n  let in_place_error _ =\n    error (f_\"The --in-place option has been replaced by the \\\n              ‘virt-v2v-in-place’ program\")\n  in\n\n  let argspec = ref [\n    [ L\"bandwidth\" ], Getopt.String (\"bps\", set_string_option_once \"--bandwidth\" bandwidth),\n                                    s_\"Set bandwidth to bits per sec\";\n    [ L\"bandwidth-file\" ], Getopt.String (\"filename\", set_string_option_once \"--bandwidth-file\" bandwidth_file),\n                                    s_\"Set bandwidth dynamically from file\";\n    [ S 'b'; L\"bridge\" ], Getopt.String (\"in:out\", add_bridge),\n      s_\"Map bridge ‘in’ to ‘out’\";\n    [ S 'i' ],       Getopt.String (input_modes, set_input_mode),\n      s_\"Set input mode (default: libvirt)\";\n    [ M\"ic\" ],       Getopt.String (\"uri\", set_string_option_once \"-ic\" input_conn),\n                                    s_\"Libvirt URI\";\n    [ M\"if\" ],       Getopt.String (\"format\", set_string_option_once \"-if\" input_format),\n                                    s_\"Input format\";\n    [ M\"io\" ],       Getopt.String (\"option[=value]\", set_input_option),\n                                    s_\"Set option for input mode\";\n    [ M\"ip\" ],       Getopt.String (\"filename\", set_string_option_once \"-ip\" input_password),\n                                    s_\"Use password from file to connect to input hypervisor\";\n    [ M\"it\" ],       Getopt.String (\"transport\", set_string_option_once \"-it\" input_transport),\n                                    s_\"Input transport\";\n    [ L\"in-place\" ], Getopt.Unit in_place_error,\n                                    s_\"Use virt-v2v-in-place instead\";\n    [ L\"mac\" ],      Getopt.String (\"mac:network|bridge|ip:out\", add_mac),\n      s_\"Map NIC to network or bridge or assign static IP\";\n    [ S 'm'; L\"memsize\" ], Getopt.Int (\"mb\", set_memsize),\n                                    s_\"Set memory size\";\n    [ S 'n'; L\"network\" ], Getopt.String (\"in:out\", add_network),\n      s_\"Map network ‘in’ to ‘out’\";\n    [ S 'o' ],       Getopt.String (output_modes, set_output_mode),\n      s_\"Set output mode (default: libvirt)\";\n    [ M\"oa\" ],       Getopt.String (\"sparse|preallocated\", set_output_alloc),\n                                    s_\"Set output allocation mode\";\n    [ M\"oc\" ],       Getopt.String (\"uri\", set_string_option_once \"-oc\" output_conn),\n                                    s_\"Output hypervisor connection\";\n    [ M\"of\" ],       Getopt.String (\"raw|qcow2\", set_string_option_once \"-of\" output_format),\n                                    s_\"Set output format\";\n    [ M\"on\" ],       Getopt.String (\"name\", set_string_option_once \"-on\" output_name),\n                                    s_\"Rename guest when converting\";\n    [ M\"oo\" ],       Getopt.String (\"option[=value]\", set_output_option),\n                                    s_\"Set option for output mode\";\n    [ M\"op\" ],       Getopt.String (\"filename\", set_string_option_once \"-op\" output_password),\n                                    s_\"Use password from file to connect to output hypervisor\";\n    [ M\"os\" ],       Getopt.String (\"storage\", set_string_option_once \"-os\" output_storage),\n                                    s_\"Set output storage location\";\n    [ L\"no-fstrim\" ],  Getopt.Set no_fstrim,\n                                    s_\"Don't trim filesystems before conversion\";\n    [ L\"parallel\" ], Getopt.Set_int (\"N\", parallel),\n      s_\"Run up to N instances of nbdcopy in parallel\";\n    [ L\"print-source\" ], Getopt.Set print_source,\n      s_\"Print source and stop\";\n    [ L\"root\" ],     Getopt.String (\"ask|... \", set_root_choice),\n      s_\"How to choose root filesystem\";\n    [ L\"smp\" ],      Getopt.Int (\"vcpus\", set_smp),\n                                    s_\"Set number of vCPUs\";\n  ] in\n\n  if Config.enable_block_driver then\n    List.push_front\n      ([ L\"block-driver\" ],\n       Getopt.String (\"driver\", set_string_option_once \"--block-driver\" block_driver),\n       s_\"Prefer 'virtio-blk' or 'virtio-scsi'\")\n      argspec;\n\n  (* Append virt-customize options. *)\n  let customize_argspec, get_customize_ops =\n    Customize_cmdline.argspec ~v2v:true () in\n  let customize_argspec =\n    List.map (fun (spec, _, _) -> spec) customize_argspec in\n  List.push_back_list argspec customize_argspec;\n  let argspec = !argspec in\n\n  let args = ref [] in\n  let anon_fun s = List.push_front s args in\n  let usage_msg =\n    sprintf (f_\"\\\n%s: convert a guest to use KVM\n\nvirt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported esx_guest\n\nvirt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n\nvirt-v2v -i disk disk.img -o local -os /var/tmp\n\nThere is a companion front-end called \\\"virt-p2v\\\" which comes as an\nISO or CD image that can be booted on physical machines.\n\nA short summary of the options is given below.  For detailed help please\nread the man page virt-v2v(1).\n\")\n      prog in\n\n  let opthandle = create_standard_options argspec ~anon_fun ~key_opts:true\n                    ~machine_readable:true usage_msg in\n  Getopt.parse opthandle.getopt;\n\n  (* Print the version, easier than asking users to tell us. *)\n  debug \"info: %s: %s %s (%s)\"\n        prog Config.package_name Config.package_version_full\n        Config.host_cpu;\n\n  (* Print the libvirt version if debugging. *)\n  if verbose () then (\n    let major, minor, release = Libvirt_utils.libvirt_get_version () in\n    debug \"info: libvirt version: %d.%d.%d\" major minor release\n  );\n\n  (* Create the temporary directory to control conversion. *)\n  let v2vdir = create_v2v_directory () in\n\n  (* Dereference the arguments. *)\n  let args = List.rev !args in\n  let block_driver =\n    match !block_driver with\n    | None | Some \"virtio-blk\" -> Virtio_blk\n    | Some \"virtio-scsi\" -> Virtio_SCSI\n    | Some driver ->\n       error (f_\"unknown block driver ‘--block-driver %s’\") driver in\n  let customize_ops = get_customize_ops () in\n  let input_conn = !input_conn in\n  let input_mode = !input_mode in\n  let input_transport =\n    match !input_transport with\n    | None -> None\n    | Some \"ssh\" -> Some Input.SSH\n    | Some \"vddk\" -> Some Input.VDDK\n    | Some transport ->\n       error (f_\"unknown input transport ‘-it %s’\") transport in\n  let memsize = !memsize in\n  let no_fstrim = !no_fstrim in\n  let output_alloc =\n    match !output_alloc with\n    | `Not_set | `Sparse -> Types.Sparse\n    | `Preallocated -> Types.Preallocated in\n  let output_mode = !output_mode in\n  let output_name = !output_name in\n  let parallel = !parallel in\n  if parallel < 1 then\n    error (f_\"--parallel parameter must be >= 1\");\n  let print_source = !print_source in\n  let root_choice = !root_choice in\n  let smp = !smp in\n  let static_ips = !static_ips in\n\n  (* No arguments and machine-readable mode?  Print out some facts\n   * about what this binary supports.\n   *)\n  (match args, machine_readable () with\n   | [], Some { pr } ->\n      pr \"virt-v2v\\n\";\n      pr \"virt-v2v-2.0\\n\";\n      pr \"libguestfs-rewrite\\n\";\n      pr \"vcenter-https\\n\";\n      if Config.enable_xen then\n        pr \"xen-ssh\\n\";\n      pr \"vddk\\n\";\n      pr \"colours-option\\n\";\n      pr \"vdsm-compat-option\\n\";\n      pr \"io/oo\\n\";\n      pr \"mac-option\\n\";\n      pr \"bandwidth-option\\n\";\n      pr \"mac-ip-option\\n\";\n      pr \"parallel-option\\n\";\n      pr \"customize-ops\\n\";\n      if Config.enable_block_driver then\n        pr \"block-driver-option\\n\";\n      Select_input.input_modes |>\n        List.map Select_input.string_of_input_mode |>\n        List.iter (pr \"input:%s\\n\");\n      Select_output.output_modes |>\n        List.map Select_output.string_of_output_mode |>\n        List.iter (pr \"output:%s\\n\");\n      pr \"convert:linux\\n\";\n      pr \"convert:windows\\n\";\n      List.iter (pr \"ovf:%s\\n\") Create_ovf.ovf_flavours;\n      exit 0\n   | _, _ -> ()\n  );\n\n  (* Select the input module. *)\n  let (module Input_module) =\n    Select_input.select_input input_mode input_conn input_transport in\n\n  let input_options = {\n    Input.bandwidth =\n      (match !bandwidth, !bandwidth_file with\n       | None, None -> None\n       | Some rate, None -> Some (StaticBandwidth rate)\n       | rate, Some filename -> Some (DynamicBandwidth (rate, filename)));\n    input_conn = input_conn;\n    input_format = !input_format;\n    input_options = !input_options;\n    input_password = !input_password;\n    input_transport = input_transport;\n    (* This must always be true so that we do not modify the\n     * source.  This is set to [false] by in-place mode.\n     *)\n    read_only = true;\n  } in\n\n  (* If -io ? then we want to query input options supported in this mode. *)\n  if !io_query then (\n    Input_module.query_input_options ();\n    exit 0\n  );\n\n  (* Select the output module. *)\n  let (module Output_module) = Select_output.select_output output_mode in\n\n  let output_options = {\n    Output.output_alloc = output_alloc;\n    output_conn = !output_conn;\n    output_format = Option.value ~default:\"raw\" !output_format;\n    output_name = output_name;\n    output_options = !output_options;\n    output_password = !output_password;\n    output_storage = !output_storage\n  } in\n\n  (* If -oo ? then we want to query output options supported in this mode. *)\n  if !oo_query then (\n    Output_module.query_output_options ();\n    exit 0\n  );\n\n  (* XXX This is a hack for -o ovirt and -o vdsm where we must remove\n   * the serial console for Linux conversions.  We don't do this for\n   * -o ovirt-upload, even though we probably should, which would\n   * indicate that actually oVirt is fine if we don't do this.\n   *)\n  let remove_serial_console =\n    match output_mode with\n    | Some Select_output.OVirt | Some VDSM -> true\n    | _ -> false in\n\n  (* Get the conversion options. *)\n  let conv_options = {\n    Convert.block_driver = block_driver;\n    keep_serial_console = not remove_serial_console;\n    ks = opthandle.ks;\n    memsize;\n    network_map;\n    root_choice;\n    smp;\n    static_ips;\n    customize_ops;\n    no_fstrim;\n  } in\n\n  (* Before starting the input module, check there is sufficient\n   * free space in the temporary directory on the host.\n   *)\n  check_host_free_space ();\n\n  (* Start the input module (runs an NBD server in the background). *)\n  message (f_\"Setting up the source: %s\")\n    (Input_module.to_string input_options args);\n  let source, input_disks = Input_module.setup v2vdir input_options args in\n\n  (* If --print-source then print the source metadata and exit. *)\n  if print_source then (\n    printf (f_\"Source guest information (--print-source option):\\n\");\n    printf \"\\n\";\n    printf \"%s\\n\" (Types.string_of_source source);\n    exit 0\n  );\n\n  (* Check and parse the output options on the command line.\n   * Do this before starting conversion to catch errors early, but\n   * we have to do it after creating the source above.\n   *)\n  let output_poptions = Output_module.parse_options output_options source in\n\n  (* Do the conversion. *)\n  with_open_out (v2vdir // \"convert\") (fun _ -> ());\n  let inspect, target_meta = Convert.convert input_disks conv_options source in\n  unlink (v2vdir // \"convert\");\n\n  (* Start the output module (runs an NBD server in the background). *)\n  message (f_\"Setting up the destination: %s\")\n    (Output_module.to_string output_options);\n  let output_t, output_disks =\n    Output_module.setup v2vdir output_poptions source input_disks in\n\n  (* Debug the v2vdir. *)\n  if verbose () then (\n    let cmd = sprintf \"ls -alZ %s 1>&2\" (quote v2vdir) in\n    ignore (Sys.command cmd)\n  );\n\n  (* Do the copy. *)\n  with_open_out (v2vdir // \"copy\") (fun _ -> ());\n\n  if verbose () then (\n    eprintf \"info: nbdcopy version:\\n%!\";\n    ignore (Sys.command (sprintf \"%s --version >&2\" Config.nbdcopy))\n  );\n\n  (* Get the list of disks and corresponding NBD URIs. *)\n  let disks =\n    List.combine input_disks output_disks |>\n    List.mapi (\n      fun i (input_uri, output_uri) ->\n        let input_uri = NBD_URI.to_uri input_uri\n        and output_uri = NBD_URI.to_uri output_uri in\n        (i, input_uri, output_uri)\n    ) in\n  let nr_disks = List.length disks in\n\n  (* Copy the disks. *)\n  let disks = ref disks in\n  let nbdcopy_pids = ref [] in\n  let rec copy_loop () =\n    if List.length !nbdcopy_pids < parallel && !disks <> [] then (\n      (* Schedule another nbdcopy process. *)\n      let i, input_uri, output_uri = List.pop_front disks in\n      message (f_\"Copying disk %d/%d\") (i+1) nr_disks;\n\n      let request_size = Output_module.request_size in\n\n      (* In verbose mode print some information about each\n       * side of the pipeline.\n       *)\n      if verbose () then (\n        let input_info = nbdinfo ~content:true input_uri\n        and output_info = nbdinfo ~content:false output_uri in\n        eprintf \"info: input disk %d/%d:\\n\" (i+1) nr_disks;\n        eprintf \"%s\\n\" (String.concat \"\\n\" input_info);\n        eprintf \"info: output disk %d/%d:\\n\" (i+1) nr_disks;\n        eprintf \"%s\\n\" (String.concat \"\\n\" output_info);\n        flush Stdlib.stderr\n      );\n\n      let pid = nbdcopy ?request_size output_alloc input_uri output_uri in\n      List.push_front pid nbdcopy_pids;\n\n      copy_loop ();\n    )\n    else if !nbdcopy_pids <> [] then (\n      (* Wait for one nbdcopy instance to exit. *)\n      let pid, status = wait () in\n      (* If this internal error turns up in real world scenarios then\n       * we may need to change the [wait] above so it only waits on\n       * the nbdcopy PIDs.\n       *)\n      if not (List.mem pid !nbdcopy_pids) then\n        error (f_\"internal error: wait returned unexpected \\\n                  process ID %d status \\\"%s\\\"\")\n          pid (string_of_process_status status);\n      nbdcopy_pids := List.filter ((<>) pid) !nbdcopy_pids;\n      (match status with\n       | WEXITED 0 -> copy_loop ()\n       | WEXITED _ | WSIGNALED _ | WSTOPPED _ ->\n          error \"nbdcopy %s\" (string_of_process_status status)\n      );\n    )\n  in\n  copy_loop ();\n  assert (!disks == []);\n  assert (!nbdcopy_pids == []);\n\n  (* End of copying phase. *)\n  unlink (v2vdir // \"copy\");\n\n  (* Do the finalization step. *)\n  message (f_\"Creating output metadata\");\n  Output_module.finalize v2vdir output_poptions output_t output_disks\n    source inspect target_meta;\n\n  message (f_\"Finishing off\");\n  (* As the last thing, write a file indicating success before\n   * we exit (so before we kill the helpers).  The helpers may\n   * use the presence or absence of the file to determine if\n   * on-success or on-fail cleanup is required.\n   *)\n  with_open_out (v2vdir // \"done\") (fun _ -> ())\n\n(* Conversion can fail or hang if there is insufficient free space in\n * the large temporary directory.  Some input modules use large_tmpdir\n * to unpack OVAs or store qcow2 overlays and some output modules\n * use it to store temporary files.  In addition the  500 MB guestfs\n * appliance may be created there.  (RHBZ#1316479, RHBZ#2051394)\n *)\nand check_host_free_space () =\n  let free_space = StatVFS.free_space (StatVFS.statvfs large_tmpdir) in\n  debug \"check_host_free_space: large_tmpdir=%s free_space=%Ld\"\n        large_tmpdir free_space;\n  if free_space < 1_073_741_824L then\n    error (f_\"insufficient free space in the conversion server \\\n              temporary directory %s (%s).\\n\\nEither free up space \\\n              in that directory, or set the LIBGUESTFS_CACHEDIR \\\n              environment variable to point to another directory \\\n              with more than 1GB of free space.\\n\\nSee also the \\\n              virt-v2v(1) manual, section \\\n              \\\"Minimum free space check in the host\\\".\")\n      large_tmpdir (human_size free_space)\n\n(* Start nbdcopy as a background process, returning the PID. *)\nand nbdcopy ?request_size output_alloc input_uri output_uri =\n  (* XXX It's possible that some output modes know whether\n   * --target-is-zero which would be a useful optimization.\n   *)\n  let cmd = ref [] in\n  List.push_back_list cmd [ Config.nbdcopy; input_uri; output_uri ];\n\n  (match request_size with\n    | None -> ()\n    | Some size -> List.push_back cmd (sprintf \"--request-size=%d\" size)\n  );\n  (* Choose max requests to target an implicit buffer size of 64M. *)\n  let requests =\n    let target_buffer_size = 64 * 1024 * 1024 in\n    let request_size =\n      match request_size with\n      | None -> 256 * 1024 (* default in nbdcopy 1.10+ *)\n      | Some size -> size in\n    min 64 (target_buffer_size / request_size) in\n  List.push_back cmd (sprintf \"--requests=%d\" requests);\n\n  if verbose () && nbdcopy_supports_blkhash () then\n    List.push_back cmd \"--blkhash\";\n\n  List.push_back cmd \"--flush\";\n  (*List.push_back cmd \"--verbose\";*)\n\n  if not (quiet ()) then List.push_back cmd \"--progress\";\n  if output_alloc = Types.Preallocated then List.push_back cmd \"--allocated\";\n\n  let args = !cmd in\n  debug \"%s\" (stringify_args args);\n\n  let args = Array.of_list args in\n  match fork () with\n  | 0 ->\n     (* Child process (nbdcopy). *)\n     execvp \"nbdcopy\" args\n  | pid -> pid\n\n(* Run nbdinfo on a URI and collect the information.  However don't\n * fail if nbdinfo is not installed since this is just used for debugging.\n *)\nand nbdinfo ?(content = false) uri =\n  let cmd =\n    sprintf \"%s%s %s ||:\"\n      (quote Config.nbdinfo)\n      (if content then \" --content\" else \" --no-content\")\n      (quote uri) in\n  external_command cmd\n\nlet () = run_main_and_handle_errors main\n"
  },
  {
    "path": "v2v/v2v.mli",
    "content": "(* virt-v2v\n * Copyright (C) 2009-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(* virt-v2v main program.\n   Nothing is exported. *)\n"
  },
  {
    "path": "v2v/v2v_unit_tests.ml",
    "content": "(* virt-v2v\n * Copyright (C) 2011-2025 Red Hat Inc.\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along\n * with this program; if not, write to the Free Software Foundation, Inc.,\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n *)\n\n(* This file tests individual virt-v2v functions. *)\n\nopen Printf\n\nopen Std_utils\nopen Tools_utils\n\nopen Types\nopen Utils\n\nlet assert_equal ?(cmp = fun a b -> a = b) ~printer a b =\n  if not (cmp a b) then\n    failwithf \"FAIL: %s <> %s\" (printer a) (printer b)\n\nlet assert_bool name b =\n  if not b then failwithf \"FAIL: %s\" name\n\nlet inspect_defaults = {\n  i_type = \"\"; i_distro = \"\"; i_osinfo = \"\"; i_arch = \"\";\n  i_major_version = 0; i_minor_version = 0;\n  i_root = \"\"; i_package_format = \"\"; i_package_management = \"\";\n  i_product_name = \"\"; i_product_variant = \"\"; i_mountpoints = [];\n  i_filesystems = [];\n  i_apps = []; i_apps_map = StringMap.empty;\n  i_windows_systemroot = \"\";\n  i_windows_software_hive = \"\"; i_windows_system_hive = \"\";\n  i_windows_current_control_set = \"\"; i_windows_group_policy = false;\n  i_drive_mappings = [];\n}\n\n(* Test Create_ovf.get_ostype *)\nlet () =\n  let printer = Fun.id in\n  assert_equal ~printer \"RHEL6\"\n               (Create_ovf.get_ostype {\n                    inspect_defaults with\n                    i_type = \"linux\"; i_distro = \"rhel\";\n                    i_major_version = 6;\n                    i_minor_version = 0;\n                    i_arch = \"i386\" });\n  assert_equal ~printer \"RHEL6x64\"\n               (Create_ovf.get_ostype {\n                    inspect_defaults with\n                    i_type = \"linux\"; i_distro = \"rhel\";\n                    i_major_version = 6;\n                    i_minor_version = 0;\n                    i_arch = \"x86_64\" });\n  assert_equal ~printer \"rhel_7x64\"\n               (Create_ovf.get_ostype {\n                    inspect_defaults with\n                    i_type = \"linux\"; i_distro = \"rhel\";\n                    i_major_version = 7;\n                    i_minor_version = 0;\n                    i_arch = \"x86_64\" });\n  assert_equal ~printer \"Windows7\"\n               (Create_ovf.get_ostype {\n                    inspect_defaults with\n                    i_type = \"windows\";\n                    i_major_version = 6;\n                    i_minor_version = 1;\n                    i_product_variant = \"Client\";\n                    i_arch = \"i386\" });\n  assert_equal ~printer \"Windows7x64\"\n               (Create_ovf.get_ostype {\n                    inspect_defaults with\n                    i_type = \"windows\";\n                    i_major_version = 6;\n                    i_minor_version = 1;\n                    i_product_variant = \"Client\";\n                    i_arch = \"x86_64\" });\n  assert_equal ~printer \"windows_8\"\n               (Create_ovf.get_ostype {\n                    inspect_defaults with\n                    i_type = \"windows\";\n                    i_major_version = 6;\n                    i_minor_version = 2;\n                    i_product_variant = \"Client\";\n                    i_arch = \"i386\" });\n  assert_equal ~printer \"windows_8x64\"\n               (Create_ovf.get_ostype {\n                    inspect_defaults with\n                    i_type = \"windows\";\n                    i_major_version = 6;\n                    i_minor_version = 2;\n                    i_product_variant = \"Client\";\n                    i_arch = \"x86_64\" });\n  assert_equal ~printer \"windows_2012x64\"\n               (Create_ovf.get_ostype {\n                    inspect_defaults with\n                    i_type = \"windows\";\n                    i_major_version = 6;\n                    i_minor_version = 2;\n                    i_product_variant = \"Server\";\n                    i_arch = \"x86_64\" });\n  assert_equal ~printer \"windows_2012R2x64\"\n               (Create_ovf.get_ostype {\n                    inspect_defaults with\n                    i_type = \"windows\";\n                    i_major_version = 6;\n                    i_minor_version = 3;\n                    i_product_variant = \"Server\";\n                    i_arch = \"x86_64\" })\n\n(* Test Utils.qemu_img_supports_offset_and_size *)\nlet () =\n  (* No assertion here, we don't know if qemu-img supports the\n   * feature, so just run the code and make sure it doesn't crash.\n   *)\n  ignore (Utils.qemu_img_supports_offset_and_size ())\n\n(* Test the VMX file parser in the VMX module. *)\nlet () =\n  let cmp = VMX.equal in\n  let printer = VMX.to_string 0 in\n\n  (* This should be identical to the empty file. *)\n  let t = VMX.parse_string \"\\\ntest.foo = \\\"a\\\"\ntest.bar = \\\"b\\\"\ntest.present = \\\"FALSE\\\"\n\" in\n  assert_equal ~cmp ~printer VMX.empty t;\n\n  (* Test weird escapes. *)\n  let t1 = VMX.parse_string \"\\\nfoo = \\\"a|20|21b\\\"\n\" in\n  let t2 = VMX.parse_string \"\\\nfoo = \\\"a !b\\\"\n\" in\n  assert_equal ~cmp ~printer t1 t2;\n\n  (* Test case insensitivity. *)\n  let t1 = VMX.parse_string \"\\\nfoo = \\\"abc\\\"\n\" in\n  let t2 = VMX.parse_string \"\\\nfOO = \\\"abc\\\"\n\" in\n  assert_equal ~cmp ~printer t1 t2;\n  let t = VMX.parse_string \"\\\nflag = \\\"true\\\"\n\" in\n  assert_bool \"VMX: failed case insensitivity test for booleans #1\"\n              (VMX.get_bool t [\"FLAG\"] = Some true);\n  let t = VMX.parse_string \"\\\nflag = \\\"TRUE\\\"\n\" in\n  assert_bool \"VMX: failed case insensitivity test for booleans #2\"\n              (VMX.get_bool t [\"Flag\"] = Some true);\n\n  (* Missing keys. *)\n  let t = VMX.parse_string \"\\\nfoo = \\\"a\\\"\n\" in\n  assert_bool \"VMX: failed missing key test\"\n              (VMX.get_string t [\"bar\"] = None);\n\n  (* namespace_present function *)\n  let t = VMX.parse_string \"\\\nfoo.bar.present = \\\"TRUE\\\"\nfoo.baz.present = \\\"FALSE\\\"\nfoo.a.b = \\\"abc\\\"\nfoo.a.c = \\\"abc\\\"\nfoo.b = \\\"abc\\\"\nfoo.c.a = \\\"abc\\\"\nfoo.c.b = \\\"abc\\\"\n\" in\n assert_bool \"VMX: namespace_present #1\"\n             (VMX.namespace_present t [\"foo\"] = true);\n assert_bool \"VMX: namespace_present #2\"\n             (VMX.namespace_present t [\"foo\"; \"bar\"] = true);\n assert_bool \"VMX: namespace_present #3\"\n             (* this whole namespace should have been culled *)\n             (VMX.namespace_present t [\"foo\"; \"baz\"] = false);\n assert_bool \"VMX: namespace_present #4\"\n             (VMX.namespace_present t [\"foo\"; \"a\"] = true);\n assert_bool \"VMX: namespace_present #5\"\n             (* this is a key, not a namespace *)\n             (VMX.namespace_present t [\"foo\"; \"a\"; \"b\"] = false);\n assert_bool \"VMX: namespace_present #6\"\n             (VMX.namespace_present t [\"foo\"; \"b\"] = false);\n assert_bool \"VMX: namespace_present #7\"\n             (VMX.namespace_present t [\"foo\"; \"c\"] = true);\n assert_bool \"VMX: namespace_present #8\"\n             (VMX.namespace_present t [\"foo\"; \"d\"] = false);\n\n (* map function *)\n  let t = VMX.parse_string \"\\\nfoo.bar.present = \\\"TRUE\\\"\nfoo.baz.present = \\\"FALSE\\\"\nfoo.a.b = \\\"abc\\\"\nfoo.a.c = \\\"abc\\\"\nfoo.b = \\\"abc\\\"\nfoo.c.a = \\\"abc\\\"\nfoo.c.b = \\\"abc\\\"\n\" in\n  let xs =\n    VMX.map (\n      fun path ->\n        let path = String.concat \".\" path in\n        function\n        | None -> sprintf \"%s.present = \\\"true\\\"\\n\" path\n        | Some v -> sprintf \"%s = \\\"%s\\\"\\n\" path v\n    ) t in\n  let xs = List.sort compare xs in\n  let s = String.concat \"\" xs in\n  assert_equal ~printer:Fun.id \"\\\nfoo.a.b = \\\"abc\\\"\nfoo.a.c = \\\"abc\\\"\nfoo.a.present = \\\"true\\\"\nfoo.b = \\\"abc\\\"\nfoo.bar.present = \\\"TRUE\\\"\nfoo.bar.present = \\\"true\\\"\nfoo.c.a = \\\"abc\\\"\nfoo.c.b = \\\"abc\\\"\nfoo.c.present = \\\"true\\\"\nfoo.present = \\\"true\\\"\n\" s;\n\n  (* select_namespaces function *)\n  let t1 = VMX.parse_string \"\\\nfoo.bar.present = \\\"TRUE\\\"\nfoo.a.b = \\\"abc\\\"\nfoo.a.c = \\\"abc\\\"\nfoo.b = \\\"abc\\\"\nfoo.c.a = \\\"abc\\\"\nfoo.c.b = \\\"abc\\\"\n\" in\n  let t2 =\n    VMX.select_namespaces\n      (function [\"foo\"] -> true | _ -> false) t1 in\n  assert_equal ~cmp ~printer t1 t2;\n\n  let t1 = VMX.parse_string \"\\\nfoo.bar.present = \\\"TRUE\\\"\nfoo.a.b = \\\"abc\\\"\nfoo.a.c = \\\"abc\\\"\nfoo.b = \\\"abc\\\"\nfoo.c.a = \\\"abc\\\"\nfoo.c.b = \\\"abc\\\"\nfoo.c.c.d.e.f = \\\"abc\\\"\n\" in\n  let t1 =\n    VMX.select_namespaces\n      (function [\"foo\"; \"a\"] -> true | _ -> false) t1 in\n  let t2 = VMX.parse_string \"\\\nfoo.a.b = \\\"abc\\\"\nfoo.a.c = \\\"abc\\\"\n\" in\n  assert_equal ~cmp ~printer t2 t1\n"
  },
  {
    "path": "valgrind-suppressions",
    "content": "# libguestfs\n# Copyright (C) 2009-2025 Red Hat Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# Valgrind suppressions used when testing only.  There are no known\n# resource leaks in libguestfs.  This file is only for leaks in\n# libraries that libguestfs uses.\n\n# libnuma\n{\n   libnuma_numa_node_size64_cond\n   Memcheck:Cond\n   fun:*\n   fun:numa_node_size64\n   fun:numa_init\n}\n{\n   libnuma_numa_node_size64_cond_2\n   Memcheck:Cond\n   fun:numa_node_size64\n   fun:numa_init\n}\n{\n   libnuma_numa_node_size64_cond_3\n   Memcheck:Cond\n   fun:*\n   fun:numa_node_size64\n   obj:/usr/lib64/libnuma.so.1\n}\n{\n   libnuma_numa_node_size64_cond_4\n   Memcheck:Cond\n   fun:numa_node_size64\n   obj:/usr/lib64/libnuma.so.1\n}\n{\n   libnuma_numa_node_size64_value8\n   Memcheck:Value8\n   fun:numa_node_size64\n   fun:numa_init\n}\n{\n   libnuma_numa_node_size64_value8_2\n   Memcheck:Value8\n   fun:numa_node_size64\n   obj:/usr/lib64/libnuma.so.1\n}\n\n# libnl\n{\n   libnl_add_routing_table_name_leak\n   Memcheck:Leak\n   fun:malloc\n   fun:strdup\n   fun:add_routing_table_name\n}\n{\n   libnl_add_routing_table_name_leak_2\n   Memcheck:Leak\n   fun:calloc\n   fun:add_routing_table_name\n}\n{\n   libnl_add_proto_name_leak\n   Memcheck:Leak\n   fun:malloc\n   fun:strdup\n   fun:add_proto_name\n}\n{\n   libnl_add_proto_name_leak_2\n   Memcheck:Leak\n   fun:calloc\n   fun:add_proto_name\n}\n{\n   libnl1_malloc_leak\n   Memcheck:Leak\n   fun:malloc\n   fun:strdup\n   obj:/usr/lib/libnl.so.1.1\n}\n{\n   libnl1_malloc_leak_2\n   Memcheck:Leak\n   fun:malloc\n   fun:strdup\n   obj:/lib64/libnl.so.1.1\n}\n{\n   libnl1_malloc_leak_3\n   Memcheck:Leak\n   fun:malloc\n   fun:strdup\n   obj:/usr/lib64/libnl.so.1.1\n}\n{\n   libnl1_calloc_leak\n   Memcheck:Leak\n   fun:calloc\n   obj:/usr/lib/libnl.so.1.1\n}\n{\n   libnl1_calloc_leak_2\n   Memcheck:Leak\n   fun:calloc\n   obj:/lib64/libnl.so.1.1\n}\n{\n   libnl1_calloc_leak_3\n   Memcheck:Leak\n   fun:calloc\n   obj:/usr/lib64/libnl.so.1.1\n}\n\n# OCaml, by design, doesn't bother to free the major heap before\n# calling exit.  Ignore that leak.\n{\n   caml_alloc_for_heap\n   Memcheck:Leak\n   ...\n   fun:caml_alloc_for_heap\n}\n\n# OCaml caml_stat_* allocations are meant to be \"static\" so OCaml will\n# never free them by design.  See the OCaml manual, chapter\n# \"Interfacing C with OCaml\".\n{\n   caml_stat_allocations\n   Memcheck:Leak\n   ...\n   fun:caml_stat_alloc*\n}\n\n# Real leak in OCaml 4.13, later fixed:\n# https://github.com/ocaml/ocaml/issues/10698\n{\n   caml_setup_stack_overflow_detection\n   Memcheck:Leak\n   ...\n   fun:caml_setup_stack_overflow_detection\n}\n\n# Real leak in bytecode programs.\n{\n   caml_init_atom_table\n   Memcheck:Leak\n   ...\n   fun:caml_init_atom_table\n}\n\n# Real leak in bytecode programs.\n{\n   caml_executable_name\n   Memcheck:Leak\n   fun:malloc\n   ...\n   fun:caml_executable_name\n   fun:caml_main\n}\n\n# Valgrind bug affecting OCaml 4.14\n# https://bugs.kde.org/show_bug.cgi?id=455711\n{\n  caml_terminate_signals_uninitialized_sigaltstack\n  Memcheck:Param\n  sigaltstack(ss)\n  fun:sigaltstack\n  fun:caml_terminate_signals\n}\n\n{\n  caml_stop_stack_overflow_detection_uninitialized_sigaltstack\n  Memcheck:Param\n  sigaltstack(ss)\n  fun:sigaltstack\n  fun:caml_stop_stack_overflow_detection\n}\n\n# The OCaml PCRE.compile function calls pcre2_compile_8 which allocates\n# memory.  If these regexps are stored in a global variable then they\n# can never be freed.  This is not really a bug, so ignore it.\n{\n   ocaml_pcre_globals\n   Memcheck:Leak\n   fun:malloc\n   fun:pcre2_compile_8\n   ...\n}\n\n# glibc\n{\n   glibc_cond\n   Memcheck:Cond\n   fun:index\n   fun:expand_dynamic_string_token\n}\n\n# Not a real leak - glibc doesn't bother to free thread\n# data (TLS in this case).\n{\n   glibc_leak_1\n   Memcheck:Leak\n   fun:calloc\n   fun:allocate_dtv\n}\n\n# Not a real leak - same as above, but glibc renamed the function.\n{\n   glibc_leak_2\n   Memcheck:Leak\n   fun:calloc\n   fun:_dl_allocate_tls\n}\n\n# Not a real leak.\n{\n   glibc_leak_3\n   Memcheck:Leak\n   ...\n   fun:__add_to_environ\n   fun:setenv\n}\n\n# These appeared in glibc 2.35.\n# See also nbdkit commit f6409b4137c1aeb97d01eef5753f22033d64bfd4\n{\n   glibc_leak_4\n   Memcheck:Leak\n   ...\n   fun:dlopen@@*\n}\n\n# libvirt calls gnutls_global_init but doesn't call the\n# corresponding gnutls_global_deinit function because of\n# thread-safety issues (in GnuTLS).\n{\n   libvirt_leak_1\n   Memcheck:Leak\n   ...\n   fun:gnutls_global_init\n   fun:virInitialize\n}\n\n# RHBZ#847429\n{\n   libvirt_leak_2\n   Memcheck:Leak\n   ...\n   fun:tryLoadOne\n   fun:VBoxCGlueInit\n   fun:vboxRegister\n   fun:virInitialize\n}\n\n# Variant of RHBZ#847429 with libvirt 1.0.2\n{\n   libvirt_leak_3\n   Memcheck:Leak\n   ...\n   fun:tryLoadOne\n   fun:VBoxCGlueInit\n   fun:vboxRegister\n   fun:virGlobalInit\n}\n\n# RHBZ#913145\n{\n   libvirt_leak_4\n   Memcheck:Leak\n   ...\n   fun:virNetClientProgramCall\n}\n\n# RHBZ#1116427\n{\n   libvirt_leak_5\n   Memcheck:Leak\n   ...\n   fun:virFileFindResourceFull\n}\n\n# RHBZ#1135388\n{\n   libvirt_leak_6\n   Memcheck:Leak\n   ...\n   fun:testDomainGenerateIfnames\n}\n\n# Possibly RHBZ#1145649\n{\n   libvirt_leak_7\n   Memcheck:Leak\n   ...\n   fun:selabel_close\n   fun:virSecuritySELinuxSecurityDriverClose\n}\n\n# RHBZ#1215042\n{\n   libvirt_leak_8\n   Memcheck:Leak\n   ...\n   fun:virGetUserRuntimeDirectory\n   fun:virNetSocketNewConnectUNIX\n}\n\n{\n   libvirt_leak_9\n   Memcheck:Leak\n   ...\n   fun:g_malloc0\n   fun:virClassNew\n   ...\n   fun:virDataTypesOnce\n}\n\n{\n   libvirt_leak_10\n   Memcheck:Leak\n   ...\n   fun:g_malloc0\n   fun:virClassNew\n   ...\n   fun:virOnce\n}\n\n{\n   libvirt_leak_11\n   Memcheck:Leak\n   ...\n   fun:malloc\n   ...\n   fun:__dcigettext\n   fun:virDomainDefParse\n}\n\n{\n   libvirt_leak_12\n   Memcheck:Leak\n   ...\n   fun:g_strdup\n   fun:virClassNew\n   ...\n   fun:virOnce\n}\n\n# FUSE leaks the per-thread context (although the code looks\n# like it attempts to clean it up).  In older fuse, it uses\n# malloc.  In newer fuse it uses calloc.\n{\n   fuse_leak_1\n   Memcheck:Leak\n   fun:malloc\n   fun:fuse_get_context_internal\n}\n\n{\n   fuse_leak_2\n   Memcheck:Leak\n   fun:calloc\n   fun:fuse_get_context_internal\n}\n\n# ld-*.so\n{\n   ld_leak\n   Memcheck:Leak\n   ...\n   fun:_dl_init\n}\n\n# Memory leak in libmagic (RHBZ#919466).\n{\n   libmagic_leak\n   Memcheck:Leak\n   ...\n   fun:magic_getpath\n}\n\n# Another memory leak in libmagic.\n{\n   libmagic_leak_2\n   Memcheck:Leak\n   ...\n   fun:file_apprentice\n}\n\n# Gtk\n{\n   gtk_leak\n   Memcheck:Leak\n   ...\n   fun:gtk_init_check\n}\n\n{\n   gtk_leak_2\n   Memcheck:Leak\n   ...\n   fun:gdk_display_manager_get\n}\n\n{\n   gtk_leak_3\n   Memcheck:Leak\n   ...\n   fun:_gdk_x11_screen_new\n}\n\n{\n   glib_leak_1\n   Memcheck:Leak\n   ...\n   fun:g_type_register_static\n}\n\n{\n   glib_leak_2\n   Memcheck:Leak\n   ...\n   fun:g_type_class_ref\n}\n\n{\n   glib_leak_3\n   Memcheck:Leak\n   ...\n   fun:malloc\n   ...\n   fun:__dcigettext\n   fun:g_cancellable_set_error_if_cancelled\n}\n\n{\n   glib_leak_4\n   Memcheck:Leak\n   ...\n   fun:malloc\n   ...\n   fun:__dcigettext\n   fun:iostream_close_cb\n}\n\n# Perl\n# note: Perl leaks memory by design, this just suppresses them.\n{\n   perl_leak_1\n   Memcheck:Leak\n   ...\n   fun:Perl_safesysmalloc\n}\n\n{\n   perl_leak_2\n   Memcheck:Leak\n   ...\n   fun:Perl_safesysrealloc\n}\n\n{\n   perl_leak_3\n   Memcheck:Leak\n   ...\n   fun:Perl_safesyscalloc\n}\n\n{\n   perl_leak_4\n   Memcheck:Leak\n   ...\n   fun:Perl_yyparse\n}\n\n{\n   perl_leak_5\n   Memcheck:Leak\n   ...\n   fun:Perl_re_compile\n}\n\n{\n   perl_leak_6\n   Memcheck:Leak\n   fun:malloc\n   fun:Perl_refcounted_he_new_pvn\n}\n\n{\n   perl_leak_7\n   Memcheck:Leak\n   ...\n   fun:Perl_re_op_compile\n}\n\n# libosinfo database reference is deliberately leaked\n# see v2v/libosinfo_utils.ml:get_db\n{\n   libosinfo_leak_1\n   Memcheck:Leak\n   ...\n   fun:v2v_osinfo_db_load\n}\n\n# https://www.redhat.com/archives/libguestfs/2020-April/thread.html#00103\n{\n   libosinfo_leak_2\n   Memcheck:Leak\n   ...\n   fun:osinfo_*\n}\n"
  },
  {
    "path": "website/easytoread.css",
    "content": "/* High contrast, large fonts.\n * $Id: easytoread.css,v 1.1 2007/01/23 16:33:28 rjones Exp $\n */\n\nbody {\n  font-size: 200%;\n}"
  },
  {
    "path": "website/feed.css",
    "content": "/* styles for the RSS feed from feed2js */\n\n.rss-box {\n    width: 380px;\n}\n\n.rss-title {\n    display: none;\n}\n\n.rss-items {\n    list-style: none;\n    padding: 1em;\n    margin-left: 1em;\n}\n\n.rss-item  {\n    border-left: none;\n    padding-left: none;\n}\n\n.rss-item a:link, .rss-item a:visited, .rss-item a:active {\n}\n\n.rss-date {\n    font-size: x-small;\n}"
  },
  {
    "path": "website/index.css",
    "content": "p {\n    text-align: justify;\n}\n\ndiv.right {\n    border: 1px solid #009df8;\n    background: #ffe;\n    width: 30em;\n    float: right;\n    clear: right;\n    font-size: small;\n    padding: 1em;\n    margin-left: 1em;\n    margin-top: 1em;\n    margin-right: 0.5em;\n}\n\ndiv.right h2 {\n    font-size: small;\n    border-bottom: none;\n}\n\ndiv.right li, div.right p {\n    width: 25em;\n}\n\ndiv.right img {\n    float: left;\n    margin-right: 1em;\n    border: none;\n}\n\ndiv.right pre {\n    background: #fcfcee;\n}\n\np.latest {\n    text-align: right;\n}\n\nimg#logo {\n    position: absolute;\n    top: 0px;\n    right: 0px;\n}\n\nbody {\n    margin: 0px;\n    padding: 0px;\n}\n\nh1 {\n    height: 66px;\n    margin: 0px;\n    padding: 4px;\n    margin-right: 162px;\n    border-bottom: none;\n    background-color: #009df8;\n    color: #ffffa0;\n    text-shadow:0 -0.8px 1px rgba(0,0,0,0.5);\n}\n"
  },
  {
    "path": "website/index.html.in",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n<title>libguestfs, library for accessing and modifying VM disk images</title>\n<meta name=\"description\" content=\"libguestfs, library and tools for accessing and modifying VM disk images\" />\n<meta name=\"keywords\" content=\"libguestfs, guestfish, guestfs, libguest, guest image, virtual machine, disk image, supermin, febootstrap, fedora, qemu, qcow2, vmdk, vdi, kvm, richard jones, red hat, redhat\" />\n<link rel=\"stylesheet\" href=\"standard.css\" type=\"text/css\" title=\"Standard\"/>\n<link rel=\"stylesheet\" href=\"index.css\" type=\"text/css\" title=\"Standard\"/>\n<link rel=\"stylesheet\" href=\"feed.css\" type=\"text/css\" title=\"Standard\"/>\n<link rel=\"alternate stylesheet\" href=\"easytoread.css\" type=\"text/css\" title=\"High contrast, big fonts\"/>\n</head>\n<body>\n<img src=\"fish-5yrs.svg\" width=\"144\" height=\"148\" id=\"logo\"/>\n<h1>libguestfs <br/> tools for accessing and modifying virtual machine disk images</h1>\n\n<div class=\"right\">\n<a href=\"download/\"><img src=\"download.png\" /></a>\n<h2>Downloads</h2>\n\n<p>\nFor source see the <a href=\"download/\">downloads directory</a>.\n</p>\n\n<p>\nIn <a href=\"https://fedoraproject.org/\">Fedora</a>\nor <a href=\"https://www.redhat.com/rhel/\">Red&nbsp;Hat&nbsp;Enterprise&nbsp;Linux</a>:\n<pre>\nsudo yum install libguestfs-tools\n</pre>\n</p>\n\n<p>\nOn Debian/Ubuntu:\n<pre>\nsudo apt-get install libguestfs-tools\n</pre>\n</p>\n\n<p>\nOpen a disk image:\n<pre>\nguestfish --ro -i -a disk.img\n</pre>\n</p>\n\n<p>\n<a href=\"http://libguestfs.org/guestfs-faq.1.html#binaries\">Other distros, compiling from source ...</a>\n</p>\n</div>\n\n<div class=\"right\">\n<img src=\"communicate.png\" />\n<h2>Mailing list and chat</h2>\n\n<p>\nJoin us on\nthe <a href=\"https://lists.libguestfs.org\">libguestfs\nmailing list</a>, or on IRC channel <code>#libguestfs</code>\non <a href=\"http://freenode.net/\">FreeNode</a>.\n</p>\n\n</div>\n\n<div class=\"right\">\n<img src=\"documentation.png\" />\n<h2>Documentation</h2>\n\n<p>\n<b><a href=\"guestfs-faq.1.html\">Frequently Asked Questions (FAQ)</a></b> and\n<a href=\"guestfs-recipes.1.html\">recipes page</a>\n</p>\n\n<p>\n<b><a href=\"guestfs.3.html\">guestfs(3)</a> &mdash; main API documentation</b> <br/>\n<a href=\"guestfish.1.html\">guestfish(1)</a> &mdash; interactive shell <br/>\n<a href=\"guestmount.1.html\">guestmount(1)</a> &mdash; mount guest filesystem in host <br/>\n<a href=\"guestunmount.1.html\">guestunmount(1)</a> &mdash; unmount guest filesystem <br/>\n<a href=\"virt-alignment-scan.1.html\">virt-alignment-scan(1)</a> &mdash; check alignment of virtual machine partitions <br/>\n<a href=\"virt-builder.1.html\">virt-builder(1)</a> &mdash; quick image builder <br/>\n<a href=\"virt-builder-repository.1.html\">virt-builder-repository(1)</a> &mdash; create virt-builder repositories <br/>\n<a href=\"virt-cat.1.html\">virt-cat(1)</a> &mdash; display a file <br/>\n<a href=\"virt-copy-in.1.html\">virt-copy-in(1)</a> &mdash; copy files and directories into a VM <br/>\n<a href=\"virt-copy-out.1.html\">virt-copy-out(1)</a> &mdash; copy files and directories out of a VM <br/>\n<a href=\"virt-customize.1.html\">virt-customize(1)</a> &mdash; customize virtual machines <br/>\n<a href=\"virt-df.1.html\">virt-df(1)</a> &mdash; free space <br/>\n<a href=\"virt-dib.1.html\">virt-dib(1)</a> &mdash; safe diskimage-builder <br/>\n<a href=\"virt-diff.1.html\">virt-diff(1)</a> &mdash; differences <br/>\n<a href=\"virt-edit.1.html\">virt-edit(1)</a> &mdash; edit a file <br/>\n<a href=\"virt-filesystems.1.html\">virt-filesystems(1)</a> &mdash; display information about filesystems, devices, LVM <br/>\n<a href=\"virt-format.1.html\">virt-format(1)</a> &mdash; erase and make blank disks <br/>\n<a href=\"virt-get-kernel.1.html\">virt-get-kernel(1)</a> &mdash; get kernel from disk <br/>\n<a href=\"virt-inspector.1.html\">virt-inspector(1)</a> &mdash; inspect VM images <br/>\n<a href=\"virt-list-filesystems.1.html\">virt-list-filesystems(1)</a> &mdash; list filesystems <br/>\n<a href=\"virt-list-partitions.1.html\">virt-list-partitions(1)</a> &mdash; list partitions <br/>\n<a href=\"virt-log.1.html\">virt-log(1)</a> &mdash; display log files <br/>\n<a href=\"virt-ls.1.html\">virt-ls(1)</a> &mdash; list files <br/>\n<a href=\"virt-make-fs.1.html\">virt-make-fs(1)</a> &mdash; make a filesystem <br/>\n<a href=\"virt-p2v.1.html\">virt-p2v(1)</a> &mdash; convert physical machine to run on KVM <br/>\n<a href=\"virt-p2v-make-disk.1.html\">virt-p2v-make-disk(1)</a> &mdash; make P2V ISO <br/>\n<a href=\"virt-p2v-make-kickstart.1.html\">virt-p2v-make-kickstart(1)</a> &mdash; make P2V kickstart <br/>\n<a href=\"virt-rescue.1.html\">virt-rescue(1)</a> &mdash; rescue shell <br/>\n<a href=\"virt-resize.1.html\">virt-resize(1)</a> &mdash; resize virtual machines <br/>\n<a href=\"virt-sparsify.1.html\">virt-sparsify(1)</a> &mdash; make virtual machines sparse (thin-provisioned) <br/>\n<a href=\"virt-sysprep.1.html\">virt-sysprep(1)</a> &mdash; unconfigure a virtual machine before cloning <br/>\n<a href=\"virt-tail.1.html\">virt-tail(1)</a> &mdash; follow log file <br/>\n<a href=\"virt-tar.1.html\">virt-tar(1)</a> &mdash; archive and upload files <br/>\n<a href=\"virt-tar-in.1.html\">virt-tar-in(1)</a> &mdash; archive and upload files <br/>\n<a href=\"virt-tar-out.1.html\">virt-tar-out(1)</a> &mdash; archive and download files <br/>\n<a href=\"virt-v2v.1.html\">virt-v2v(1)</a> &mdash; convert guest to run on KVM <br/>\n<a href=\"virt-win-reg.1.html\">virt-win-reg(1)</a> &mdash; export and merge Windows Registry keys <br/>\n<a href=\"libguestfs-test-tool.1.html\">libguestfs-test-tool(1)</a> &mdash; test libguestfs <br/>\n<a href=\"libguestfs-make-fixed-appliance.1.html\">libguestfs-make-fixed-appliance(1)</a> &mdash; make libguestfs fixed appliance <br/>\n<a href=\"hivex.3.html\">hivex(3)</a> &mdash; extract Windows Registry hive <br/>\n<a href=\"hivexregedit.1.html\">hivexregedit(1)</a> &mdash; merge and export Registry changes from regedit-format files <br/>\n<a href=\"hivexsh.1.html\">hivexsh(1)</a> &mdash; Windows Registry hive shell <br/>\n<a href=\"hivexml.1.html\">hivexml(1)</a> &mdash; convert Windows Registry hive to XML <br/>\n<a href=\"hivexget.1.html\">hivexget(1)</a> &mdash; extract data from Windows Registry hive <br/>\n<s><a href=\"febootstrap.8.html\">febootstrap(8)</a> &mdash; tool for building supermin appliances <br/>\n<a href=\"febootstrap-supermin-helper.8.html\">febootstrap-supermin-helper(8)</a> &mdash; febootstrap helper</s> <br/>\n<a href=\"supermin.1.html\">supermin(1)</a> &mdash; tool for building supermin appliances <br/>\n<s><a href=\"supermin-helper.1.html\">supermin-helper(1)</a> &mdash; supermin helper</s> <br/>\n<a href=\"guestfsd.8.html\">guestfsd(8)</a> &mdash; guestfs daemon <br/>\n<br/>\n</p>\n\n<p>\nFor programmers: examples in\n<a href=\"guestfs-examples.3.html\">C/C++</a>,\n<a href=\"guestfs-erlang.3.html\">Erlang</a>,\n<a href=\"guestfs-golang.3.html\">Golang</a>,\n<a href=\"guestfs-java.3.html\">Java</a>,\n<a href=\"guestfs-lua.3.html\">Lua</a>,\n<a href=\"guestfs-ocaml.3.html\">OCaml</a>,\n<a href=\"guestfs-perl.3.html\">Perl</a>,\n<a href=\"guestfs-python.3.html\">Python</a>,\n<a href=\"guestfs-ruby.3.html\">Ruby</a>.\n</p>\n\n<p>\nFor developers:\n<a href=\"README.txt\">README</a>,\n<a href=\"TODO.txt\">TODO</a>,\n<a href=\"guestfs-faq.1.html\">FAQ</a>,\n<a href=\"guestfs-building.1.html\">guestfs-building(1)</a>,\n<a href=\"guestfs-hacking.1.html\">guestfs-hacking(1)</a>,\n<a href=\"guestfs-internals.1.html\">guestfs-internals(1)</a>,\n<a href=\"guestfs-performance.1.html\">guestfs-performance(1)</a>,\n<a href=\"guestfs-release-notes.1.html\">guestfs-release-notes(1)</a>,\n<a href=\"guestfs-security.1.html\">guestfs-security(1)</a>.\n</p>\n\n<p>\nFor testers:\n<a href=\"guestfs-testing.1.html\">guestfs-testing(1)</a>.\n</p>\n</div>\n\n<div class=\"right\">\n<img src=\"bugs.png\" />\n<h2>Bug reports</h2>\n\n<p>\n<a href=\"https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools\">List of bugs in libguestfs</a> and\n<a href=\"https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Fedora\">in Fedora packaging of libguestfs</a>\n</p>\n\n<p>\n<a href=\"https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools\">Enter a new bug report</a>\n</p>\n</div>\n\n<div class=\"right\">\n<img src=\"git.png\" />\n<h2>Git repository</h2>\n\n<pre>\ngit clone <a href=\"https://github.com/libguestfs/libguestfs\">git://github.com/libguestfs/libguestfs.git</a>\n</pre>\n</div>\n\n<!--<h2>About libguestfs</h2> -->\n\n<p class=\"latest\">\n<em><small>\n  <!--\nLATEST-URL: http://libguestfs.org/download/1.41-development/libguestfs-@PACKAGE_VERSION@.tar.gz\nLATEST-VERSION: @PACKAGE_VERSION@\n  -->\n  <a href=\"download/1.41-development/\">Latest development version: <strong>@PACKAGE_VERSION@</strong></a> (released <strong>@RELEASE_DATE@</strong>).<br/>\n  Stable branches:\n  <strong>\n  <a href=\"download/1.40-stable/\">1.40.x</a>,\n  <a href=\"download/1.38-stable/\">1.38.x</a>\n  <a href=\"download/1.36-stable/\">1.36.x</a>\n  </strong>\n</small></em>\n</p>\n\n<p>\n<b>libguestfs is a set of tools for accessing and modifying virtual\nmachine (VM) disk images</b>.  You can use this for\nviewing and editing files inside guests,\nscripting changes to VMs,\n<a href=\"virt-df.1.html\">monitoring disk used/free statistics</a>,\n<a href=\"virt-builder.1.html\">creating guests</a>, P2V,\n<a href=\"virt-v2v.1.html\">V2V</a>, performing backups,\ncloning VMs, building VMs, formatting disks, resizing disks, and much\nmore.\n</p>\n\n<p>\n<b>libguestfs can access almost any disk image imaginable</b>.  It can\ndo it securely &mdash; without needing root and with multiple layers\nof defence against rogue disk images.  It can access disk images on\nremote machines or on CDs/USB sticks.  It can access proprietary\nsystems like VMware and Hyper-V.\n</p>\n\n<p>\nAll this functionality is available through a scriptable shell\ncalled <a href=\"guestfish.1.html\">guestfish</a>, or an interactive\nrescue shell <a href=\"virt-rescue.1.html\">virt-rescue</a>.\n</p>\n\n<p>\n<b>libguestfs is a C library</b> that can be linked with\n<a href=\"guestfs.3.html\">C and C++</a> management programs and has\nbindings for about a dozen other programming languages.  Using our\nFUSE module you can also\n<a href=\"guestmount.1.html\">mount guest filesystems on the host</a>.\n</p>\n\n<p>\nThe <a href=\"hivex.3.html\">hivex subproject</a> lets you\n<a href=\"virt-win-reg.1.html\">merge changes into the Windows Registry</a>\nin Windows guests.\nYou can <a href=\"virt-inspector.1.html\">examine unknown disk images</a>\nto find out what they contain.\n</p>\n\n<p>\n<b>libguestfs has been in continuous development since 2009</b>,\n<a href=\"guestfs.3.html\">with a 250 page manual</a>, deployed in\nenterprise environments, and with many happy and successful users.\n</p>\n\n<p>\n<b>Dozens of projects are using libguestfs today</b>.\n</p>\n\n<h3>Latest blog entries</h3>\n\n<script src=\"http://feeds.feedburner.com/libguestfs?format=sigpro\"\n        type=\"text/javascript\" ></script>\n<noscript><p>Subscribe to RSS headline updates from:\n    <a href=\"http://feeds.feedburner.com/libguestfs\"></a><br/>Powered by\n    FeedBurner</p> </noscript>\n\n<h3>Getting started</h3>\n\n<pre>\nsudo yum install libguestfs-tools      # Fedora/RHEL/CentOS\nsudo apt-get install libguestfs-tools  # Debian/Ubuntu\nguestfish --ro -i -a disk.img\n</pre>\n\n<p>\nFor examples using guestfish and other tools see the\n<a href=\"guestfs-recipes.1.html\">recipes page</a>.  For other examples\n<a href=\"http://rwmj.wordpress.com/tag/libguestfs/\">see these blog entries</a>.\n</p>\n\n<address>\n<a href=\"http://people.redhat.com/~rjones/\">rjones AT redhat DOT com</a>\n</address>\n\n<script type=\"text/javascript\" src=\"http://www.ohloh.net/p/328438/widgets/project_partner_badge.js\"></script>\n\n</body>\n</html>\n"
  },
  {
    "path": "website/pod.css",
    "content": "/* CSS to make pod2html files look a little bit better. */\n\nbody {\n  margin-left: 4em;\n}\n\nbody p, body ul, ol, body dl {\n  margin-left: 2em;\n  width: 31em;\n}\n\npre {\n  width: 31em;\n}\n\nli {\n  padding-bottom: 0.5em;\n}\n\n/* Code sections. */\n\npre {\n  background-color: #f8f8f8;\n  color: rgb(204,0,0);\n  font-weight: 550;\n  border-left: 6px solid rgb(204,64,64);\n  padding: 6px;\n  margin-left: 1em;\n  font-size: 120%;\n}\n\n/* Bold, italic in man pages. */\nb, strong {\n  color: rgb(204,0,0);\n}\n\ni, em {\n  color: rgb(204,0,0);\n}\n\n/* Name heading. */\n\nbody > h1:first-of-type {\n  display: none;\n}\n\nbody > h1:first-of-type + p {\n  font-size: 125%;\n  font-weight: bold;\n  color: rgb(204,0,0);\n  margin-left: -32px;\n}\n\n/* Warning heading in man pages. */\na[name=\"warning\"] {\n  -moz-border-radius-topleft: 5px;\n  -moz-border-radius-topright: 5px;\n  border-radius-topleft: 5px;\n  border-radius-topright: 5px;\n\n  color: white;\n  background-color: rgb(204,0,0);\n}\na[name=\"warning\"]:before {\n  content: \"\\00a0\\00a0\\00a0\";\n}\na[name=\"warning\"]:after {\n  content: \"\\00a0\\00a0\\00a0\";\n}\n\n/* Put the index on the right hand side in a floating box. */\nul[id=\"index\"] {\n    float: right;\n    width: 18em;\n    border-left: 3em solid white;\n    background-color: #fcfcfc;\n    margin-top: 32px;\n    padding-top: 0px;\n    margin-left: 1em;\n    padding-left: 1em;\n    padding-right: 1em;\n    font-size: 90%;\n}\n\nul[id=\"index\"] a[href] {\n    text-decoration: none;\n}\n\nul[id=\"index\"] a[href]:hover {\n    text-decoration: underline;\n}\n\nul[id=\"index\"] a[href]:before {\n    content: '#\\00a0';\n    color: rgb(204,0,0);\n    font-size: x-small;\n}\n\nul[id=\"index\"] {\n    width: 17em;\n    list-style: none;\n    margin-left: 0px;\n    margin-right: 0px;\n    padding-left: 0px;\n    padding-right: 0px;\n}\n\nul[id=\"index\"] > li {\n    margin-bottom: 0.5em;\n}\n\nul[id=\"index\"] > li ul {\n    width: 16em;\n    list-style: none;\n    margin-left: 0px;\n    margin-right: 0px;\n    padding-left: 0px;\n    padding-right: 0px;\n    margin-bottom: 0.5em;\n}\n\nul[id=\"index\"] > li ul li {\n    display: inline;\n    margin-right: 1em;\n}\n\n/*\nul[id=\"index\"] > li ul li:after {\n    color: #ccc;\n    content: '\\2014';\n}\n*/\n\n/* Get rid of those horrible <hr>'s :-( */\nhr { display: none; }\n\n/* Demote <h1>'s and set rest of headers relative. */\nh1 {\n    font-size: 100%;\n    color: black;\n    border-bottom: solid 1px rgb(204,0,0);\n}\n\nh2 {\n    font-size: 95%;\n    border-bottom: none;\n}\n\nh3 {\n    font-size: 90%;\n}\n\nh4 {\n    font-size: 85%;\n}\n"
  },
  {
    "path": "website/standard.css",
    "content": "/* CSS for et.redhat.com/~rjones/\n * $Id: standard.css,v 1.15 2009/07/22 10:32:02 rjones Exp $\n */\n\nbody {\n  margin-left: 1em;\n}\n\nbody p, body ul, ol, body dl {\n  margin-left: 2em;\n  width: 35em;\n}\n\nli {\n  padding-bottom: 0.5em;\n}\n\n/* Headings. */\n\nh1 {\n  font-size: 140%;\n  border-bottom: 1px solid #000;\n}\n\nh2 {\n  border-bottom: 1px solid #eee;\n}\n\nh1, h2, h3, h4 {\n  color: #333;\n}\n\n/* Code sections. */\n\ncode {\n  font-size: 120%;\n}\n\npre {\n  background-color: #fcfcfc;\n  /*border: 1px dotted #888;*/\n  border-left: 6px solid #f0f0f0;\n  padding: 5px;\n  margin-left: 1em;\n  font-size: 120%;\n}\n\n/* Notes. */\n\np.note {\n  margin-left: 2em;\n  margin-right: 1em;\n  /*border: 1px dotted #888;*/\n  padding-left: 36px;\n  background: url(../images/note.png) no-repeat;\n}\n\np.warning {\n  margin-left: 2em;\n  margin-right: 1em;\n  border: 1px dotted #800;\n  padding-left: 36px;\n  background: url(../images/warning.png) no-repeat #fee;\n}\n\n/* Highlighted text. */\n\nspan.highlight {\n  color: red;\n}\n\n/* Images. */\n\nimg.frame_img {\n  border: 1px solid #888;\n  padding: 6px;\n}\n\n/* Floating images with text around. */\n\nimg.leftpara {\n  float: left;\n  clear: left;\n  margin-right: 1em;\n  margin-bottom: 1em;\n}\n\nimg.rightpara {\n  float: right;\n  clear: right;\n  margin-left: 1em;\n  margin-bottom: 1em;\n}\n\n/* Nice-looking tables. */\n\ntable.top_table {\n  border-collapse: collapse;\n}\n\ntable.top_table th {\n  vertical-align: top;\n  padding: 3px;\n  border-bottom: 1px solid #ddd;\n}\n\ntable.top_table td {\n  vertical-align: top;\n  padding: 3px;\n}\n\ntable.top_table td.number {\n  text-align: right;\n}\n\ntable.top_table th.divider {\n  text-align: center;\n  padding: 6px;\n  border-top: 1px solid #ddd;\n  border-bottom: 1px solid #ddd;\n}\n\ntable.left_table {\n  border-collapse: collapse;\n}\n\ntable.left_table th {\n  text-align: right;\n  vertical-align: top;\n  padding: 3px;\n  padding-right: 1em;\n}\n\ntable.left_table td {\n  vertical-align: top;\n  padding: 3px;\n}\n\ntable.left_table td.number {\n  text-align: right;\n}\n\ntable.left_table th.divider {\n  text-align: center;\n  padding: 6px;\n  border-top: 1px solid #eee;\n  border-bottom: 1px solid #eee;\n}\n\n/* <ul> styled as menus. */\n\nul.menu {\n  width: 60em;\n  padding: 0px;\n  margin-left: 1em;\n  list-style: none;\n}\n\nul.menu li {\n  display: inline;\n  border-left: 1px solid #666;\n  padding-left: 5px;\n}\n\nul.menu li.first {\n  border-left: none;\n  padding-left: 0px;\n}\n\n/* Highlight for Javascript \"go\" sections. */\n\n.jsgo {\n  border: 1px solid #fff;\n  cursor: pointer;\n  cursor: hand;\n}\n\n.jsgo:hover {\n  border: 1px solid #ccc;\n  background: #eef;\n}"
  }
]